FORTRAN程序设计复习题及答案_第1页
FORTRAN程序设计复习题及答案_第2页
FORTRAN程序设计复习题及答案_第3页
FORTRAN程序设计复习题及答案_第4页
FORTRAN程序设计复习题及答案_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z.FORTRAN程序设计复习题选择题B(1)以下各FORTRAN表达式中合法的是A)S+T*2P>=0.0B).NOT.(A*B+C)C)A2+B2/(C+D)<=0.0D)(A+B).NOT.A*B.GT.0.0(.NOT.只跟一个表达式)C(2)数学式(3/5)e*+y的FORTRAN表达式是A)3*E*P(*+Y)/5 B)3*E**(*+Y)/5.0C)(3/5)*E*P(*+Y) D)(3.0/5.0)E*P(*+Y)D(3)以下FORTRAN77表达式中不合法的是A)A.GT.B.EQV.C.GT.D B)A.AND.B.AND.C.AND.DC).NOT.(*.LE.0.0) D)A.LT.B.LT.C.LT.DD(4)以下表达中不正确的选项是A)FORTRAN子程序可以单独编译

B)对一个FORTRAN源程序进展编译和连接无误后可生成可执行文件

C)即使编译和连接都正确无误,FORTRAN程序运行时仍可能出错D)FORTRAN连接的主要任务是把函数库中的函数翻译成机器指令(正确描述:主要任务为连接目标文件)B(5)在以下FORTRAN77运算符中,优先级最高的是

A).AND.B).NOT.C).OR.D).EQ.B(6)FORTRAN表达式"6/5+9/2**3/2"的值为

A)33B)1CA(7)以下FORTRAN77表达式中,合法的是:A)0.0.LE.*.AND..NOT.*.GE.10.0B)0.0.GE.*.LT.10.0

C)0.0.LE.*.GE.10.D)10.0.LE.*.OR..AND.*.GT.0.0提示:A〕相当于0.0.LE.*.AND.〔.NOT.〔*.GE.10.0〕〕D(8)关于编译一个FORTRAN源程序文件,以下说法中错误的选项是

A)允许编译只有一个主程序而没有子程序的源文件

B)允许编译有多个子程序的源文件

C)允许编译只有一个子程序而没有主程序的源文件

D)允许编译有多个主程序的源文件C(9)在FORTRAN77源程序中,续行标志符必须放在

A)第1列B)第1-6列C)第6列D)第5列D(10)以下关于"SUBROUTINEMAP(*,Y)"语句行的表达中,不正确的选项是

A)这是子程序的第一个语句B)字符串"MAP"是子程序名

C)变量*是子程序的形参D)子程序执行后,MAP将返回整型数据提示:子程序无返回值,自定义函数才有〕A(11)FORTRAN表达式"2/4+0.5"的值是

A)0.5B)1C)1.0D)0提示:2/4默认等于整型,0.5="0.0D(12)FORTRAN表达式"MOD(4.9,1.3)"的值是A)1.3B)0.0C)4.9D)1.0A(13以下FORTRAN运算符中,优先级最低的是A〕逻辑运算符.AND.B〕算术运算符*C)关系运算符>=D)算术运算符+A(14以下语句函数的定义中正确的选项是A〕F(*,Y)=(*+Y)/(**Y)+7.0B〕FUNCTIONFUN(I,J,K)=3*I+2*J+0.5*KC〕H(A,B,C(I))=SIN(A)+SIN(B)+C(I)D)S(A,B,C)=A*B+S(A*A,B,C)B〔15以下标识符中,不属于FORTRAN常量的是A〕.TRUE.B〕FALSEC〕ˊROOT=ˊD〕ˊ123.0ˊB〔16〕"整型变量M能被整型变量K整除"的FORTRAN77表达式是A〕MOD(M,K)=0〔MOD(M,K)==0〕B〕M-M/K*K.EQ.0CC〔17〕设有以下数组说明语句:

