装订线
2009 年 6 月 24 日
输入7,8,9,10↙
兰州交通大学试卷(主卷)
密封线 课程名称: FORTRAN90程序设计(A) 教学班中学生序号
一、选择题(每题1分,共30分)
方式将FORTRAN源程序变成目标程序。
1.采用 [A] 编辑 [B] 编译 [C] 汇编 [D] 解释 2.一个完整的FORTRAN源程序的组成不应该是 。 [A] 只有一个主程序没有子程序 : 号 [B] 只有子程序而没有主程序 学 [C] 有一个主程序和一个子程序 [D] 有一个主程序和若干子程序
点 3.下面符合FORTRAN90定义规则的变量名是 。
端 两 [A] X_C2 [B] X+Y [C] U.S.A [D] M 线 4.下列说法中,正确的是 。
黑 过 [A] 在FORTRAN程序中,各类语句的位置是任意的。
超 得 [B] 任何一个FORTARN语句在程序执行时都会产生某种机器操作。
不 [C] 有些FORTRAN语句在程序执行时不产生任何机器操作。
下 上 [D] 在FORTRAN中“=”表示相等的意思,如A=B表示变量A与B的值相等。 : 5.下列四个实数中,哪一个是合法实数 。
求 要 [A] E5 [B] $125.5 [C] 12.3E3.5 [D] +189. 写 : 6.下面赋值语句中正确的语句是 。
书 名题 [A] M*N=(X-Y)/Z [B] +R=A+B/C [C] X=Y=Z-1.0 [D] Y=A*B/C/D 姓考 7.设变量A,B,I,J的类型符合I-N规则,且A=2.0,B=2.5,I=1,J=2,则表达式:
I/J*A+B*I/J
的值为 。
[A] 0 [B] 0.25 [C] 1.25 [D] 2.25 8.下列语句中有错误的语句是 。
[A] F=(A+B)/(C+D) [B] T=SQRT(8.0) [C] P=MOD(M,5.1) [D] K=MAX(A,B,C) 9.运行下列程序后,输出的结果是 。 INTEGER M, N READ *, M, N,N,M : M=M+N 级 N=M+N
班
PRINT *, M, N END
共 8 页 第 1 页 [A] 15 23 [B] 15 19
[C] 19 19 [D] 19 28 10. 以下不合法的FORTRAN90表达式是 。
[A] A=B.EQV.C>D [D] A.AND.B.AND.C
11.以下能表示条件“X、Y同时满足大于0且小于等于10”的逻辑表达式是 。
[A] (0 [B] (X.GT.0.AND.X.LE.10).AND.(Y.GT.0.AND.Y.LE.10) [C] (X.GT.0.AND.X.LE.10).OR.(Y.GT.0.AND.Y.LE.10) [D] 0<(X.AND.Y)<=10 12.如果A=2.5,B=7.5,C=5.0,D=6.0,L=.TRUE.,M=.FLASE.,下列值为TRUE的逻辑表达式 为 。 [A] .NOT.L.OR.C.EQ.D.AND.M [B] (A+B).LT.(C+D).AND.A.EQ.3.5 [C] (A.LT.B).AND.(B.LT.A) [D] A+B/2.0.NE.C-D.OR.C.NE.D 13.下列各逻辑IF语句中正确的是 。 [A] IF(X>0.0).AND.(X<1.0) Y=1.0 [B] IF(X<0.0) THEN Y=-1.0 [C] IF(X>0.0.AND.X<1.0) Y=1.0 [D] IF(0.0 READ(*,*) N X=1.0 IF(N>20) X=3*X-1.0 IF(N>5) X=2*X+1.0 IF(N>0) X=2*X PRINT *, X END 如果从键盘输入20↙,最后输出的X值为 。 [A] 1.0 [B] 2.0 [C] 6.0 [D] 10.0 15.对于DO语句:“ DO I=1.2,5.6,2.4”,可计算出循环次数为 。 [A] 2次 [B] 3次 [C] 4次 [D] 5次 16.下列程序执行后,输出的结果为 。 N=0 DO K=1, 3 共 8 页 第 2 页 装订线 密封线 兰州交通大学试卷(附卷) N=N+K 勤学习 祝成功 守纪律 莫舞弊 [C] C=’BEIJI□□NEW’ [D] C=’IJINGNEW□□’ ENDDO PRINT*,N, K END [A] 3, 3 [B] 3, 4 [C] 6, 3 [D] 6, 4 17.下列程序中,哪一行语句有错误 。 1 PROGRAM P01 2 INTEGER:: I,S=0 3 DO I=1,5,2 : 4 I=I+1 号 5 S=S+I 学 6 ENDDO 7 END PROGRAM P01 点 [A] 2 [B] 3 [C] 4 [D] 7 端 两 18.阅读下列FORTRAN90程序段 线 黑 INTEGER::I,J,K=0 过 DO I = 1,5,2 超 得DO J = 2,6,3 不 K=K+1 下 ENDDO 上 : ENDDO 求 上述程序段执行完后K的值是 。 :要 写 [A] 6 [B] 4 [C] 2 [D] 9 名 书 姓题 19.设有字符串变量CH=’This’’s Fortran program.‘,则LEN(CH)= 。 考 [A] 21 [B] 22 [C]23 [D] 24 20.阅读以下程序段: CHARACTER A A=CHAR(ICHAR(’0’)+3) PRINT*, A 输出的A为: 。 [A] 0 [B] 1 [C] 2 [D] 3 21.执行下列程序段后,变量C的值为 。(□表示空格) CHARACTER*5 A,B,C*10 A=’BEIJING’ : B=’NEW’ 级 C=A//B 班 [A] C=’BEIJINEW□□’ [B] C=’IJING□□NEW’ 共 8 页 第 3 页 22.下面的格式输入语句: READ(*,20)X,Y 20 FORMAT(2F4.1) 如果在执行时,由键盘输入:1122334455667788 后,则Y的值是______。 ?A? 112.2 ?B? 11.2 ?C? 33.4 ?D?334.4 23.设有数组说明语句“DIMENSION A(0:10,-1:2)”,则A数组中元素个数为 个。 [A]30 [B] 33 [C] 40 [D] 44 24.有语句为: DIMENSION A(3,2) READ *,((A(I,J),J=1,2),I=1,3) 如果从键盘输入的数据是10,20,30,40,50,60,则A数组的逻辑结构是__ ____。 ?A? 10 20 30 ?B? 10 30 50 40 50 60 20 40 60 ?C? 10 20 ?D? 10 40 30 40 20 50 50 60 30 60 25.下列程序执行后,输出的结果为 。 DIMEN5ION M(3,4) DATA M/3*5,3*0,3*-1,3*-2/ N=0 DO K=1,4 N=N+M(2,K) END DO WRITE(*,*) N END [A] 2 [B] 3 [C] 4 [D] 5 26.下列语句函数定义正确的是 。 ?A? F(X,X)=X**2-SQRT(Y+2) ?B? F(X,Y)=X+Y+2 +SIN(X) ?C? F(X,Y)=X**2+2+SINY ?D? F(X,Y)=X+Y+F(X,Y)-4/3 27.对于FORTRAN函数子程序,下列说法中正确的是 。 [A] 函数子程序名没有数据类型 [B] 不仅能通过函数名返回一个函数值,还可以通过虚实结合双向传递数据 [C] 只能通过虚实结合传递一个数据 [D] 只能返回一个函数值及一个变量值 共 8 页 第 4 页 装订线 兰州交通大学试卷(附卷) 28.有如下子例行程序 密封线 勤学习 祝成功 守纪律 莫舞弊 ENDDO 程序运行结果为: SUBROUTINE SUB(K,A,B) A=K+2 B=A**2 END 下列调用语句中正确的是 。 ?A? CALL SUB(N,N,C) ?B? CALL SUB(N+2,X,Y) ?C? CALL SUB(N,N+2,X) ?D? CALL SUB(N,X+3,C) .. 29.下列主程序中的COMMON语句不合法的是 。 : 主程序中 子程序中 号 [A] COMMON M,N COMMON A,L 学 [B] COMMON M,N COMMON K,L 点 [C] COMMON A(5),M COMMON B(5),L 端 [D] COMMON A,B,C COMMON X,Y 两 COMMON Z 线 黑 30.下列的叙述中,不正确的是 。 过 超 [A] 输入(读)文件:是将数据从文件传送内存; 得 [B] 输出(写)文件:是将数据从内存传送到文件去; 不 下 [C] 所谓打开文件就是实现文件与设备的连接; 上 :[D] 关闭语句的括号内,应该写上将要关闭的文件名说明符; 求 要 : 写 二、阅读程序,写出它们的运行结果。(每题3分,共15分) 名 书 1. DO N=1,6 姓题 考 IF(MOD(N,2)/=0)THEN 程序运行结果为: PRINT *,N ENDIF ENDDO END 2. INTEGER A(10) DATA A/1,2,1,2,3,2,3,4,3,10/ DO I=1,9 IF(A(I)/=0)THEN DO J=I+1,10 : IF(A(I)==A(J))A(J)=0 级 ENDDO 班 ENDIF 共 8 页 第 5 页 PRINT *,A END 3. PARAMETER (N=3) INTEGER A(N,N),S DATA A/1,2,3,4,5,6,7,8,9/ S=0 DO I=1,N S=S+A(I,I) 程序运行结果为: ENDDO PRINT *, S END 4. INTEGER A(6) COMMON A DO K=1,6 A(K)=K ENDDO CALL P2 END SUBROUTINE P2 程序的执行结果为: INTEGER B(2,3) COMMON B PRINT 10, B PRINT 20, ((B(I,J),J=1,3),I=1,2) 10 FORMAT(1X,2I3) 20 FORMAT(2X,3I2) END 5. PRINT *,F(5) END RECURSIVE FUNCTION F(N) RESULT(F1) IF(N==1.OR.N==0) 程序的执行结果为: F1=1 ELSE F1=N*F(N-1) 共 8 页 第 6 页 装订线 兰州交通大学试卷(附卷) 密封线 勤学习 祝成功 守纪律 莫舞弊 PRINT *,A ENDIF END 三、填空题(每空2分,共20分) 1.输入一个整数,输出其位数。 INTEGER :: N,K=0 REAN *N DO WHILE(N>0) K= (1) : 号 N=N/10 学 (2) PRINT *,K 点 端 END 两 2.求一个矩阵所有元素之和及平均值,保留所有大于平均值的元素,其余元素清零。 线 INTEGER A(4,5) 黑 过 DATA A/2,5,12,7,6,-1,0,6,4,3,4,-9,9,8,10,5,-13,7,2,3/ 超 得SUM= (3) 不 DO I=1, 4 下 上 DO J=1,5 : 求 SUM=SUM+ (4) :要 写 ENDDO 名 书 ENDDO 姓题 考 AVERAGE= (5) DO I=1, 4 DO J=1,5 IF (6)A(I,J)=0 ENDDO ENDDO PRINT*, ((A(I,J),i=1,4),J=1,5) END 3.在主程序中输入N个数据,调用排序子程序将N个数按升序排序后输出, : (7) 级 INTEGER A(N) 班 READ *, A (8) 共 8 页 第 7 页 END SUBROUTINE SORT(A, N) (9) DO I=1,N-1 DO J=I+1,N IF(A(I)>A(J)) THEN T=A(I) A(I)=A(J) (10) ENDIF ENDDO ENDDO END 四、编程题(35分) 1.编写程序其功能是输入x的值,输出y的值。 ??sin(x)?lnx 当 -15?x?0?5xy???ln(x2?1) 当 0?x?10(7分) ??3x 当 15?x?20??x2 其他 2. 计算1+(1+2)+(1+2+3)+?+(1+2+3+?+N)的值,N由键盘输入。(8分) ?1473.求???258? ?中用线相连的对角线元素之和。(10分) ??379?? 4.某单位职工工资表包含数据项有:姓名、性别、家庭住址、工资,计算输出3个职工工资的平均值。已知三个职工工资分别为:700,800,900。利用派生数据类型编写程序计算。(10分) 共 8 页 第 8 页 装订线 兰州交通大学试卷(答题卷) 密封线 勤学习 祝成功 守纪律 莫舞弊 2009年6月24日 课程名称: FORTRAN90程序设计基础 教学班中学生序号:□□□ 题号 一 二 三 四 总分 得分 阅卷人 : 号 复查人签名:____________ 核分人签名:_______________ 学 一、选择题(每题1分,共30分 点 端 1 2 3 4 5 6 7 8 9 10 两 线 黑 11 12 13 14 15 16 17 18 19 20 过 超 得 不 21 22 23 24 25 26 27 28 29 30 下 上 : 求 :要 二、阅读程序,写出它们的运行结果。(每题3分,共15分) 名写 书 姓题 1. 4. 考 2. : 3. 5. 级 班 三、填空题(每空2分,共20分) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) 四、编程题(35分)