《高级语言程序设计(FORTRAN)》考试样题一、选择题(每小题2分,共40分)1. 下列标识符中不能作为FORTRAN的合法变量名的是_____D_____。
A) A_1 B) A1 C) A1A D) A+12. 在FORTRAN的变量类型说明语句中没有 BA) REAL语句B)CHAR语句C)INTEGER语句 D)LOGICAL语句3.FORTRAN90 源程序的扩展名是 C 。
A. TXTB. FC. F90D. FOR4.下列关于符号常量的说法正确的是___C____。
A.符号常量的定义应该放在所有语句之前B.符号常量不可以是字符型常量C.在一个程序单位中定义一个符号常量后,不能再改变它的值D.符号常量定义语句与赋值语句一样,是可执行语句5、在下列写法中,__D______不是FORTRAN常量。
A. .TRUE.B.1E-2C. (0.0,2.4)D.1,000,0006.表达式15/4/2.0的值是 B 。
A.整数2 B.实数1.5 C.实数2.25 D.实数1. 37. 下列不是FORTRAN赋值语句的是 _____D______。
A) X=.TRUE. B) X=X*X C) X=X**2**2 D) X=X++8. 梯形的上底为A,下底为B,高为H,计算其面积的FORTRAN表达式中错误的是____A____。
A)1/2*(AB)*H B)(A+B)*H/2 C)(A+B)/2*H D)0.5*(A+B)*H9. 要选拔身高T>1.7米且体重W<62.5公斤的人,FORTRAN的逻辑表达式是__C_____。
A)T.ce.1.7.AND.w.le.62.5 B)T.le.1.7.OR.w.ge.62.5C)T.gt.1.7. AND.w.lt.62.5D)T.gt.1.7.OR.w.lt.62.510.FORTRAN 90规定,变量类型声明的优先顺序是 C 。
A.隐含约定(I-N规则)、IMPLICIT声明、类型声明B.类型声明、隐含约定(I-N规则)、IMPLICIT声明C.类型声明、IMPLICIT声明、隐含约定(I-N规则)D.IMPLICIT声明、类型声明、隐含约定(I-N规则)11、假设CH是一个字符型变量,并且具有足够的长度,则对于CH(3:7),下面说法正确的是___D________。
A.它是一个数组片段B.它是一个数组定义形式C.它是CH的一个子串,并且长度是4D.它是CH的一个子串,并且长度是512.数组声明语句为:INTEGER,DIMENSION(-5:-1,-3:3,11:15) ::A数组共有 A 个元素。
A.175 B.150 C.120 D.1713. 下列DATA语句中正确的是______C____。
A) DATA /A,B/-1.0, -1.0/ B) DATA A, B/2*(-1.0)/C) DATA A, B/2*-1.0/ D) DATA A/-1.0, B/-1.014. 下列有关FORTRAN数组的说法正确的是______D_____。
A) 数组定义语句只能定义一维或二维数组B) 数组元素下标不能出现负值C) 在赋值语句中出现的A(3)肯定是数组元素D) 程序中使用的数组必须进行说明15. 一个完整的FORTRAN 源程序的组成不应该_____D______。
A)只有一个主程序没有子程序B)有一个主程序和若干子程序C)有一个主程序和一个子程序D)只有子程序而没有主程序16.阅读下列FORTRAN程序:DO K=2,4,2S=S+1/KEND DOWRITE(*,*)SEND执行上述程序后,输出的S值为 CA) 0.75 B) 1.75 C) 0.0 D) 1.017. 阅读下列程序INTEGER M(3,3)DATA M/1,2,3,4,5,6,7,8,9/WRITE(*,10)(M(3,J),J=1,3)10 FORMAT(1X,3I2)END程序运行结果是______B_____。
A)2 5 8 B)3 6 9 C)4 5 6 D)7 8 918. 阅读下列程序K(X,Y)=X/Y+XA=-2.0B=4.0B=1.0+K(A,B)WRITE(*,10)B10 FORMAT(1X,F4.1)END程序运行结果是AA)-1.0 B)1.0 B)2.0 D)3.019. 阅读下列FORTRAN程序:DO I=4,2,-1A=1.0DO J=I,4,2A=A+1.0ENDDOENDDOWRITE(*,*)AEND运行上述程序后,输出的A值为 ______C_____。
A) 5.0 B) 4.0 C) 3.0 D) 2.020、可调数组__B_______中出现。
A.只能在主程序B.只能在子程序C.只能在主程序和子程序D.可以在主程序、子程序和模块二、填空题(每空2分,共36分)1、结构化程序设计的三种基本结构为:顺序结构、选择结构和循环结构。
2、已知A 、B 、C 都是整型变量,且A=3,B=4,C=5,计算表达式C/2>2.AND.A+B ==C 的值为: .FALSE. 。
3、将数学表达式e π2x +ln|Sin 2x-Sinx 2|写成正确的FORTRAN 表达式为:EXP(3.14/2*X)+LOG(ABS(SIN(X)**2-SIN(X**2))) 。
4、N 是一个个位不等于0的两位自然数,写一个表达式将N 的个位数与十位数互换,得到一个新的数。
MOD(N,10)*10+N/10 。
5、已知I 是整型变量,当DO 结构从“正常出口”结束时,语句“DO I= 3,15,2”共计完成了______7_______次循环。
6、下列程序的运行显示结果是什么 .TURE. 。
LOGICAL PINTEGER I,I1,I2,I3P=.FALSE.I=123I1=MOD(I,10)I2=MOD(I/10,10)I3=I/100IF(I1+I3.EQ.2*I2)P=.TRUE.PRINT*,PEND7.下列程序的运行显示结果是什么 K=6 。
K=0DO N=21,10,-1IF (MOD(N,2)==0)K=K+1END DOPRINT*, "K=",KEND8.下列程序的运行显示结果是什么 14 5 。
M=0DO J=1,4DO K=J-1,4M=M+1END DOEND DOWRITE(*,*)M,JEND9.下列程序的运行显示结果是什么 5167.0 。
SUM=1.0J=1DO WHILE(J.LE.3)F=1DO I=2,2*J+1F=F*IENDDOSUM=SUM+FJ=J+1END DOPRINT*,SUMEND10. 下列程序的运行显示结果是什么S=15.00 。
DIMENSION X(3,3)DATA X/1,2,3,4,5,6,7,8,9/S=0DO I=1,3S=S+X(I,4-I)ENDDOWRITE(*,20) S20 FORMAT(1X,’S=’,F6.2)END11. 下列程序将一个数组的元素逆序重新存放,例如存放顺序为: 8,6,5,4,1 。
要求改为: 1,4,5,6,8。
请在横线处填写适当语句,使程序完整。
INTEGER,PARAMETER::N=5INTEGER A(N),I,TDA TA A/8,6,5,4,1/WRITE(*,10)(A(I),I=1,5)DO I=1,N/2T=A(I)A(I)=A(N-I+1)A(N-I+1)=TEND DOWRITE(*,10)(A(I),I=1,5)10 FORMA T(1X,5I4)END12. 下列程序完成按以下格式打印杨辉三角形的前N行:11 11 2 11 3 3 11 4 6 4 1请在横线处填写适当语句,使程序完整。
PARAMETER(N=10)INTEGER A(N,N),I,JDO I=1,NA(I,1)=1A(I,I)=1ENDDODO I=3,NDO J=2,I-1A(I,J)=A(I-1,J)+A(I-1,J-1)ENDDOENDDODO I=1,NWRITE(*,10)(A(I,J),J=1,I)ENDDO10 FORMA T(1X,10I5)END13. 下列子例行程序ProcMin(A,N,MIN)的作用是返回数组A中的最小值。
请在横线处填写适当语句,使程序完整。
SUBROUTINE PROCMIN(A,N,MIN)INTEGER A(N),N,MINMIN=A(1)DO I=2,NIF(A(I)>MIN)MIN=A(I)ENDDOEND14..采用变化的冒泡排序法将N个数按从大到小的顺序排列:对N个数,从第一个直到第N个,逐次比较相邻的两个数,大者放前面,小者放后面,这样得到的第N个数是最小的,然后4个对前面N-1个数,从第N-1个到第1个,逐次比较相邻的两个数,大者放前面,小者放后面,这样得到的第1个数是最大的。
对余下的N-2个数重复上述过程,直至按从大到小的顺序排列完毕。
请在下列程序横线处填写适当语句,使程序完整。
PARAMETER(N=10)INTEGER X(N),I,J,TX=(/10,55,25,70,45,15,25,85,45,35/)WRITE(*,10)(X(I),I=1,10)DO I=1,N-1DO J= 2,N-I+1IF( A(J-1)<A(J) ) THENT=X(J-1)X(J-1)=X(J)X(J)=TEND IFEND DOENDDOWRITE(*,10)(X(I),I=1,10)10 FORMAT(1X,10I4)END三、编程题(每小题8分,共24分)1、输入年月,输出该月所对应的天数。
编写程序。
2、设计一个子例行程序,计算一个任意矩阵A中的最大元素和最小元素。
3、对任意自然数n,设计一个求n的各位数字的立方和的函数子程序F(n)(如F(121)=1**3+2**3+1**2=1+8+1=10),并调用F(n)求1000以内的所有水仙花数(当一个数各个数位的立方和等于这个数本身时,称这样的数为水仙花数)。