REAL::A(1:10,-1:10)该数组说明语句定义了数组A中的元素个数为A〕100B〕110C〕120A(18)按隐含规则〔默认为整型〕,语句IP=3.1415926执行之后,IP的值是A)3 B)3.1416 C)3.141592 D)3.141593D(19)以下数据中,不符合FORTRAN常量表示法的是A)-25.6B)2.758D3 C)‘FOOT’‘=’D)TRUEC(20)设C是复型变量,A与B为有定义的实型变量,以下赋值语句中合法的是A)C=A+BB)C=(3.5,1.5**2)C)C=(2.0,3D-2)D)C=(A+B,A-B)B(21)有矩阵(数组)以下DATA语句中正确的选项是A)DATAB/4*1.0,4*2.0/B)DATA((B(I,J),J=1,4),I=1,2)/4*1.0,4*2.0/C)DATAB/4*(1.0,2.0)/D)DATA((B(I,J),I=1,2),J=1,4)/4*1.0,4*2.0/C(21)在使用DO循环及循环嵌套时,以下表达中正确的选项是A)不仅可以从循环体内转到循环体外,也可以从循环体外转到循环体内B)外循环与内循环的DO循环控制变量可以不同.也可以一样C)可以从循环体内转到循环体外,但不能从循环体外转到循环体内D)DO循环控制变量在循环体内可以再赋值,也可以被引用B(22)在FORTRAN表达式中,各种运算的顺序是A)逻辑运算,关系运算,算术运算B)算术运算,关系运算,逻辑运算C)关系运算,逻辑运算,算术运算D)关系运算,算术运算,逻辑运算D(23)赋值语句*=4**(6/12)=4**0=1.0执行后,实型变量*的值是A)2B)2.0C)1D)1.0D(24)为了保证正确出数据,格式编辑符Ew.d中w与d的关系应该是A)w>dB)w>d+2C)w>d+4D)w>d+6C(25)设以下各语句中用到的数组都已定义,则以下语句中正确的选项是A)READ(*,*)(I,A(I),I=1,10)B)READ(*,*)(B,(I,J),I=1,10,J=1,10)C)READ(*,*)N,(A(I),I=1,N)D)READ(*,*)(I=1,10,A(I))A(26)以下DO语句中,不正确实现循环的是(I-N规则:I-N会被视为整型)A)DO10S=-1.6,-5.3,-0.4B)DO10K=-1.6,-5.3,-0.4C)DO10S=-5.3,-1.6,-0.4D)DO10K=1.6,5.3,-1.4D(27)以下说法中正确的选项是A)块IF构造中的THEN块或ELSE块不能是空块B)块IF构造中至少有一个ELSEIF语句或ELSE语句C)每个ELSEIF语句要有一个对应的ENDIF语句D)一个块IF构造中只能有一个ENDIF语句A(28)以下数组说明语句中正确的选项是A)INTEGERA(-1:5,0:6)B)REALM(10:5)C)DOUBLEY(1:N+1)D)DOUBLEZ(14)B(29)设有一个FORTRAN77子程序如下:SUBROUTINESS(*,Y,S,T)S=*+Y〔S,T为传出,即需要输出的〔相当于求圆的面积中的area〕,只能T=**Y为确定的数;*,Y为传入〔相当于radius〕,可为表达式〕END调用上述子程序的正确语句是A)CALLSS(2.4,W*W,5,5.9,Z)〔多了一个〕B)CALLSS(0.0,4.2,P,Q,R)〔多了一个〕C)CALLSS(F,G,7.2,5.1)D)CALLSS(4.4*I,5.8*J,C,D)〔I,J可先赋值〕A(30)在以下语句函数的定义中正确的选项是A)F(*,Y)=(*+Y)/(**Y)+7.0B)FUNCTION(I,J,K)=3*I+2*J+0.5*KC)H(A,B,C(I))=SIN(A)+SIN(B)+C(I)D)S(A,B,C)=A*B+S(A*A,B,C)B(31)MON语句的功能是A)给同一程序模块中的假设干变量分配同一存储单元B)给不同程序模块中的变量分配一样的存储单元C)给程序中任意两个变量分配一样的存储单元D)给同一程序模块中的不同变量分配一样的存储单元B(32)以下表达式中值为整数4的是A)SQRT(16.0)B)27/6C)16**0.5D)4*1.0C(34)语句K=2+3.0**2/2执行后,整型变量K的值是A)6.5B)5C)6D)7C(36)适用于字符型I/O的FORTRAN77格式编辑将是A)Fw.d B)Iw.d C)A D)Gw.dD(37)给定子例行程序如下SUBROUTINESUB(K,A)B=K+2〔K为整型,B〕错误;A不是整型,A〕错误;K为传入,可为表达式,A=A+BA为传出,不能为表达式〕END以下调用语句中正确的选项是A)CALLSUB(N,N)B)CALLSUB(*,*)C)CALLSUB(N+2,*)D)CALLSUB(N,*+3)C(38)以下FORTRAN语句中,正确的选项是A)READ(*,*)(N,A(K),K=1,N)B)WRITE(*,*)(M(K,J),K=1,10,J=1,10)

