fortran期中考试试卷
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13
程序填空
program main real c(100),x integer p data p/1/ read(*,*)n do i=1,n read(*,*)c(i) end do read(*,*)x do while(p.le.n) do 60,while((abs(x-c(p)).ge.1.0e-7).and.p.le.n) 60 p=p+1 if((abs(x-c(p)).le.1.0e-7).and.p.le.n)then do 70 i=p,n-1 70 c(i)=c(i+1) n=n-1 endif end do write(*,80) (c(i),i=1,n) 80 format(1x,5f8.2) pause end
休息 6
10
20
30
请写出执行以上程序的输出结果:
前一页
阅读程序写结果
2. integer a a=9 do 10 i=1,3 do 10 j=1,2+i if(i.eq.3) then write(*,*)a+i else if(j.eq.3-i.or.j.eq.3+i)then write(*,*)a-j endif endif continue end
7
10
请写出执行以上程序的输出结果 : 前一页 休息
阅读程序写结果
3. integer i,j,n,a(20) do 30 i=2,n n=10 if (a(i).ne.0)then do 10 i=1,n write(*,*)a(i) 10 a(i)=i+1 endif do 20 i=2,n 30 continue do 20 j=i+1,n end if (a(i).le.0 .and.a(j).ne.0)then if(mod(a(j),a(i)).eq.0)then a(j)=0 endif endif 20 continue
前一页
休息
14
(五)程序改错
1.以下程序的功能是:用折半查找法查找在10个值从大到小 排列的整数中是否有整数x。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 integer a(10),i,top,bot,mid,x top=1 bot=10 write(*,*)(a(i),i=1,10) read(*,*)x do 20 while(top.le.bot) mid=(top+bot)/2 if(a(mid)= (.eq.) x)then goto 30 else if(a(mid).gt. (.lt.) x)then bot=mid-1 else top=mid+1;
前一页 休息 16
程序改错
2.分别求出Fibonacci数列前20项的值。 1 integer f(20) 2 f(0)=1 3 f(1)=3 (1) 4 do i=1 (2),20 5 f(i)=f(i-2)+f(i-1) 6 end do 7 do i=1 (0),20 8 write(*,*)f(i) 9 end do 10 end
Hale Waihona Puke Baidu
(四)程序填空
1.下面程序的功能是用起泡法将10个无序整数按值从 大到小的顺序排列.
integer i,j,a(10),ccc do i=1,10 read(*,*)a(i) end do do 20 i=1,10 do 20 j=1,--------(1)---------if(--------(2)----------)then -------(3)----------a(j+1)=a(j) a(j)=ccc endif 20 continue
前一页 休息 17
(六)编写程序
编写求a1*a2*a3*......*an的程序。
前一页
program main real a(100),t data t/1/ write(*,*)'请?输?入?n' read(*,*)n write(*,*)'请?输?入?a(n)' read(*,*)(a(i),i=1,n) do i=1,n t=t*a(i) enddo write(*,*)t pause end
休息
前一页
15
程序改错
15 endif 16 endif 17 20 continue 18 30 if(bot.gt. (.ge.) top) 19 write(*,15)mid 20 15 format(1x, ’有此数,位置是:’,i5) 21 else 22 write(*,* (16) ) 23 16 format(1x, (*,'查无此数‘) 24 endif 25 end
请写出执行以上程序的输出结果 : 前一页 休息
8
阅读程序写结果
4. integer r read(*,*)m,n r=mod(m,n) do while(r.ne.0) m=n n=r r=mod(m,n) end do write(*,*)m,n end
执行以上程序时,输入数据是 269,12,那么输出结果是 9 :前一页 休息
4.执行下列程序段的循环次数是(
end do
A)3次
前一页
B)4次
休息
C)5次
D)不确定
2
单项选择题
5.在Compaq Visual Fortran 6环境下运行程序,在输入多 个数据时,不能用( )分隔数据。 A)空格 B)逗号 C)任意键 D)回车 6.若x是一个logical型变量,y是一个值为100的整型变量, 则表达式 .not.x.and.y.gt.0 的值( )。 A)为true B)为false C)与x的值相同 B)COMMON语句 D)READ语句
(一)单项选择题
1.FORTRAN语言规定:在一个源程序文件中,主程序的位置 ( )。 A)必须在最开始 B)必须在系统调用的库函数的后面 C)可以任意 D)必须在最后 2.一个FORTRAN语言程序的执行是从( )。 A)本程序文件的主程序开始,主程序结束 B)本程序文件的第一个程序开始,最后一个程序结束 C)本程序文件的主程序开始,最后一个程序结束 D)本程序文件的第一个程序开始,主程序结束
休息 18
前一页 休息
1
单项选择题
3.用逻辑表达式表示“大于3且小于5的数”,正确的是 ( )。 A)3<x<5 C)!(x<3.and.x<5) n=5 do while((n=n-1).ne.0) ...(没有改变x的操作) B).not.(x<=3).or..not.(x<=5) D)x>3.and.x<5 )。
前一页 休息
write(*,*)(a(i),i=1,n) end
10
(四)程序填空
program main integer i,j,a(10),ccc !do i=1,10 !read(*,*)a(i) !end do n=10 data (a(i),i=1,10)/1,4,8,2,9,6,5,10,3,7/ do 20 i=1,10 do 20 j=1,n-i if(a(j).lt.a(j+1))then ccc=a(j+1) a(j+1)=a(j) a(j)=ccc endif 20 continue write(*,*)(a(i),i=1,n) pause end
前一页 休息 11
程序填空
2.从一组数值型数据中删除某一个指定数。
real c(100),x integer p data p/1/ read(*,*)n do i=1,n read(*,*)c(i) end do read(*,*)x
前一页
休息
12
程序填空
do while(p.le.n) do 60,while((abs(x-c(p)).ne.1.0e-7).and.p.le.n) 60 p=p+1 if(--------(1)----------)then do 70 i=p,n-1 70 --------(2)---------n=n-1 endif end do write(*,80) (--------(3)----------) 80 format(1x,5f8.2) 前一页 休息 end
9.FORTRAN语言中的函数子程序体中,( 序名赋值。 )对函数子程
A)可以
A)解释
前一页 休息
B)不可以
B)交互式
C)一定要
C)编译
D根据需要
)。 D)编辑
4
10.把FORTRAN源程序变成目标程序的方法是(
(二)判断题
1.( )在FORTRAN语言的程序调用中,主程序可以调用子程序, 子程序也可以调用主程序和其它的子程序。 2.( )在FORTRAN90书写程序时,一个语句必须写在一行内。 3.( )在主程序中定义数组时可以用变量名来定义数组的大小。 4.( )FORTRAN中的标识符AaE和aAe不是同一标识符。 5.( )FORTRAN90中的子程序,允许递归调用。 6.( )书写FORTRAN程序必须先写完子函数,然后才能写主函 数。 7.( )FORTRAN数据块子程序中,只能使用不可执行语句,还 必须有data语句。
3
D)与x的值相反 。
7.可以用来说明FORTRAN数组的语句是 A)FORMAT语句 C)DIMENSION语句
前一页 休息
单项选择题
8.在文件操作的操作过程中的步骤应该是( )。
A)读写操作、打开操作、关闭操作
B)打开操作、读写操作、关闭操作 C)关闭操作、打开操作、读写操作
D)关闭操作、读写操作、打开操作
前一页
休息
5
(三)阅读程序写结果
1. integer a(6,6) n=4 do 10 i=1,n do 10 j=1,n a(i,j)=1 continue do 20 i=1,n do 20 j=1,n a(i,j)=a(i,j)+j-i continue do 30 i=1,n write(*,*)(a(i,j),j=1,n) end