计算机技术基础(Fortran)试题库_第1页
计算机技术基础(Fortran)试题库_第2页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、、选择题1、下列关于"SUBROUTINEMAP(XY)"语句行的叙述中,不正确的是()A) 这是子程序的第一个语句B)字符串"MAP"是子程序名C)变量X是子程序的形参D)子程序执行后,MAP将返回整型数据2、FORTRAN表达式"2/4+"的值是()A)B)1C)D)03、阅读下列FORTRAN程序:PI=3.WRITE(*,'')PIEND程序运行后输出结果是()A)B)3.1415C)D)4、圆的直径存放在整型变量K之中,下列计算圆面积的表达式中正确的是()A)*K*K/4B)*(K*K/4)C)*(K/2)*

2、2D)*(K/2)*(K/2)5、要判断"月收入M在2000元以上(含2000元)且5000元以下)不含5000元)"的职工,应该使用的逻辑表达式是()A)M.GE.2000.AND.M.LE.5000B)M.GE.2000.OR.M.LE.5000C)M.GE.2000.AND.M.LT.5000D)M.GE.2000.OR.M.LT.50006、设FORTRAN子程序如下:SUBROUTINESUB,(IX)B=I+1X=X+BEND若主程序中的变量M,B已按I-N规则赋值,则调用上述子程序的语句中正确的是()A)CALLSUB(M,M)B)CALLSUB(M+4,B)

3、C)CALLSUB(B,B)D)CALLSUB(M,B+4)7、下列不是FORTRAN常量的是()A),B)+00C)2/3D)'Verygood!'8、阅读下列FORTRAN程序:F=DO20K=3,7,3DO20L=K-1,K20WRTTE(*,'(I3,'K,F*KEND程序运行结果的最后一行是()A)3B)66.0C)6D)79、在FORTRAN中,下列运算符的优先顺序是()A)逻辑运算,关系运算,算术运算B)关系运算,逻辑运算,算术运算C)算术运算,关系运算,逻辑运算D)关系运算,算术运算,逻辑运算10、使用FORTRAN内部函数时,所给的自变量()A

4、)只能是常量B)只能是变量C)只能是常量或者变量D)可以是常量、变量或者表达式11、设X=,丫=,Z=,L=.TRUE则下列FORTRAN表达式中值为.TRUE的是()A)X+B).NOT.C).D)丫+12、下列输出语句行中正确的是()A) WRITE(*,*)(A(K,L),K=1,3,L=1,3)B) WRITE(*,*)A(K,L),K=1,3,L=1,3C) WRITE(*,*)(A(K,L),K=1,3),L=1,3)D) WRITE(*,*)(A(K,L),K=1,3),L=1,313、给定下列FORTRAN子程序如下:SUBROUTINESUB(,KA)A=SQRT(K*K+E

5、ND下列调用语句中正确的是()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)ENDSUBROUTINES2D19(BB)INTEGERBB(2,2)WRITE(*,'(1X,2I3)')BB(1,1),BB(2,2)END程序运行结果是()A)14B)153626C)14D)12253415、阅读下列FORTRAN程序:INTEGERA(3,3)DO

6、10K=1,3DO10L=1,310A(K,L)=K*10+LWRITE(*,'(1X,3I3)')AEND程序运行结果是:()C)313233D)333231212223322221111213312111A)112131B)11121312223221222313233331323316、阅读下列FORTRAN程序:WRITE(*,10)'YEAR:',199610FORMAT(/3X,A,I4)END程序运行结果是(人代表空格,下同)()A)AAAAAYEAR:1996B)AAYEAR:1996C)空白行D)空白行AAAAAYEAR:1996AAYEAR:

7、199617、某函数子程序中使用了IMPLICITREADCOMPLEX和FUNCTION四种语句,其中属于可执行语句的是:()A)FUNCTIONB)READC)COMPLEXD)IMPLICIT18、阅读下列FORTRAN程序:DIMENSIONM(4,4)DATAM/1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6/DO10I=1,4WRITE(*,100)(M(I,J),J=1,I)10CONTINUE100FORMAT(1X,4I2)ENDD)1程序运行的结果是()A)1234B)1593C)167860426266121537193711664826344826619