C)WRITE(*,*)(10,A(K),K=1,10)D)DATAA,B,C/2*0.0/

C(39)对于以下给定的FORTRAN说明和赋初值语句:

INTEGERA(2,2)

DATAA/3,4,5,6/

数组元数A(2,1)的初值为A)3B)5C)4D)6

C(40)以下对公用区的说明语句中错误的选项是A)MONA(5),BB)MON/AB/A(5),B

C)MONAB/A(5),B/D(41)以下各逻辑IF语句中正确的选项是A)IF(*<0.0)THEN10B)IF(*>=0.0).AND.(*.LT.1.0)Y=2**+1.0C)IF(0.0>=*<=1.0)Y=2**+1.0D)IF(*>=0.0.AND.*<=1.0)Y=2**+1.0二、阅读题1、阅读以下FORTRAN程序:programe*amplereala,b,ca=1.0b=2.0c=3.0write(*,"(3(F5.2))")a,b,cend程序运行的结果是:1.002.003.002、阅读以下FORTRAN程序:programe*ampleinteger::a=1integer::b=2real::cc=a/bwrite(*,"(F5.2)")cend程序运行结果是:0.003、阅读以下FORTRAN程序:programe*ampleimplicitnoneintegerrain,windspeedwrite(*,*)"Rain:"read(*,*)rainwrite(*,*)"Wind:"read(*,*)windspeedIf(rain>=500.or.windspeed>=10)thenwrite(*,*)"停顿上班上课"elsewrite(*,*)"照常上班上课"endifstopend运行上述程序时,如果从键盘输入Rain:505<回车>Wind:8<回车>则最后输出的结果为:停顿上班上课4、阅读以下FORTRAN程序:programe*ampleimplicitnonereala,b,anscharacteroperatorread(*,*)aread(*,"(A1)")operatorread(*,*)bselectcase(operator)case('+')ans=a+bcase('-')ans=a-bcase('*')ans=a*bcase('/')ans=a/bcasedefaultwrite(*,"('Unknownoperator',A1)")operator stopendselectwrite(*,"(F6.2,A1,F6.2,'=',F6.2)")a,operator,b,ansstopend运行上述程序时,如果从键盘输入100<回车>"<回车>200<回车>则最后输出的结果为:Unknownoperator"5、阅读以下FORTRAN程序:programe*ampleimplicitnoneintegeriintegerstrleninteger,parameter::key=2character(len=20)::stringwrite(*,*)"Encodedstring:"read(*,*)stringstrlen=len_trim(string)doi=1,strlenstring(i:i)=char(ichar(string(i:i))+key)enddowrite(*,"('String:',A20)")stringstopendBCDIJK<回车>则最后输出的结果为:DEFKLM6、阅读以下FORTRAN程序:programe*ampleimplicitnoneintegeri,jdoi=1,2doj=2,3,2 write(*,"(I2,I2)")i,j enddo write(*,*)"anothercircle"enddostopend程序运行的结果是:12anothercircle22anothercircle〔按输出格式,1、2前均有一空格。假设题目无特殊说明,不需表达出;假设有说明,则空格用"□〞表示〕7、阅读以下FORTRAN程序:programe*ampleimplicitnoneinteger::dest=6integerfloordofloor=1,destif(floor==2.or.floor==4)cycle write(*,*)floorenddostopend程序运行的结果是:13568、阅读以下FORTRAN77程序:programe*ampleimplicitnoneinteger,parameter::limit=10integercounterinteger::ans=0counter=1dowhile(counter<=limit)ans=ans+countercounter=counter+2enddowrite(*,*)ansstopend程序运行的结果是:259、阅读以下FORTRAN程序:programe*ampleimplicitnoneinteger,parameter::students=5integer::student(students)=(/80,90,85,75,95/)integeridowhile(.true.)write(*,*)"Query:"read(*,*)iif(i<=0.or.i>students)e*itwrite(*,*)student(i)enddostopend运行上述程序时,如果从键盘输入3<回车>则最后输出的结果为:8510、阅读以下FORTRAN程序:programe*ampleimplicitnoneinteger,parameter::L=2,M=3,N=2real::A(L,M)=(/1,2,3,4,5,6/)real::B(M,N)=(/1,2,3,4,5,6/)real::C(L,N)integer::i,j,kdoi=1,Ldoj=1,N C(i,j)=0.0dok=1,M C(i,j)=C(i,j)+A(i,k)*B(k,j)enddo enddoenddodoi=1,Lwrite(*,*)C(i,:)enddostopend程序运行的结果是:2249286411、阅读以下FORTRAN程序:programe*ampleimplicitnoneinteger::i,jloop1:doi=1,3loop2:doj=1,3if(i==3)e*itloop1if(j==2)cycleloop2write(*,"('(',i2,',',i2,')')")i,jenddoloop2enddoloop1stopend程序运行的结果是:(1,1)(1,3)(2,1)(2,3)12、阅读以下FORTRAN程序:programe*ampleimplicitnonereal::a=1.0callShowInteger(a)callShowReal(a)stopendsubroutineShowInteger(num)implicitnoneinteger::numwrite(*,*)numreturnendsubroutineShowReal(num)implicitnonereal::numwrite(*,*)numreturnend程序运行的结果是:随机数1.00000013、阅读以下FORTRAN程序:programe*ampleimplicitnoneinteger,parameter::row=2integer,parameter::col=2integer::m(row,col)integerrintegercdata((m(r,c),r=1,2),c=1,2)/1,2,3,4/write(*,"(I3,I3,/,I3,I3)")((m(r,c),c=1,2),r=1,2)stopend程序运行的结果是:132414、阅读以下FORTRAN程序:programe*0805implicitnoneinteger::a=1integer::b=2write(*,*)a,bcalladd(a)calladd(b)write(*,*)a,bstopendsubroutineadd(num)implicitnoneinteger::numnum=num+1returnend程序运行的结果是:122315、阅读以下FORTRAN程序:programe*ampleimplicitnoneinteger,parameter::size=10integer::a(size)=(/5,3,6,4,8,7,1,9,2,10/)integer::i,jinteger::tdoi=1,size-1doj=i+1,sizeif(a(i)>a(j))then t=a(i)a(i)=a(j) a(j)=t endif enddoenddowrite(*,"(10I4)")astopend程序运行的结果是:1234567891016、阅读以下FORTRAN程序:programe*ampleimplicitnonereal::a=1real::b=2real,e*ternal::addwrite(*,*)add(a,b)stopendfunctionadd(a,b)implicitnonereal::a,breal::addadd=a+breturnend程序运行的结果是:3.000000(类似的题目,写3.0亦可,但不可写3)17、阅读以下FORTRAN程序:programe*ampleimplicitnoneinteger::a,bmona,ba=1b=2callShowmon()write(*,*)a,bendsubroutineShowmon()implicitnoneinteger::num1,num2monnum1,num2write(*,*)num1,num2returnend程序运行的结果是:121218、阅读以下FORTRAN程序:moduleglobalimplicitnonereala,bmona,bendmoduleprograme*ampleuseglobalimplicitnonea=1.0b=2.0callsub()endprogramsubroutinesub()useglobalimplicitnonewrite(*,*)a,breturnendsubroutine程序运行的结果是:1.0000002.00000019、阅读以下FORTRAN程序:

