计算机技术基础Fortran试题库.docx

上传人:b****8 文档编号:29282905 上传时间:2023-07-21 格式:DOCX 页数:21 大小:23.78KB
下载 相关 举报
计算机技术基础Fortran试题库.docx_第1页
第1页 / 共21页
计算机技术基础Fortran试题库.docx_第2页
第2页 / 共21页
计算机技术基础Fortran试题库.docx_第3页
第3页 / 共21页
计算机技术基础Fortran试题库.docx_第4页
第4页 / 共21页
计算机技术基础Fortran试题库.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

计算机技术基础Fortran试题库.docx

《计算机技术基础Fortran试题库.docx》由会员分享,可在线阅读,更多相关《计算机技术基础Fortran试题库.docx(21页珍藏版)》请在冰豆网上搜索。

计算机技术基础Fortran试题库.docx

计算机技术基础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.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1