8、、阅读下列FORTRAN程序:CHARACTER*®A,B*6DO101=1,10A(l:l)=''10COUNTINUEA(1:5)='ABCDE'B='FGHIJK'A(4:9)=BWRITE(*,100)A100FORMAT(1X,A)END程序运行结果是:()A)ABCDEFGHIJB)ABCDEGHIJKC)ABCFGHIJKD)BCDEFGHIJK20、阅读下列FORTRAN程序:INTRINSICSINCOSWRITE(*,*)FUN(SIN,/FUN(COS,ENDFUNCTIONFUN(F,X)X=X*180FUN=F

9、(X)END程序运行结果是()A)sin30的值B)cos30的值C)tg30的值D)ctg30的值(T:二、填空题1、下列FORTRAN子程序的功能是用以下公式计算一组数据Z1,Z2,”的标准差o2=(Z12+z2?+Z?)/n-(Z1+Z2+Zn)/b请在程序中的下划线处填入合适的内容。【1】SIGMA(Z,N)REALZ(N)SUMX=SUMX2=DO10K=1,N【2】SUMX=SUMX+XSUMX2=SUMX2+X*X10CONTINUEAV=SUMX/NAV2=SUMX2/NS2=AV2-AV*AVSIGMA=【3】END2、下列FORTRAN程序的功能是将30个学生的考试成绩读入

10、数组A,然后统计并且输出最高的分数以及小于60分、6080分与大于80分的三个分数段的学生数。请在程序中的下划线处填入合适的内容。【4】A(30),B,C(3)DATAC/3*0/READ(*,*)A【5】DO10K=2,30IF(A(K).B=A(K)10CONTINUEDO30K=1,30IF(A(K).C(1)=C(1)+1IF(A(K).C(3)=C(3)+1IF(A(K).【6】A(K).C(2)=C(2)+130CONTINUEWRITE(*,*)B,CEND3、下列FORTRAN程序的功能是用对分法求出方程在区间(1,5)中的一个实数根,要求输出根的近似值和对分次数。请在程序中的

11、下划线处填入合适的内容。【7】=*x*DATAXL,XR,N/,0/10N=N+1X=(XL+XR)/FX=FUN(X)IF(ABS(FX).WRITE(*,'(1X,A2,A5,I4)')'X=',X,'N=',NELSEIF(FUN(XR)*THENXR=X【8】XL=XENDIF【9】ENDIFEND4、下列FORTRAN程序的功能是计算多项式y=2+在x=时的值。主程序调用了函数子程序POLY请在程序中的下划线处填入合适的内容。PROGRAMPVALUEREALA(6)DATAA/【10】/DATAN,X/6,Y=POLY(A,N,X)W

12、RITE(*,'(1X,A5,6F')'a(k)=',AWRITE(*,'(1X,A2,A6,')'X=',X,'Y=',YENDFUNCTIONPOLY(B,M,V)【11】POLY=B(1)FV=DO10K=2,MFV=FV*V10POLY=POLY+12】END5、下列FORTRAN程序的功能是使用筛法筛选出N以内的所有素数并输出。其算法如下:在N以内的自然数列中先筛除2的倍数(不包括2);在2之后未筛去的第一个数是3,于是再筛除3的倍数;在3之后未筛去的第一个数是5,于是再筛除5的倍数;如此重复下去,直到遇

13、见筛剩下的第一个数是最接近N的平方根的那个数为止。请在程序中下划线处填入合适的内容。PARAMETER(N=100)【13】A(N),P(N)A(1)=0DO10K=2,N10A(K)=KDO20K=3,N20IF(MOD(A(K),2).A(K)=0ISR=SQRT(FLOAT(N)DO30M=3,ISR,2DO30K=M+2,N30IF(A(K).【14】M=1DO40K=1,NIF(A(K).THENP(M)=【15】M=M+1ENDIF40CONTINUEWRITE(*,'(1X,10I8)')(P(K),K=1,M-1)END三、编写程序题1、以循环来计算1/1!+1

14、/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、B9、C10、D11、B12、C13、D14、A15、A16、D17、B18、C19、C20、C、填空题1】FUNCTION【2】X=Z(K)3】SQRT(S2)【4】INTEGERS者REAL5】B=A(1)6】.AND.7】FUN(X)8】ELSE9】GOTO1010】,,注:顺

15、序不可颠倒,小数点前后的0可以省略其中的一个。)11】DIMENSIONB(M)或者REALB(M)12】B(K)*FV或者FV*B(K)13】INTEGER14】A(K)=0或者A(K)=15】A(K)三、编写程序题1、解题程序:programmainimplicitnoneinteger,parameter:max=10integerirealitemrealansans=item=doi=2,maxitem=item/real(i)ans=ans+itemenddowrite(*,*)ansstopendprogram2、解题程序:programmainimplicitnonerealr

16、adius,areawrite(*,*)"请输入半径长"read(*,*)radiuscallCircleArea(radius,area)write(*,"('面积='")areastopendprogramsubroutineCircleArea(radius,area)implicitnonereal,parameter:PI=realradius,areaarea=radius*radius*PIendsubroutine3、解题程序:programmainimplicitnoneinteger,parameter:size=10

17、integer: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!a(i)跟a(j)交换t=a(i)a(i)=a(j)a(j)=tendifenddoenddowrite(*,"(10I4)")astopend、选择题1、下列关于FORTRAN源程序编辑规则的叙述之中,正确的是()A) IMPLICIT语句可以放在REAL语句行之后B) DATA语句可以在放在紧靠END语句行之前C) 注释行不可以放在END语句行之后D) FORMAT

18、语句可以放在PROGRAM语句行之前2、下列FORTRAN源程序的变量名之中,不符合规则的是()A) WB)W3C)-3D)W3W3、若FORTRAN中一个INTEGER型数据占用2个字节,那么该类型的数据值范围是()A)-4847B)-3276832767C)095D)0655354、阅读下列程序X=WRITE(*,'')XEND程序运行后显示结果是()A).6180B)-01C.0618E+01D).6180E+005、梯形的上底为A,下底为B,高为H,计算其面积的FORTRAN表达式中错误的是()A)1/2*(AB)*HB)(A+B)*H/2C)(A+B)/2*HD)*(

19、A+B)*H6、要选拔身高T>1.7米且体重W<公斤的人,FORTRAN的逻辑表达式是()A)B)62.5D)、在FORTRAN的变量类型说明语句中没有()A)REAl语句B)CHAR语句C)INTEGER语句D)LOGICAL语句8、一次成功的FORTRAN源程序编译操作,不能()A)同时编译一个主程序和一个子程序B)同时编译几个子程序C)同时编译一个主程序和几个子程序D)同时编译几个主程序9、阅读下列程序F=DO20,J=3,7,2DO20,K=J-1,J20F=F*KWRITE(*,'(13,')J,FEND程序运行结果是A)3B)5120.0C)9D)10、