INTEGERA(3,3)

DOK=1,3

DOL=1,3A(K,L)=K*10+L

ENDDOENDDOWRITE(*,'(1*,3I3)')A

END程序运行的结果是:11213112223213233320、阅读以下FORTRAN程序:

INTEGERF

F(*,Y)=*+Y

A=-2.5

B=4.0

B=1.0+F(A,B)

WRITE(*,20)B

20FORMAT(1*,F4.1)

END

程序运行的结果是:2.021、阅读以下FORTRAN程序:

*=0

DOL=10,5,15

*=*+1.0ENDDO

END

程序运行时执行循环体的次数是:022、阅读以下FORTRAN77程序:

DIMENSIONM(4,4)

DATAM/1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6/

DOI=1,4

WRITE(*,100)(M(I,J),J=1,I)

ENDDO100FORMAT(1*,4I2)

END

程序运行的结果是:126371482623、阅读以下FORTRAN程序:

CHARACTER(LEN=10)ACHARACTER(LEN=6)BDOI=1,10A(I:I)=''ENDDO

A(1:5)='ABCDE'

B='FGHIJK'

A(4:9)=B

WRITE(*,100)A100FORMAT(1*,A)

END

程序运行结果是:ABCFGHIJK24、阅读以下FORTRAN程序:

*=0.0

Y=2.0

CALLSUB(*,Y,Z,3.0)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论