1、FORTRAN程序设计复习题及答案FORTRAN程序设计复习题及答案FORTRAN程序设计复习题一、选择题B (1)下列各FORTRAN表达式中合法的是A) S+T*2P = B) .NOT. (A*B+C) C) A2+B2/(C+D) = D)算术运算符 A (14下列语句函数的定义中正确的是A)F(X,Y)(XY)/(X*Y) B)FUNCTION FUN(I,J,K)3*I2*J*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
2、) 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=执行之后,IP的值是A) 3 B) 3.1416 C) D)D (19)下列数据中,不符合 FORTRAN常量表示法的是A) B) C)FOOT= D) TRUEC (20)设C
3、是复型变量,A与B为有定义的实型变量,下列赋值语句中合法的是A) C=A+B B) C=,*2)C) C=,3D-2) D) C=(AB,A-B)B (21)有矩阵(数组) 下列DATA语句中正确的是A) DATA B/4*,4* B) DATA(B(I,J), J=1,4), I=1,2)/4*, 4*C) DATA B/4*,/ D) DATA(B(I,J),I=1,2), J=1,4)/4*, 4*C (21)在使用DO循环及循环嵌套时,下列叙述中正确的是A) 不仅可以从循环体内转到循环体外,也可以从循环体外转到循环体内B) 外循环与内循环的DO循环控制变量可以不同也可以相同C) 可以从
4、循环体内转到循环体外,但不能从循环体外转到循环体内D) DO循环控制变量在循环体内可以再赋值,也可以被引用B (22)在FORTRAN表达式中,各种运算的顺序是A) 逻辑运算,关系运算,算术运算 B) 算术运算,关系运算,逻辑运算C) 关系运算,逻辑运算,算术运算 D) 关系运算,算术运算,逻辑运算D (23)赋值语句 X=4*(6/12)=4*0= 执行后,实型变量X的值是A) 2 B) 2.0 C) 1 D) D (24)为了保证正确出数据,格式编辑符中w与d的关系应该是A) wd B) wd+2 C) wd+4 D) wd+6C (25)设下列各语句中用到的数组都已定义,则下列语句中正确
5、的是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=, B) DO 10 K=,C) DO 10 S=, D) DO 10 K=,D (27)下列说法中正确的是A) 块IF结构中的THEN块或ELSE块不能是空块B) 块IF结构中至少有一个ELSE IF 语句或ELSE语句C) 每个ELSE IF 语句要有一个对应的E
6、ND 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,W*W,5,Z)(多了一个) B) CALL S
7、S,P,Q,R) (多了一个)C) CALL SS(F,G, D) CALL SS*I,*J,C,D)(I,J可先赋值)A (30)在下列语句函数的定义中正确的是A) F(X,Y)=(X+Y)/(X*Y)+ B) FUNCTION(I,J,K)=3*I+2*J+*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) 给同一程序模块中的不同变量分配相同的
8、存储单元B (32)下列表达式中值为整数4的是A) SQRT B)27/6 C) 16* D) 4*C (34)语句K=2+*2/2执行后,整型变量 K的值是A) B) 5 C) 6 D) 7C (36)适用于字符型 I/O的 FORTRAN77格式编辑将是A) B) C) A D) D (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)
9、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* 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) COM
10、MON/AB/ A(5), B C) COMMON AB/A(5), B/ D) COMMONND. IF=X= =500 .or. windspeed =10 ) then write(*,*) 停止上班上课 else write(*,*) 照常上班上课 end ifstopend运行上述程序时,如果从键盘输入 Rain:505Wind: 8则最后输出的结果为: 停止上班上课 4、阅读下列FORTRAN程序:program exampleimplicit none real a,b,ans character operator read(*,*) a read(*,(A1) operator
11、 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) operator stop end select write(*,A1,=,) a,operator,b,ans stopend运行上述程序时,如果从键盘输入 100200则最后输出的结果为: Unknown operator 5、阅读下列FORTRAN程序:program exampleimpl
12、icit 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、阅读下列FOR
13、TRAN程序: program exampleimplicit none integer i,j do i=1, 2 do j=2, 3, 2 write(*, (I2,I2) i,j end do write(*,*) another circle end do stopend程序运行的结果是: 1 2 another circle 2 2 another circle (按输出格式,1、2前均有一空格。若题目无特殊说明,不需表达出;若有说明,则空格用“”表示)7、阅读下列FORTRAN程序:program exampleimplicit none integer : dest = 6 in
14、teger floor do floor=1, dest if ( floor=2 .or. floor=4 ) cycle write(*,*) 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
15、 + 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 ( istudents ) exit write(*,*) student(i) end do stopend运行
16、上述程序时,如果从键盘输入 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) = do k=1,M C(i,j) = C(i,j)+A(i,k)*B(k,j) end do end do end do do i=1,
17、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
18、程序:program exampleimplicit none real : a= 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程序运行的结果是: 随机数 13、阅读下列FORTRAN程序:program exampleimplicit none in
19、teger, 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(*,*)
20、 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
21、 do j=i+1, size if ( a(i) a(j) ) then t=a(i) a(i)=a(j) a(j)=t end if end 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
22、 : add add = a+b returnend程序运行的结果是: (类似的题目,写亦可,但不可写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、阅读下
23、列FORTRAN程序:module global implicit none real a,b common a,bend moduleprogram example use global implicit none a= b= call sub()end programsubroutine sub() use global implicit none write(*,*) a,b returnend subroutine程序运行的结果是: 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= B= B=+F(A,B) WRITE(*,20) B 20 FORMAT(1X, END 程序运行的结果是: 21、阅读下列FORTRAN程序: X=0 D
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1