20、阅读下列程序CHARACTER*10WDOK=1,10READ*,WIF(W(1:2).EQ.'AB'.(1:2).EQ.'ab')WRITE(*,*)'',WENDDOEND程序的功能是()A) 首字符是A或B的字符串被输出显示B) 第一、二个字符是AB或ab的字符串被输出显示C) 首字符是a或b的字符串将被输出显示D) 第一、二个字符是Aa或Bb的字符串将被输出显示11、阅读下列程序LOGICALLREAD(*,*)A,BL=IF(L)THENX=B+2*AELSEX=BENDIFWRITE(*,*)XEND使用键盘为上述程序输入两个初值4和

21、3,其输出的X值是()A)B)3.0C)D)12、阅读下列程序READ(*,*)KWRITE(*,100)K100FORMAT(I5)END程序运行时输入初始值A)2345B)1234512345,那么显示结果是C)D)*13、阅读下列程序INTEGERFF(X,Y)=X+YA=B=B=B+F(A,B)WRITE(*,'')BEND程序运行的结果是()A).1B).7C)D)14、阅读下列程序A=CALLSUBA(A,A,A)WRITE(*,'')AENDSUBROUTINESUBA(X,Y,Z)Y=Z=Z+XEND程序运行的结果是()A)B)5.0C)D)15

22、、阅读下列程序CHARACTERA*4,B*5,C*4DATAA,B,C/'BIG','MIDDLE','SMALL'/WRITE(*,20)A,B,C20FORMAT(1X,A2,A3,A4)END程序运行结果是()D)BIMIDSMALA)BIGMIDDLEB)*C)BIGMIDSMA16、阅读下列程序N=0DO10K=1,3N=N+1M=K*N10CONTINUEWRITE(*,'(1X,2I3)')M,KEND程序运行结果是()A)94B)93C)124D)123(#A)17、阅读下列程序FUN(c,d)=a*c+b/dD

23、ATAa,b/,WRITE(*,'')FUN(a,b)-FUN(b,a)END程序运行结果是()A)B)4.0C)D)18、阅读下列程序LOGICALL1,L2,L3,L4,L5DATAL1,L2,L3/3*.TRUE./L4=.3WRITE(*,*)L4,L5END程序运行结果是()A)TTB)TFC)FFD)FT19、阅读下列程序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程序运行结果是()D)789A)258B)369C)45620、阅读下列程序I

