欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    FORTRAN程序设计复习题及答案(16页).doc

    • 资源ID:38910128       资源大小:261.50KB        全文页数:16页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    FORTRAN程序设计复习题及答案(16页).doc

    -FORTRAN程序设计复习题及答案-第 16 页FORTRAN程序设计复习题一、 选择题B (1)下列各FORTRAN表达式中合法的是A) S+T*2P >= 0.0 B) .NOT. (A*B+C) C) A2+B2/(C+D) <= 0.0 D) (A+B).NOTA*BGT0.0(.NOT.只跟一个表达式)C (2)数学式(3/5)ex+y的FORTRAN表达式是A) 3*EXP(X+Y)/5 B) 3*E* *(X+Y)/5.0 C) (3/5)*EXP(X+Y) D) (3.0/5.0)EXP(X+Y)D (3)下列FORTRAN77表达式中不合法的是A) AGTBEQVCGTD B) AANDBANDCANDD C) .NOT(XLE0.0) D) ALTBLTCLTD D (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) 33 B) 1 C) 5 D) 3 A (7)下列FORTRAN77 表达式中,合法的是: A) 0.0.LE.X .AND.NOT.X.GE.10.0 B) 0.0.GE.X.LT.10.0 C) 0.0.LE.X.GE.10. D) 10.0.LE.X.OR.AND.X.GT.0.0 提示:A)相当于0.0.LE.X .AND.(.NOT.(X.GE.10.0 )D (8)关于编译一个FORTRAN源程序文件,下列说法中错误的是 A) 允许编译只有一个主程序而没有子程序的源文件 B) 允许编译有多个子程序的源文件 C) 允许编译只有一个子程序而没有主程序的源文件 D) 允许编译有多个主程序的源文件 C (9)在FORTRAN77源程序中,续行标志符必须放在 A) 第1列 B) 第1-6列 C) 第6列 D) 第5列 D (10)下列关于"SUBROUTINE MAP(X,Y)"语句行的叙述中,不正确的是 A) 这是子程序的第一个语句 B) 字符串"MAP"是子程序名 C) 变量X是子程序的形参 D) 子程序执行后,MAP将返回整型数据提示:子程序无返回值, 自定义函数才有) A (11)FORTRAN表达式"2/4+0.5"的值是 A) 0.5 B) 1 C) 1.0 D) 0 提示:2/4默认等于整型,0.5=0.0D (12)FORTRAN表达式"MOD(4.9,1.3)"的值是A)1.3 B)0.0 C)4.9 D)1.0 A (13下列FORTRAN运算符中,优先级最低的是A)逻辑运算符.AND. B)算术运算符*C)关系运算符 >= D)算术运算符 A (14下列语句函数的定义中正确的是A)F(X,Y)(XY)/(X*Y)7.0 B)FUNCTION FUN(I,J,K)3*I2*J0.5*KC)H(A,B,C(I)SIN(A)SIN(B)C(I) D)S(A,B,C)A*BS(A*A,B,C) B(15下列标识符中,不属于FORTRAN常量的是A).TRUE. B)FALSE C)ROOT D)123.0 B(16)"整型变量M能被整型变量K整除"的FORTRAN77表达式是A)MOD(M,K)0 (MOD(M,K)= =0) B)MM/K*K .EQ. 0C)MOD(K,M)0 D)MOD(M,K)0 = .TRUE. C(17)设有下列数组说明语句:REAL: A(1:10,1:10)该数组说明语句定义了数组A中的元素个数为A)100 B)110 C)120 D)121A (18)按隐含规则(默认为整型),语句IP=3.1415926执行之后,IP的值是A) 3 B) 3.1416C) 3.141592 D)3.141593D (19)下列数据中,不符合 FORTRAN常量表示法的是A) -25.6 B) 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=(AB,A-B)B (21)有矩阵(数组)下列DATA语句中正确的是A) DATA B/4*1.0,4*2.0/ B) DATA(B(I,J), J=1,4), I=1,2)/4*1.0, 4*2.0/C) DATA B/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)赋值语句 X=4*(6/12)=4*0=1.0 执行后,实型变量X的值是A) 2 B) 2.0 C) 1 D) 1.0D (24)为了保证正确出数据,格式编辑符Ew.d中w与d的关系应该是A) w>d B) w>d+2 C) w>d+4 D) 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) DO 10 S=-1.6,-5.3,-0.4 B) DO 10 K=-1.6,-5.3,-0.4C) DO 10 S=-5.3,-1.6,-0.4 D) DO 10 K=1.6,5.3,-1.4D (27)下列说法中正确的是A) 块IF结构中的THEN块或ELSE块不能是空块B) 块IF结构中至少有一个ELSE IF 语句或ELSE语句C) 每个ELSE IF 语句要有一个对应的END IF语句D) 一个块 IF 结构中只能有一个END IF语句A (28)下列数组说明语句中正确的是A) INTEGER A(-1:5,0:6) B) REAL M(10:5)C) DOUBLE Y(1:N+1) D) DOUBLE Z(14)B (29)设有一个FORTRAN77子程序如下: SUBROUTINE SS(X,Y,S,T) S=X+Y(S,T为传出,即需要输出的(相当于求圆的面积中的area),只能 T=X*Y 为确定的数;X,Y为传入(相当于radius),可为表达式) END调用上述子程序的正确语句是A) CALL SS(2.4,W*W,5,5.9,Z)(多了一个) B) CALL SS(0.0,4.2,P,Q,R) (多了一个)C) CALL SS(F,G,7.2,5.1) D) CALL SS(4.4*I,5.8*J,C,D)(I,J可先赋值)A (30)在下列语句函数的定义中正确的是A) F(X,Y)=(X+Y)/(X*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)COMMON语句的功能是A) 给同一程序模块中的若干变量分配同一存储单元B) 给不同程序模块中的变量分配相同的存储单元C) 给程序中任意两个变量分配相同的存储单元D) 给同一程序模块中的不同变量分配相同的存储单元B (32)下列表达式中值为整数4的是A) SQRT(16.0)B)27/6 C) 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.dB) Iw.dC) AD) Gw.dD (37)给定子例行程序如下SUBROUTINE SUB(K,A)B=K+2(K为整型,B)错误;A不是整型,A)错误;K为传入,可为表达式,A=A+B A为传出,不能为表达式)END下列调用语句中正确的是A) CALL SUB(N,N) B) CALL SUB(X,X)C) CALL SUB(N+2,X)D) CALL SUB(N,X+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) DATA A,B,C/2*0.0/ C (39)对于下列给定的FORTRAN说明和赋初值语句: INTEGER A(2,2) DATA A/3,4,5,6/ 数组元数A(2,1)的初值为 A) 3 B) 5 C) 4 D) 6 C (40)下列对公用区的说明语句中错误的是 A) COMMON A(5), B B) COMMON/AB/ A(5), B C) COMMON AB/A(5), B/ D) COMMON/A(5), BD (41)下列各逻辑IF语句中正确的是A) IF(X<0.0) THEN 10B) IF(X>=0.0).AND.(X.LT.1.0)Y=2*X+1.0C) IF(0.0>=X<=1.0) Y=2*X+1.0D) IF(X >= 0.0.AND.X <=1.0) Y=2*X+1.0二、阅读题1、阅读下列FORTRAN程序: program example real a,b,c a=1.0 b=2.0 c=3.0 write(*,"(3(F5.2)") a,b,cend程序运行的结果是: 1.00 2.00 3.00 2、阅读下列FORTRAN程序:program example integer : a=1 integer : b=2 real : c c=a/b write(*,"(F5.2)") c end程序运行结果是: 0.00 3、阅读下列FORTRAN程序: program exampleimplicit none integer rain, windspeed write(*,*) "Rain:" read(*,*) rain write(*,*) "Wind:" read(*,*) windspeed If ( rain>=500 .or. windspeed >=10 ) then write(*,*) "停止上班上课" else write(*,*) "照常上班上课" end ifstopend运行上述程序时,如果从键盘输入 Rain:505<回车>Wind: 8<回车>则最后输出的结果为: 停止上班上课 4、阅读下列FORTRAN程序:program exampleimplicit none real a,b,ans character operator read(*,*) a read(*,"(A1)") operator read(*,*) b select case(operator) case('+') ans = a+b case('-') ans = a-b case('*') ans = a*b case('/') ans = a/b case default write(*,"('Unknown operator ',A1)") operatorstop end select write(*,"(F6.2,A1,F6.2,'=',F6.2)") a,operator,b,ans stopend运行上述程序时,如果从键盘输入 100<回车>?<回车>200<回车>则最后输出的结果为: Unknown operator ? 5、阅读下列FORTRAN程序:program exampleimplicit none integer i integer strlen integer, parameter : key = 2 character(len=20) : string write(*,*) "Encoded string:" read(*,*) string strlen = len_trim(string) do i = 1, strlen string(i:i) = char( ichar(string(i:i) + key ) end do write(*,"('String:',A20)") string stopendBCDIJK<回车>则最后输出的结果为: DEFKLM 6、阅读下列FORTRAN程序: program exampleimplicit none integer i,j do i=1, 2 do j=2, 3, 2 write(*, "(I2,I2)") i,jend dowrite(*,*) "another circle" end do stopend程序运行的结果是: 1 2 another circle 2 2 another circle (按输出格式,1、2前均有一空格。若题目无特殊说明,不需表达出;若有说明,则空格用“”表示)7、阅读下列FORTRAN程序:program exampleimplicit none integer : dest = 6 integer floor do floor=1, dest if ( floor=2 .or. floor=4 ) cyclewrite(*,*) floor end do stopend程序运行的结果是: 1 3 5 6 8、阅读下列FORTRAN77程序:program exampleimplicit none integer, parameter : limit=10 integer counter integer : ans = 0 counter = 1 do while( counter <= limit ) ans = ans + counter counter = counter + 2 end do write(*,*) ans stopend程序运行的结果是: 25 9、阅读下列FORTRAN程序:program exampleimplicit none integer, parameter : students = 5 integer : student(students) = (/ 80, 90, 85, 75, 95 /) integer i do while( .true. ) write(*,*) "Query:" read(*,*) i if ( i<=0 .or. i>students ) exit write(*,*) student(i) end do stopend运行上述程序时,如果从键盘输入 3<回车>则最后输出的结果为: 85 10、阅读下列FORTRAN程序:program exampleimplicit none integer, parameter : L=2, M=3, N=2 real : 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,k do i=1,L do j=1,N C(i,j) = 0.0 do k=1,M C(i,j) = C(i,j)+A(i,k)*B(k,j) end doend do end do do i=1,L write(*,*) C(i,:) end do stopend程序运行的结果是: 22 49 28 64 11、阅读下列FORTRAN程序:program exampleimplicit none integer : i,j loop1: do i=1,3 loop2: do j=1,3 if ( i=3 ) exit loop1 if ( j=2 ) cycle loop2 write(*, "('(',i2,',',i2,')')" ) i, j end do loop2 end do loop1 stopend程序运行的结果是: (1,1) (1,3) (2,1) (2,3) 12、阅读下列FORTRAN程序:program exampleimplicit none real : a=1.0 call ShowInteger(a) call ShowReal(a) stopendsubroutine ShowInteger(num)implicit none integer : num write(*,*) num returnendsubroutine ShowReal(num)implicit none real : num write(*,*) num returnend程序运行的结果是: 随机数 1.000000 13、阅读下列FORTRAN程序:program exampleimplicit none integer, parameter : row = 2 integer, parameter : col = 2 integer : m(row, col) integer r integer c data (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程序运行的结果是: 1 3 2 4 14、阅读下列FORTRAN程序:program ex0805implicit none integer : a = 1 integer : b = 2 write(*,*) a,b call add(a) call add(b) write(*,*) a,b stopendsubroutine add(num)implicit none integer : num num = num+1 return end程序运行的结果是: 1 2 2 3 15、阅读下列FORTRAN程序:program exampleimplicit none integer, parameter : size=10 integer : a(size) = (/ 5,3,6,4,8,7,1,9,2,10 /) integer : i,j integer : t do i=1, size-1 do j=i+1, size if ( a(i) > a(j) ) then t=a(i) a(i)=a(j)a(j)=t end ifend do end do write(*,"(10I4)") a stopend程序运行的结果是: 1 2 3 4 5 6 7 8 9 10 16、阅读下列FORTRAN程序:program exampleimplicit none real : a=1 real : b=2 real, external : add write(*,*) add(a,b) stopendfunction add(a,b)implicit none real : a,b real : add add = a+b returnend程序运行的结果是: 3.000000 (类似的题目,写3.0亦可,但不可写3)17、阅读下列FORTRAN程序:program exampleimplicit none integer : a,b common a,b a=1 b=2 call ShowCommon() write(*,*) a, b endsubroutine ShowCommon()implicit none integer : num1, num2 common num1, num2 write(*,*) num1, num2 returnend程序运行的结果是: 1 2 1 2 18、阅读下列FORTRAN程序:module global implicit none real a,b common a,bend moduleprogram example use global implicit none a=1.0 b=2.0 call sub()end programsubroutine sub() use global implicit none write(*,*) a,b returnend subroutine程序运行的结果是: 1.000000 2.000000 19、阅读下列FORTRAN程序: INTEGER A(3,3) DO K=1,3 DO L=1,3 A(K,L)=K*10+L END DO END DOWRITE(*,'(1X,3I3)') A END 程序运行的结果是: 11 21 31 12 22 32 13 23 33 20、阅读下列FORTRAN程序: INTEGER F F(X,Y)=X+Y A=-2.5 B=4.0 B=1.0+F(A,B) WRITE(*,20) B 20 FORMAT(1X,F4.1) END 程序运行的结果是: 2.0 21、阅读下列FORTRAN程序: X=0 DO L=10, 5, 15 X=X+1.0 END DOEND 程序运行时执行循环体的次数是: 0 22、阅读下列FORTRAN77程序: DIMENSION M(4,4) DATA M/1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6/ DO I=1,4 WRITE (*,100)(M(I,J),J=1,I) END DO100 FORMAT(1X,4I2) END 程序运行的结果是: 1 2 6 3 7 1 4 8 2 6 23、阅读下列FORTRAN程序: CHARACTER(LEN=10) A CHARACTER(LEN=6) B DO I=1,10 A(I:I)=' ' END DO A(1:5)='ABCDE' B='FGHIJK' A(4:9)=B WRITE(*,100) A 100 FORMAT(1X,A) END 程序运行结果是: ABCFGHIJK 24、 阅读下列FORTRAN程序: X=0.0 Y=2.0 CALL SUB(X,Y,Z,3.0) WRITE(*,'(1X,3F5.1)')X,Y,Z END SUBROUTINE SUB(A,B,X,Z) A=A+1 B=B+2.0 Y=1.0 X=X+Y END 程序运行结果是: 1.0 4.0 1.0 25、 阅读下列FORTRAN程序: INTEGER N(20) DO M=1,20 N(M)=0 END DOK=5 DO M=1,K DO J=1,K N(J)=N(M)+1 END DOEND DOWRITE(*,*)N(K) END 程序运行的结果是: 9 26、 阅读下列FORTRAN程序: COMMON /COM/M(5),N(4) CALL FIB WRITE(*,'(1X,4I3)') N END SUBROUTINE FIB COMMON /COM/J(5),K(4) DO I=1,4 K(I)=J(I+1)-J(I) END DO END BLOCK DATA COMMON /COM/K(5),L(4) DATA K/8,7,10,4,13/ END 程序运行的结果是: -1 3 -6 9 27、阅读下列FORTRAN程序: N=0 DO K=30,0,-2 DO L=-10,10,1 N=N+1 END DOEND DOWRITE(*,*) N END 程序运行结果是: 336 28、阅读下列FORTRAN程序: READ(*,*) N X=1.0 IF (N.GE.0) X=2*X IF (N.GE.5) X=2*X+1.0 IF (N.GT.15) X=3*X-1.0 WRITE(*,*) X END 运行上述程序时,如果从键盘输入 15<回车> 则最后输出的值为 : 5.000000 29、阅读下列FORTRAN程序: DIMENSION M(3,4) DATA M/4*2,4*1,4*-1/ N=0 DO K=1 ,4 N=N+M(1,K) END DOWRITE(*,*) N END 运行上述程序后,输出的N的值为 4 30、阅读下列FORTRAN77程序:READ(*,*) YIF (Y.LE.0.0) THENZ=0 .0ELSE IF (Y < 5.0).AND.(Y /= 2.0) THENZ=1/(Y+2)ELSE IF (Y <= 10.0) THENZ=1/YELSEZ=10.0END IF WRITE (*,*)ZEND在执行上述程序时,由键盘输入2.0最后输出的Z值为 0.5000000 (写0.5即可,不同的编译器,输出的“0” 的个数可能会不同) 三、编程题教科书中:第四章第九章的习题。

    注意事项

    本文(FORTRAN程序设计复习题及答案(16页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开