计算机技术基础Fortran试题库.docx
- 文档编号:29282905
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:21
- 大小:23.78KB
计算机技术基础Fortran试题库.docx
《计算机技术基础Fortran试题库.docx》由会员分享,可在线阅读,更多相关《计算机技术基础Fortran试题库.docx(21页珍藏版)》请在冰豆网上搜索。
计算机技术基础Fortran试题库
计算机技术基础(Fortran)试题库
一、选择题
1、下列关于"SUBROUTINEMAP(X,Y)"语句行的叙述中,不正确的是()
A)这是子程序的第一个语句B)字符串"MAP"是子程序名
C)变量X是子程序的形参D)子程序执行后,MAP将返回整型数据
2、FORTRAN表达式"2/4+0.5"的值是()
A)0.5B)1C)1.0D)0
3、阅读下列FORTRAN程序:
PI=3.14159265
WRITE(*,'(F7.4)')PI
END
程序运行后输出结果是()
A)3.142B)3.1415C)0.31416D)3.1416
4、圆的直径存放在整型变量K之中,下列计算圆面积的表达式中正确的是()
A)3.1415926*K*K/4B)3.1415926*(K*K/4)
C)3.1415926*(K/2)**2D)3.1415926*(K/2)*(K/2)
5、要判断"月收入M在2000元以上(含2000元)且5000元以下)不含5000元)"的职工,应该使用的逻辑表达式是()
A)M.GE.2000.AND.M.LE.5000B)M.GE.2000.OR.M.LE.5000
C)M.GE.2000.AND.M.LT.5000D)M.GE.2000.OR.M.LT.5000
6、设FORTRAN子程序如下:
SUBROUTINESUB(I,X)
B=I+1
X=X+B
END
若主程序中的变量M,B已按I-N规则赋值,则调用上述子程序的语句中正确的是()
A)CALLSUB(M,M)B)CALLSUB(M+4,B)
C)CALLSUB(B,B)D)CALLSUB(M,B+4)
7、下列不是FORTRAN常量的是()
A)(3.0,4.0)B)3.1416D+00C)2/3D)'Verygood!
'
8、阅读下列FORTRAN程序:
F=1.0
DO20K=3,7,3
DO20L=K-1,K
20WRTTE(*,'(I3,F8.1)'K,F*K
END
程序运行结果的最后一行是()
A)36.0B)66.0C)6180.0D)7180.0
9、在FORTRAN中,下列运算符的优先顺序是()
A)逻辑运算,关系运算,算术运算B)关系运算,逻辑运算,算术运算
C)算术运算,关系运算,逻辑运算D)关系运算,算术运算,逻辑运算
10、使用FORTRAN内部函数时,所给的自变量()
A)只能是常量B)只能是变量
C)只能是常量或者变量D)可以是常量、变量或者表达式
11、设X=2.0,Y=8.0,Z=6.0,L=.TRUE.,则下列FORTRAN表达式中值为.TRUE.的是()
A)X+Z.GT.Y.AND.LB).NOT.(Y.LT.Z+X).NEQV..NOT.L
C).NOT.L.OR.(L.EQV.Y+X.EQ.Z)D)Y+X.GE.Z+X.AND.(L.AND..FALSE.)
12、下列输出语句行中正确的是()
A)WRITE(*,*)(A(K,L),K=1,3,L=1,3)
B)WRITE(*,*)A(K,L),K=1,3,L=1,3
C)WRITE(*,*)((A(K,L),K=1,3),L=1,3)
D)WRITE(*,*)(A(K,L),K=1,3),L=1,3
13、给定下列FORTRAN子程序如下:
SUBROUTINESUB(K,A)
A=SQRT(K*K+1.0)
END
下列调用语句中正确的是()
A)CALLSUB(N,N)B)CALLSUB(X,X)
C)CALLSUB(N,X*X)D)CALLSUB(11,X)
14、阅读下列FORTRAN程序:
INTEGERAA(2,3)
DATAAA/1,2,3,4,5,6/
CALLS2D19(AA)
CALLS2D19(AA(1,2))
END
SUBROUTINES2D19(BB)
INTEGERBB(2,2)
WRITE(*,'(1X,2I3)')BB(1,1),BB(2,2)
END
程序运行结果是()
A)14B)15C)14D)12
36262534
15、阅读下列FORTRAN程序:
INTEGERA(3,3)
DO10K=1,3
DO10L=1,3
10A(K,L)=K*10+L
WRITE(*,'(1X,3I3)')A
END
程序运行结果是:
()
A)112131B)111213C)313233D)333231
122232212223212223322221
132333313233111213312111
16、阅读下列FORTRAN程序:
WRITE(*,10)'YEAR:
',1996
10FORMAT(/3X,A,I4)
END
程序运行结果是(^代表空格,下同)()
A)^^^^^YEAR:
1996B)^^YEAR:
1996
C)空白行D)空白行
^^^^^YEAR:
1996^^YEAR:
1996
17、某函数子程序中使用了IMPLICIT、READ、COMPLEX和FUNCTION四种语句,其中属于可执行语句的是:
()
A)FUNCTIONB)READC)COMPLEXD)IMPLICIT
18、阅读下列FORTRAN程序:
DIMENSIONM(4,4)
DATAM/1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6/
DO10I=1,4
WRITE(*,100)(M(I,J),J=1,I)
10CONTINUE
100FORMAT(1X,4I2)
END
程序运行的结果是()
A)1234B)1593C)1D)1
67860426266
121537193711
6648263448266
19、阅读下列FORTRAN程序:
CHARACTER*10A,B*6
DO10I=1,10
A(I:
I)=''
10COUNTINUE
A(1:
5)='ABCDE'
B='FGHIJK'
A(4:
9)=B
WRITE(*,100)A
100FORMAT(1X,A)
END
程序运行结果是:
()
A)ABCDEFGHIJB)ABCDEGHIJKC)ABCFGHIJKD)BCDEFGHIJK
20、阅读下列FORTRAN程序:
INTRINSICSIN,COS
WRITE(*,*)FUN(SIN,30.0)/FUN(COS,30.0)
END
FUNCTIONFUN(F,X)
X=X*3.14159/180
FUN=F(X)
END
程序运行结果是()
A)sin30°的值B)cos30°的值C)tg30°的值D)ctg30°的值
二、填空题
1、下列FORTRAN子程序的功能是用以下公式计算一组数据Z1,Z2,…,Zn的标准差σ:
σ2=(Z12+Z22+…+Zn2)/n-[(Z1+Z2+…+Zn)/n]2
请在程序中的下划线处填入合适的内容。
【1】SIGMA(Z,N)
REALZ(N)
SUMX=0.0
SUMX2=0.0
DO10K=1,N
【2】
SUMX=SUMX+X
SUMX2=SUMX2+X*X
10CONTINUE
AV=SUMX/N
AV2=SUMX2/N
S2=AV2-AV*AV
SIGMA=【3】
END
2、下列FORTRAN程序的功能是将30个学生的考试成绩读入数组A,然后统计并且输出最高的分数以及小于60分、60~80分与大于80分的三个分数段的学生数。
请在程序中的下划线处填入合适的内容。
【4】A(30),B,C(3)
DATAC/3*0/
READ(*,*)A
【5】
DO10K=2,30
IF(A(K).GT.B)B=A(K)
10CONTINUE
DO30K=1,30
IF(A(K).LT.60)C
(1)=C
(1)+1
IF(A(K).GT.80)C(3)=C(3)+1
IF(A(K).LE.80【6】A(K).GE.60)C
(2)=C
(2)+1
30CONTINUE
WRITE(*,*)B,C
END
3、下列FORTRAN程序的功能是用对分法求出方程4.1x3-5.2x=11.8在区间(1,5)中的一个实数根,要求输出根的近似值和对分次数。
请在程序中的下划线处填入合适的内容。
【7】=4.4*X**3-5.2*X-11.8
DATAXL,XR,N/1.0,5.0,0/
10N=N+1
X=(XL+XR)/2.0
FX=FUN(X)
IF(ABS(FX).LT.1E-6.OR.N.GE.1000)THEN
WRITE(*,'(1X,A2,F12.7,A5,I4)')'X=',X,'N=',N
ELSE
IF(FUN(XR)*FX.GE.0.0)THEN
XR=X
【8】
XL=X
ENDIF
【9】
ENDIF
END
4、下列FORTRAN程序的功能是计算多项式y=2+2.1x+3.2x3+5.4x5在x=1.7时的值。
主程序调用了函数子程序POLY。
请在程序中的下划线处填入合适的内容。
PROGRAMPVALUE
REALA(6)
DATAA/【10】/
DATAN,X/6,1.7/
Y=POLY(A,N,X)
WRITE(*,'(1X,A5,6F5.1)')'a(k)=',A
WRITE(*,'(1X,A2,F5.1,A6,F8.2)')'X=',X,';Y=',Y
END
FUNCTIONPOLY(B,M,V)
【11】
POLY=B
(1)
FV=1.0
DO10K=2,M
FV=FV*V
10POLY=POLY+【12】
END
5、下列FORTRAN程序的功能是使用筛法筛选出N以内的所有素数并输出。
其算法如下:
在N以内的自然数列中先筛除2的倍数(不包括2);在2之后未筛去的第一个数是3,于是再筛除3的倍数;在3之后未筛去的第一个数是5,于是再筛除5的倍数;如此重复下去,直到遇见筛剩下的第一个数是最接近N的平方根的那个数为止。
请在程序中下划线处填入合适的内容。
PARAMETER(N=100)
【13】A(N),P(N)
A
(1)=0
DO10K=2,N
10A(K)=K
DO20K=3,N
20IF(MOD(A(K),2).EQ.0)A(K)=0
ISR=SQRT(FLOAT(N))
DO30M=3,ISR,2
DO30K=M+2,N
30IF(A(K).NE.0.AND.MOD(A(K),M).EQ.0)【14】
M=1
DO40K=1,N
IF(A(K).NE.0)THEN
P(M)=【15】
M=M+1
ENDIF
40CONTINUE
WRITE(*,'(1X,10I8)')(P(K),K=1,M-1)
END
三、编写程序题
1、以循环来计算1/1!
+1/2!
+1/3!
+1/4!
+……+1/10!
的值。
2、编写一个程序计算圆面积,输入两个参数,一个参数为输入圆的半径长,另一个参数用来返回圆面积。
3、利用选择排序法编制程序,将数组A中所有的数值(5,3,6,4,8,7,1,9,2,10)从小到大排列。
参考答案及评分标准
一、选择题
1、D2、A3、D4、A5、C6、B7、C8、B
9、C10、D11、B12、C13、D14、A15、A16、D
17、B18、C19、C20、C
二、填空题
【1】FUNCTION
【2】X=Z(K)
【3】SQRT(S2)
【4】INTEGER或者REAL
【5】B=A
(1)
【6】.AND.
【7】FUN(X)
【8】ELSE
【9】GOTO10
【10】2.0,2.10.0,3.2,0.0,5.4
(注:
顺序不可颠倒,小数点前后的0可以省略其中的一个。
)
【11】DIMENSIONB(M)或者REALB(M)
【12】B(K)*FV或者FV*B(K)
【13】INTEGER
【14】A(K)=0或者A(K)=0.0
【15】A(K)
三、编写程序题
1、解题程序:
programmain
implicitnone
integer,parameter:
:
max=10
integeri
realitem
realans
ans=1.0
item=1.0
doi=2,max
item=item/real(i)
ans=ans+item
enddo
write(*,*)ans
stop
endprogram
2、解题程序:
programmain
implicitnone
realradius,area
write(*,*)"请输入半径长"
read(*,*)radius
callCircleArea(radius,area)
write(*,"('面积='F8.3)")area
stop
endprogram
subroutineCircleArea(radius,area)
implicitnone
real,parameter:
:
PI=3.14159
realradius,area
area=radius*radius*PI
endsubroutine
3、解题程序:
programmain
implicitnone
integer,parameter:
:
size=10
integer:
:
a(size)=(/5,3,6,4,8,7,1,9,2,10/)
integer:
:
i,j
integer:
:
t
doi=1,size-1
doj=i+1,size
if(a(i)>a(j))then!
a(i)跟a(j)交换
t=a(i)
a(i)=a(j)
a(j)=t
endif
enddo
enddo
write(*,"(10I4)")a
stop
end
一、选择题
1、下列关于FORTRAN源程序编辑规则的叙述之中,正确的是()
A)IMPLICIT语句可以放在REAL语句行之后
B)DATA语句可以在放在紧靠END语句行之前
C)注释行不可以放在END语句行之后
D)FORMAT语句可以放在PROGRAM语句行之前
2、下列FORTRAN源程序的变量名之中,不符合规则的是()
A)WB)W3C)-3D)W3W
3、若FORTRAN中一个INTEGER型数据占用2个字节,那么该类型的数据值范围是()
A)-21474846482147483647B)-3276832767
C)04294967295D)065535
4、阅读下列程序
X=0.618
WRITE(*,'(E12.4)')X
END
程序运行后显示结果是()
A).6180B)6.180E-01C).0618E+01D).6180E+00
5、梯形的上底为A,下底为B,高为H,计算其面积的FORTRAN表达式中错误的是()
A)1/2*(AB)*HB)(A+B)*H/2C)(A+B)/2*HD)0.5*(A+B)*H
6、要选拔身高T>1.7米且体重W<62.5公斤的人,FORTRAN的逻辑表达式是()
A)T.CE.1.7.AND.W.LE.62.5B)T.LE.1.7.OR.W.GE.62.5
C)T.GT.1.7.AND.W.LT.62.5D)T.GT.1.7.OR.W.LT.62.5
7、在FORTRAN的变量类型说明语句中没有()
A)REAl语句B)CHAR语句C)INTEGER语句D)LOGICAL语句
8、一次成功的FORTRAN源程序编译操作,不能()
A)同时编译一个主程序和一个子程序B)同时编译几个子程序
C)同时编译一个主程序和几个子程序D)同时编译几个主程序
9、阅读下列程序
F=1.0
DO20,J=3,7,2
DO20,K=J-1,J
20F=F*K
WRITE(*,'(13,F8.1)')J,F
END
程序运行结果是
A)36.0B)5120.0C)95040.0D)9362880.0
10、阅读下列程序
CHARACTER*10W
DOK=1,10
READ*,W
IF(W(1:
2).EQ.'AB'.OR.W(1:
2).EQ.'ab')WRITE(*,*)'',W
ENDDO
END
程序的功能是()
A)首字符是A或B的字符串被输出显示
B)第一、二个字符是AB或ab的字符串被输出显示
C)首字符是a或b的字符串将被输出显示
D)第一、二个字符是Aa或Bb的字符串将被输出显示
11、阅读下列程序
LOGICALL
READ(*,*)A,B
L=A.GT.B
IF(L)THEN
X=B+2*A
ELSE
X=B
ENDIF
WRITE(*,*)X
END
使用键盘为上述程序输入两个初值4和3,其输出的X值是()
A)4.0B)3.0C)11.0D)10.0
12、阅读下列程序
READ(*,*)K
WRITE(*,100)K
100FORMAT(I5)
END
程序运行时输入初始值12345,那么显示结果是
A)2345B)12345C)****D)*****
13、阅读下列程序
INTEGERF
F(X,Y)=X+Y
A=-2.5
B=2.1
B=B+F(A,B)
WRITE(*,'(F3.1)')B
END
程序运行的结果是()
A).1B).7C)2.1D)1.7
14、阅读下列程序
A=3.5
CALLSUBA(A,A,A)
WRITE(*,'(F4.1)')A
END
SUBROUTINESUBA(X,Y,Z)
Y=Y-2.0
Z=Z+X
END
程序运行的结果是()
A)7.0B)5.0C)3.5D)1.5
15、阅读下列程序
CHARACTERA*4,B*5,C*4
DATAA,B,C/'BIG’,'MIDDLE','SMALL'/
WRITE(*,20)A,B,C
20FORMAT(1X,A2,A3,A4)
END
程序运行结果是()
A)BIGMIDDLEB)*********C)BIGMIDSMAD)BIMIDSMAL
16、阅读下列程序
N=0
DO10K=1,3
N=N+1
M=K*N
10CONTINUE
WRITE(*,'(1X,2I3)')M,K
END
程序运行结果是()
A)94B)93C)124D)123(#^)
17、阅读下列程序
FUN(c,d)=a*c+b/d
DATAa,b/1.0,1.0/
WRITE(*,'(F4.1)')FUN(a,b)-FUN(b,a)
END
程序运行结果是()
A)0.0B)4.0C)2.OD)3.O
18、阅读下列程序
LOGICALL1,L2,L3,L4,L5
DATAL1,L2,L3/3*.TRUE./
L4=.NOT.L1.AND..NOT.L2.AND.L3
L5=.NOT.L1.OR..NOT.L2.OR.L3
WRITE(*,*)L4,L5
END
程序运行结果是()
A)TTB)TFC)FFD)FT
19、阅读下列程序
DIMENSIONM(3,3)
DATAM/1,2,3,4,5,6,7,8,9/
WRITE(*,100)(M(3,J),J=1,3)
100FORMAT(1X,3I2)
END
程序运行结果是()
A)258B)369C)456D)789
20、阅读下列程序
INTEGERA(100),G
READ(*,*)N,(A(I),I=1,N)
DO10I=1,N-1
G=I
DO20J=I+1,N
IF(A(J).LT.A(G))THEN
G=J
ENDIF
20CONTINUE
K=A(I)
A(I)=A(G)
A(G)=K
10CONTINUE
WRITE(*,'(1X,10I2)')(A(I),I=1,N)
END
程序运行时输入的初始值是3,6,9,8,则运行结果是()
A)698B)896C)689D)986
二、填空题
1、阅读下列程序,其功能是求出方程2X3-3X2+4X-11=0在区间(1,5)中的一个实数根,运行结果是显示根值和对分次数,使用的是二分算法。
请在其中_____处填入适当的内容。
FUN(X)=2.0*X**3-3.0*X**2+4.0*X-11.0
DATAXL,XR,N/1.O,5.0,0/
10CONTINUE
【1】
X=(XL+XR)/2.0
【2】
IF(ABS(FX).LT.1E-6.OR.N.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机技术 基础 Fortran 试题库
![提示](https://static.bdocx.com/images/bang_tan.gif)