24、NTEGERA(100),GREAD(*,*)N,(A(I),I=1,N)DO10I=1,N-1G=IDO20J=I+1,NIF(A(J).(G)THENG=JENDIF20CONTINUEK=A(I)A(I)=A(G)A(G)=K10CONTINUEWRITE(*,'(1X,1OI2)')(A(I),I=1,N)END程序运行时输入的初始值是3,6,9,8,则运行结果是()A)698B)896C)689D)986二、填空题1、阅读下列程序,其功能是求出方程2X3-3X2+4X-11=0在区间(1,5)中的一个实数根,运行结果是显示根值和对分次数,使用的是二分算法。请在其中处填

25、入适当的内容。FUN(X)=*X*X*2+*DATAXL,XR,N/,O/10CONTINUE【1】X=(XL+XR)/【2】IF(ABS(FX).WRITE(*,'(1X,A2,A5,14)')'X=',X,'N=',NELSEIF(FUN(3】)*XR=XELSEXL=XENDIFGOTO10ENDIFEND2、阅读下列程序.其功能是计算丫=1+当X=时的值。主程序调用了函数子程序。请在其中处填入适当的内容。PROGRAMPVALUE4】DATAA/,N,X6,5】WRITE(*,'(1X,A5,6F')'a(k)=&

26、#39;,AWRITE(*,'(1X,A2,A6,')'X=',X,'Y=',YENDFUNCTIONPOLY(B,M,V)DIMENSIONB(M)POLY=B(1)FV=DO10K=2,MFV=FV*V10【6】=POLY+B(K)*FVEND3、函数子程序DTOH能够将一个十进制正整数DEC转换为一个表示十六进制数的字符字符串,其长度不超过8。例如127转换为'7F'。算法是:将DEC除16取余,将所得的商再除16取余,如此反复,直到商和零为止,最后按照逆序输出所得的各个余数。请在其中处填入适当的内容。CHARACTER*8

27、FUNCTIONDTOH(DEC)INTEGERDECRPOSPOS=9DTOH=”111CONTINUE【7】IFR=MOD(DEC,16)IF【8】=CHAR(ICHAR('O')+R)ELSEDTOH(POS:POS)=CHAR(ICHAR('A')+R-10)ELSEDTOH='*GOTO999ENDIFDEC=DEC/16IF(【9】)GOTO111999CONTINUEENDPROGRAMDECHEXCHARACTER*8DTOHWRETE(*,*)DTOH(127)END4、有一个十进制的四位数ABCD与一个十进制的三位数CDC的差等于十进

28、制的三位数ABC.下列程序按"ABCD=9876"的样式打印出ABCD这个数。请在其中外填入适当的内容INTEGERA,B,C,DDO10A=1,9DO10B=0,9DO10C=1,9【10】L=1000*A+100*B+10*C+DM=100*C+10*D+CN=100*B+CIF(【11】)WRITE(*,'(【12】)')'XABCD=',A,B,C,D10CONTINUEEND5、阅读下列程序,其功能是使用筛法选出N以内的所有素数并显示算法在N以内的自然数列中先筛除2的倍数;在2之后筛乘下的第一个数是3,于是再筛除3的倍数;在3之后筛

29、剩下的第一个数是5,于是再筛除5的倍数;如此重复下去,直到遇见筛剩下的第一个数是最接近N的平方根的那个数为止。请在其中填入适当的内容。PROGRAMPRINESPARAMETER(N=100)INTEGERA(N),P(N)DO10K=1,N10A(K)=KDO20K=3,N20IF(【13】.A(K)=0ISR=SQRT(REAL(N)DO30M=3,ISR,2DO30K=M+2,N30IF(A(K).ODO40K=IF(A(K).THEN【14】M=M+1ENDIF40CONTINUEWRITE(*,'(1X,1018)')(P(K),【15】)END二、编写程序题1、以循环来计算等差数列1+3+5+

温馨提示

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

评论

0/150

提交评论