FORTRAN77试题B

合集下载

FORTRAN77试题B

FORTRAN77试题B

贵州大学2006-2007学年第一学期考试试卷 B高级语言程序设计注意事项:1. 请考生按要求在试卷装订线内填写姓名、学号和年级专业。

2. 请仔细阅读各种题目的回答要求,在规定的位置填写答案。

3. 不要在试卷上乱写乱画,不要在装订线内填写无关的内容。

4. 满分100分,考试时间为120分钟。

一、选择题(共50分,每小题2分,各题中A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的编号填在括号内)1. 使用超大规模集成电路制造的计算机应该归属于()A) 第一代B) 第二代C) 第三代D) 第四代2. 下列FORTRAN77运算符中,优先级最低的是()A)逻辑运算符.AND. B)算术运算符*C)关系运算符.GE. D)算术运算符+3.下列标识符中,不属于FORTRAN77常量的是()A).TRUE. B)FALSE C)ˊROOT=ˊ D)ˊ123.0ˊ4.下列叙述中错误的是()A)PROGRAM语句可以是FORTRAN77主程序的第一个语句B)每一个FORTRAN77程序块的最后一个语句必须是END语句C)FORTRAN77的所有语句都是可执行语句D)FORTRAN77的任何可执行语句都可以有标号5.下列FORTRAN77表达式中,值为.FALSE.的是()A).NOT.(.FALSE. .AND. .NOT. .TRUE.)B).NOT. .FALSE. .OR. .NOT. .TRUE.C).NOT. .TRUE. .AND. .NOT. .FALSE.D)X .GT. Y .OR. X .LE. Y6. 在计算机内部,一切信息存取、处理和传送的形式是()A) ASCII码B) BCD码C) 二进制D) 十六进制7.下列标识符中不能作为FORTRAN77的合法变量名的是()A)A_1 B) A1 C) A1A D) A+18.下列不是FORTRAN77赋值语句的是()A)X=.TURE. B) X=X*X C) X=X++ D) X=X**2**29.字符运算符‘AB’//‘CD’产生的新字符串的值为(□为空格)()A)‘ABCD’B) ‘AB//CD’C) ‘AB□CD’D) ‘AB□□CD’10.阅读下列FORTRAN77程序:READ(*,*) NX=1.0IF (N.GE.0) X=2*X-2.0IF (N.GE.5) X=2*XIF (N.GT.15) X=3*X-1.0WRITE(*,*) XEND运行上述程序时,如果从键盘输入15<回车>则最后输出的X值为()A)5.0 B)2.0 C)-1.0 D)0.011.阅读下列FORTRAN77程序:DO 20 M=2,5,2P=1.0DO 10 K=M,510 P=P+K20 CONTINUEWRITE(*,*) PEND运行上述程序后,输出的P值为()A)11.0 B)10.0 C)9.0 D)24.012. 阅读下列FORTRAN77程序:READ(*,100) X,Y,Z,SWRITE(*,*) S100 FORMA T(F2.1,3(1X,F3.1))END运行上述程序时,如果从键盘输入9876543210987654321<回车>则最后输出的S值为()A)9.8 B)98.7 C)8.7 D)87.613.阅读下列FORTRAN77程序:READ(*,*)AB=0.0IF (A.GE.1.0) THENB=B+2.0END IFIF (A.GE.2.0) B=B-1.0WRITE(*,*) BEND在执行时,从键盘输入5.0<回车>则输出的B值为()A)2.0 B)-1.0 C)0.0 D)1.014. 阅读下列FORTRAN77程序:P=0.0DO 20 N=2,6,2P=P+1/N20 CONTINUEWRITE(*,*) PEND运行上述程序后,输出的P值为()A)0.0 B)0.5 C)0.75 D)0.9115. 阅读下列FORTRAN77程序:READ(*,*) MN=1K=N10 IF (K.LT.M) THENN=N*KK=K+1GOTO 10END IFWRITE(*,*) NEND在执行上述程序时,如果从键盘输入6<回车>则执行后输出的N值为()A)720 B)120 C)96 D)2416.将二进制数10000001转换为十进制数应该是()A) 127 B) 129 C) 126 D) 12817. 在FORTRAN77源程序中不能用作续行标志的字符是()A) 0 B) X C) + D) $18. 要选拔身高T>1.7米且体重W<62.5公斤的人,FORTRAN的逻辑表达式是()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.5 D) T.GT.1.7.OR.W.LT.62.519. 在FORTRAN77的变量类型说明语句中没有()A) REAl语句B) CHAR语句C) INTEGER语句D) LOGICAL语句20. 一次成功的FORTRAN77源程序编译操作,不能()A) 同时编译一个主程序和一个子程序B) 同时编译几个子程序C) 同时编译一个主程序和几个子程序D) 同时编译几个主程序21. 阅读下列程序LOGICAL LREAD(*,*)A,BL=A.GT.BIF(L)THENX=B+2*AELSEX=BEND IFWRITE(*,*)XEND使用键盘为上述程序输入两个初值4和3,其输出的X值是()A) 4.0 B) 3.0 C) 11.0 D) 10.022. 阅读下列程序READ(*,*)KWRITE(*,100)K100 FORMA T(I5)END程序运行时输入初始值12345,那么显示结果是()A) 12345 B) 2345 C) **** D) *****23. 阅读下列程序LOGICAL L1,L2,L3,L4,L5DA TA L1,L2,L3/3*.TRUE./L4=.NOT.L1.AND..NOT.L2.AND.L3L5=.NOT.L1.OR..NOT.L2.OR.L3WRITE(*,*)L4,L5END程序运行结果是()A) T T B) T F C) F F D) F T24. 阅读下列程序CHARACTER*4 A,B,C*5DA TA A,B,C/'YOUR','BOYS','GIRLS'/WRITE(*,'(1X,A4,A5,A6,A1)')A,B,C,'!'END程序运行结果是()A) YOURBOYSGIRLS! B) YOUR□BOYS□GIRLS!C) YOUR□BOYSGIRLS! D) YOURBOYS□GIRLS!25.阅读下列FORTRAN77程序PARAMETER (A=1.0)READ(*,*)BIF(B.LT.A)THENB=AELSE IF(B.GT.A) THENB=B-AIF(B.GT.A)THENB= B-AENDIFELSEB=0.0ENDIFWRITE(*,*) BEND在执行时,从键盘输入5 〈回车〉输出的B值为()A)1.0 B) 2.5 C) 1.5 D) 3.0二、填空题(共20分,每小题2分)1.16位计算机整数的表示范围为。

Fortran复习题讲解

Fortran复习题讲解

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).NOT.A*B.GT.0.0(.NOT.只跟一个表达式)C (2)数学式(3/5)ex+y的FORTRAN表达式是A) 3*EXP(X+Y)/5 B) 3*E* *(X+Y)/5.0C) (3/5)*EXP(X+Y) D) (3.0/5.0)EXP(X+Y)D (3)下列FORTRAN77表达式中不合法的是A) A.GT.B.EQV.C.GT.D B) A.AND.B.AND.C.AND.DC) .NOT.(X.LE.0.0) D) A.LT.B.LT.C.LT.DD (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) 3A (7)下列FORTRAN77 表达式中,合法的是:A)相当于0.0.LE.X .AND.(.NOT.(X.GE.10.0 ))A) 0.0.LE.X .AND..NOT.X.GE.10.0 B) 0.0.GE.X.LT.10.0C) 0.0.LE.X.GE.10. D) 10.0.LE.X.OR..AND.X.GT.0.0D (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) 0D (12)FORTRAN表达式"MOD(4.9,1.3)"的值是A)1.3 B)0.0 C)4.9 D)1.0A (13下列FORTRAN运算符中,优先级最低的是A)逻辑运算符.AND. B)算术运算符*C)关系运算符 >= D)算术运算符+A (14下列语句函数的定义中正确的是A)F(X,Y)=(X+Y)/(X*Y)+7.0 B)FUNCTION FUN(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 (15下列标识符中,不属于FORTRAN 常量的是A ).TRUE.B )FALSEC )ˊROOT =ˊD )ˊ123.0ˊB (16)"整型变量M 能被整型变量K 整除"的FORTRAN77表达式是A )MOD(M ,K)=0 (MOD(M ,K)= =0)B )M -M/K*K .EQ. 0C )MOD(K ,M)=0D )MOD(M ,K)=0 == .TRUE.C (17)设有下列数组说明语句:REAL:: A(1:10,-1:10)该数组说明语句定义了数组A 中的元素个数为A )100B )110C )120D )121A (18)按隐含规则(默认为整型),语句IP=3.1415926执行之后,IP 的值是A) 3 B) 3.1416 C) 3.141592 D)3.141593D (19)下列数据中,不符合 FORTRAN 常量表示法的是A) -25.6 B) 2.758D3 C)‘FOOT’‘=’ D) TRUEC (20)设C 是复型变量,A 与B 为有定义的实型变量,下列赋值语句中合法的是A) C=A+B B) C=(3.5,1.5**2)C) C=(2.0,3D-2) D) C=(A +B,A-B)B (21)有矩阵(数组)⎥⎦⎤⎢⎣⎡=22221111B 下列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.0 B) 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.5 D) 4*1.0C (34)语句K=2+3.0**2/2执行后,整型变量 K的值是A) 6.5 B) 5 C) 6 D) 7C (36)适用于字符型 I/O的 FORTRAN77格式编辑将是A) Fw.d B) Iw.d C) A D) Gw.dC (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) 6C (40)下列对公用区的说明语句中错误的是A) COMMON A(5), B B) COMMON/AB/ A(5), BC) 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 examplereal a,b,ca=1.0b=2.0c=3.0write(*,"(3(F5.2))") a,b,cend程序运行的结果是: 1.00 2.00 3.002、阅读下列FORTRAN程序:program exampleinteger :: a=1integer :: b=2real :: cc=a/bwrite(*,"(F5.2)") cend程序运行结果是: 0.003、阅读下列FORTRAN程序:program exampleimplicit noneinteger rain, windspeedwrite(*,*) "Rain:"read(*,*) rainwrite(*,*) "Wind:"read(*,*) windspeedIf ( rain>=500 .or. windspeed >=10 ) thenwrite(*,*) "停止上班上课"elsewrite(*,*) "照常上班上课"end ifstopend运行上述程序时,如果从键盘输入Rain:505<回车>Wind:8<回车>则最后输出的结果为: 停止上班上课4、阅读下列FORTRAN程序:program exampleimplicit nonereal a,b,anscharacter operatorread(*,*) aread(*,"(A1)") operatorread(*,*) bselect case(operator)case('+')ans = a+bcase('-')ans = a-bcase('*')ans = a*bcase('/')ans = a/bcase defaultwrite(*,"('Unknown operator ',A1)") operator stopend selectwrite(*,"(F6.2,A1,F6.2,'=',F6.2)") a,operator,b,ans stopend运行上述程序时,如果从键盘输入100<回车><回车>200<回车>则最后输出的结果为: Unknown operator ?5、阅读下列FORTRAN程序:program exampleimplicit noneinteger iinteger strleninteger, parameter :: key = 2character(len=20) :: stringwrite(*,*) "Encoded string:"read(*,*) stringstrlen = len_trim(string)do i = 1, strlenstring(i:i) = char( ichar(string(i:i)) + key )end dowrite(*,"('String:',A20)") stringstopendBCDIJK<回车>则最后输出的结果为: DEFKLM6、阅读下列FORTRAN程序:program exampleimplicit noneinteger i,jdo i=1, 2do j=2, 3, 2write(*, "(I2,I2)") i,jend dowrite(*,*) "another circle"end dostopend程序运行的结果是: 1 2another circle2 2another circle(按输出格式,1、2前均有一空格。

奥鹏兰大《Fortran语言》19秋学期考试在线考核试题

奥鹏兰大《Fortran语言》19秋学期考试在线考核试题

《Fortran语言》19秋学期考试在线考核试题下列标识符中,不能成为合法的FORTRAN90标识符的是__________A. A2_B3B. VOIDC. _123D. IF正确答案:C下列FORTRAN77运算符中,优先级最高的是__________A. .AND.B. .OR.C. .NE.D. —正确答案:D在使用DO循环及循环嵌套时,下列叙述中正确的是A. 不仅可以从循环体内转到循环体外,也可以从循环体外转到循环体内B. 外循环与内循环的DO循环控制变量可以不同.也可以相同C. 可以从循环体内转到循环体外,但不能从循环体外转到循环体内D. DO循环控制变量在循环体内可以再赋值,也可以被引用正确答案:C下列标识符中,不属于FORTRAN常量的是A. .TRUE.B. FALSEC. ˊ123.0ˊD. ˊROOT=ˊ正确答案:B根据I-N规则,下列为整型变量的变量名__________A. AASGB. TOSCKC. NU_MD. BOK正确答案:CFORTRAN语言中有:整数型、逻辑性、##、实数型、复数型五种基本数据类型。

正确答案:字符型计算机包括以下几个部分:##,存储器,##正确答案:运算器,控制器数组REALA(0:5,-1:5)的元素个数是##正确答案:EC算法的特性包括有穷性、确定性、##、有一个或多个输出和有效性。

正确答案:输入两个正整数S和T,求其最大公约数,请编写程序实现程序。

已知I是整型变量,当DO结构从“正常出口”结束时,语句“DOI=3,15,2”共计完成了##次循环。

正确答案:H简要说明循环形式的关系和区别。

正确答案:1)Do循环用来处理已确定循环次数的问题。

WHILE循环和UNTIL循环既可以用来处理已知循环次数的循环问题,也可以来处理不确定循环次数的问题。

什么是算法?正确答案:设计算法是程序设计的核心。

算法的概念:即计算机解题步骤或计算机算法要完成一件工作,包括设计算法和实现算法两个部分。

Fortran练习经典题目

Fortran练习经典题目

Fortran练习经典题目a, 输入一个年、月、日并计算它是本年度的第几天。

b.输入任意一年份,给出该年出生人的属相,如1945年出生的人的属相为“鸡”。

c.显示输出2000~2099年的任何一年的某一月的月历,所要显示的年月有键盘输入。

如2002年5月的月历形式如下;5月2002年日一二三四五六1 2 3 4 5 6 78 9 10 11 12 13 1415 16 17 18 19 20 2122 23 24 25 26 27 2829 30 31d.显示输出2000~2099年的任何一年的年历,并写入一文本文件中。

e.以上功能都应从菜单中选择执行。

提示:a中若y为年份,d是该年的某月某日从1月1日开始经过的天数,则s=(y-1)*1.2425+d。

若s除以7后所得的余数取整后为0,则为周日,为1则周一。

program firstquestionimplicit noneinteger::q,i,ldayinteger::year,month,day,days,mday,dscharacter(len=2),dimension(1:37)::tem! 这个程序可以同时在屏幕和文本中输出计算结果。

为了计算不同的问题,引入变量q,当q=1时,计算某年月日是此年的第几天;! 当q=2时,计算某年的属相;当q=3时,计算月历;当q=4时,计算年历;当q=0时,退出此程序。

此外,此程序还设置了对输入! 年、月、日的判断,判断其是否合法。

print *,'when q=1,this program can resolve the question thatwhich day some day is in some year! this is the question one.' print *,'when q=2,this program can obtain the shengxiao of some year! this is the question two.'print *,'when q=3,this program can obtain the calendar of some month of some year(2000-2099)! this is the question three.' print *,'when q=4,this program can obtain the Almanac of some year(2000-2099)! this is the question four.'print *,'If you want to exit from this program,please input q=0.'doprint *,'input the number of q:'read *,qif(q==0) exitif (q==1) then2000 print *,'input the year, the month and the day:'read *,year,month,dayif (month>12.or.month<0) print *,'you input wrong month.' if (month>12.or.month<0) goto 2000call leapday(year,month,day,lday)if (lday==0) print *,'you input wrong day.'if (lday==0) goto 2000call numday(year,month,day,days)print '(a14,i3,a18)','The day is the',days,' day of this year.'open(25,file='days.dat',status='unknown')write(25,'(a14,i3,a18)') 'The day is the',days,' day of this year.' close(25)else if (q==2) thenprint *,'input the year:'read *,yearcall shengxiao(year)else if (q==3) then2001 print *,'input the year(2000-2099) and the month:'read *,year,monthif (year>2099.or.year<2000) print *,'you input wrong year,please input the year between 2000 and 2099.'if (year>2099.or.year<2000) goto 2001if (month>12.or.month<0) print *,'you input wrong month.' if (month>12.or.month<0) goto 2001open(27,file='yueli.dat',status='unknown')call nyli(year,month,mday,ds,tem)write(27, "(26x,i2,'月',3x,i4,'年')")month,yearwrite(27, '(18x,7a4)')'日','一','二','三','四','五','六'write(27, '(18x,7a4)')(tem(i),i=1,mday+ds)write(27,*)close(27)else if (q==4) then2002 print *,'input the year(2000-2099):'read *,yearif (year>2099.or.year<2000) print *,'you input wrong year,pleade input the year between 2000 and 2099.' if (year>2099.or.year<2000) goto 2002open(28,file='nianli.dat',status='unknown')do month=1,12call nyli(year,month,mday,ds,tem)write(28, "(26x,i2,'月',3x,i4,'年')")month,yearwrite(28, '(18x,7a4)')'日','一','二','三','四','五','六'write(28, '(18x,7a4)')(tem(i),i=1,mday+ds)write(28,*)end doclose(28)elseprint *,'you input the wrong number of q.' end ifend doend program firstquestionsubroutine shengxiao(year)implicit noneinteger::year,m,nm=year-1945if (m>=12.or.m<=-12) thenn=mod(m,12)elsen=mend ifopen(26,file='shengxiao.dat',status='unknown') if (n==0) thenprint *,'The shengxiao of this year is:鸡'write(26,*)'The shengxiao of this year is:鸡' else if(n==1.or.n==-11) thenprint *,'The shengxiao of this year is:狗'write(26,*)'The shengxiao of this year is:狗' else if(n==2.or.n==-10) thenprint *,'The shengxiao of this year is:猪'write(26,*)'The shengxiao of this year is:猪' else if(n==3.or.n==-9) thenprint *,'The shengxiao of this year is:鼠'write(26,*)'The shengxiao of this year is:鼠' else if(n==4.or.n==-8) thenprint *,'The shengxiao of this year is:牛'write(26,*)'The shengxiao of this year is:牛'else if(n==5.or.n==-7) thenprint *,'The shengxiao of this year is:虎'write(26,*)'The shengxiao of this year is:虎' else if(n==6.or.n==-6) thenprint *,'The shengxiao of this year is:兔'write(26,*)'The shengxiao of this year is:兔' else if(n==7.or.n==-5) thenprint *,'The shengxiao of this year is:尨'write(26,*)'The shengxiao of this year is:尨' else if(n==8.or.n==-4) thenprint *,'The shengxiao of this year is:蛇'write(26,*)'The shengxiao of this year is:蛇' else if(n==9.or.n==-3) thenprint *,'The shengxiao of this year is:马'write(26,*)'The shengxiao of this year is:马' else if(n==10.or.n==-2) thenprint *,'The shengxiao of this year is:羊'write(26,*)'The shengxiao of this year is:羊' else if(n==11.or.n==-1) thenprint *,'The shengxiao of this year is:猴'write(26,*)'The shengxiao of this year is:猴' end ifclose(26)end subroutine shengxiaosubroutine nyli(year,month,mday,ds,tem) implicit noneinteger::year,month,days,mday integer::i,m,ds,dts,qreal::scharacter(len=2),dimension(1:37)::temcall numday(year,month,1,days)call monday(year,month,mday)s=(year-1)*1.2425+daysds=int(s-int(s/7)*7)do i=1,37tem(ds+1)='1';tem(ds+11)='11';tem(ds+12)='12';tem(ds+2)='2';tem(ds+13)='13';tem(ds+14)='14';tem(ds+3)='3';tem(ds+15)='15';tem(ds+16)='16';tem(ds+4)='4';tem(ds+17)='17';tem(ds+18)='18';tem(ds+5)='5';tem(ds+19)='19';tem(ds+20)='20';tem(ds+6)='6';tem(ds+21)='21';tem(ds+22)='22';tem(ds+7)='7';tem(ds+23)='23';tem(ds+24)='24';tem(ds+8)='8';tem(ds+25)='25';tem(ds+26)='26';tem(ds+9)='9';tem(ds+27)='27';tem(ds+28)='28';tem(ds+10)='10';tem(ds+29)='29';tem(ds+30)='30';tem(ds+ 31)='31'; print "(26x,i2,'月',3x,i4,'年')",month,yearprint '(18x,7a4)','日','一','二','三','四','五','六'print '(18x,7a4)',(tem(i),i=1,mday+ds)print *end subroutine nylisubroutine numday(year,month,day,days)implicit noneinteger::year,month,day,days,nlogical::leapcall leapyear(year,leap)n=int(month/2)if (month<=8) thenif (mod(month,2)/=0) thendays=30*n+31*n+dayelsedays=30*(n-1)+31*n+dayend ifelseif (mod(month,2)/=0) thendays=30*(n-1)+31*(n+1)+dayelsedays=30*(n-1)+31*n+dayif(month>2) thenif (leap) thendays=days-1elsedays=days-2end ifend ifend subroutine numdaysubroutine monday(year,month,mday) implicit none integer::year,month,mday logical::leapcall leapyear(year,leap)select case (month)case (4,6,9,11)mday=30case (1,3,5,7,8,10,12)mday=31case (2)for_feb:select case (leap)case (.true.)mday=29case (.false.)mday=28end select for_febcase defaultend selectend subroutine monday subroutine leapyear(year,leap)implicit noneinteger::yearlogical::leapif (mod(year,4)/=0) thenleap=.false.else if (mod(year,100)/=0) thenleap=.true.else if (mod(year,400)/=0) thenleap=.true.elseleap=.false.end ifend subroutine leapyearsubroutine leapday(year,month,day,lday) implicit none integer::year,month,day,lday logical::leapcall leapyear(year,leap)select case (month)case (4,6,9,11)if (day>30.or.day<1) thenlday=0elselday=1end ifcase (1,3,5,7,8,10,12)if (day>31.or.day<1) thenlday=0elselday=1end ifcase (2)for_feb:select case (leap)case (.true.)if (day>29.or.day<1) thenlday=0elselday=1end ifcase (.false.)if (day>28.or.day<1) thenlday=0elselday=1end ifend select for_febcase defaultend selectend subroutine leapday素数是只能被1与其本身整除的数,下面给出一种寻找素数的方法:a生存一个数组,将其所有的元素初始化为1b 从数组下标为2的元素开始,每次寻找数值为1 的数组元素。

大学FORTRAN考试试题样题(1)

大学FORTRAN考试试题样题(1)

大学FORTRAN考试试题样题(1)《高级语言程序设计(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 。

fortran模拟试题

fortran模拟试题

软件技术基础(FORTRAN)笔试模拟试题(带答案)一.概念选择题(单选题,将正确的答案填入括号内。

每题1分,共15分)1. 已知整型变量L=5,M=13,N=4,表达式L*M/N 、L/N*M 和M/N*L 的值分别是(A )。

A )16 13 15B )16.25 16.25 16.25C )16.0 13.0 15.0D )16 16 162.将数学式)||(ln 215-+e x 改写为FORTRAN 表达式,正确的是( D )。

A) 1/2*(LOG(ABS(X))+E**(-5))B) 1.0/2*(LN(ABS(X))+E**-5)C) 1/2.0*(LN(ABS(X))+E -5)D) 1.0/2*(LOG(ABS(X))+EXP(-5))3. 设A=.TRUE., B=.FALSE., C=.FALSE., 逻辑表达式(A.OR.B).AND.C 与A.OR..NOT.B 的值是( B )。

A) .T. 与 .F. B).F. 与 .T. C) .T. 与 .T. D) .F. 与 .F.4. 数组REAL A (0:5,-1:5)的元素个数是 ( D )。

A )25B )30C )36D )425. 下列数组说明符中错误的是( A )。

A )K(3:2,1:2)B ) K(-1:1,2)C )K(-2:2,-1:1)D )K(2:2,5)6. 关于USE 语句的正确说法是( C )。

A)USE 语句是可执行语句 B)用USE 语句可以代替INCLUDE 语句C)USE 语句必须放在程序单元体的开头 D)USE 语句的位置任意7. 语句OPEN (9,FILE=‘DATA.TXT ’)打开的是 ( B ) 文件。

A )无格式顺序B )有格式顺序C )无格式直接D )有格式直接8. 阅读下列FORTRAN 程序, 程序运行时执行循环体的次数是( A )。

X=0DO L=10, 5, 1X=X+1.0ENDDOENDA) 0 B) 1 C) 6 D) 无穷9.结构化程序设计中有三种基本结构,下列不属于三种基本设计结构的是( D )。

1998~2002年计算机考试二级FORTRAN(含答案)

1998~2002年计算机考试二级FORTRAN(含答案)

1998~2002年计算机二级考试FORTRAN部分1998年4月二级笔试试题FORTRAN部分21、下列选项中,所指定的FORTRAN表达式都是正确的是()①D=B * B - 4 * A * C②MOD(M,N).NE.O③.NOT.FALSE..OR..NOT..TRUE④A.GT.B.EQ.A.LT.C⑤π*R**2⑥3*E-2⑦A.GT.B.EQ..TRUE.⑧′123′//′ABC′A、①、②、③B、⑥、⑦、⑧C、④、⑤、⑥D、②、⑥、⑧22、执行下列程序,输入3456.789,则输出的结果为()。

READ(8 ,100) SWRITE( 8,100)S100 FORMAT(2F4.1)ENDA.345.6B.45.6C.456.D.* * *23、下列程序执行后输出( )DIMENSION M(5)READ(*,*)(M(I),I=1,5)DO 10 I=1,510 WRITE(*,22)(M(J),J=1,I)22 FORMAT(1X,3I3)ENDA、7B、8C、9D、524、FORTRAN 77规定,变量类型的优先顺序是()。

A、隐含约定(I-N规则)、Implicit说明、类型说明B、类型说明、隐含约定(I-N规则)、Implicit说明C、类型说明、Implicit说明、隐含约定(I-N规则)D、Implicit说明、类型说明、隐含约定(I-N规则)25、设T=.TRUE.F=.FALSE.下列表达式中值为.TRUE.的是( )。

A、.T.AND.F.AND.7.GE.4B、T.AND..NOT.T.AND.TC、((T.OR.F).AND.(T.AND.5.LE.4)).EQV.(.NOT.T.OR.(5.GE.1.AND.F))D、.NOT.(T.OR.F).NEQV.(T.AND.8-2.EQ.4)26 、下面循环语句执行后,SUM的值是()。

DO 10 I=1,5SUM=0DO 10 J=I,4,-110 SUM=SUM+I+JA、0.0B、19.0C.27.0D.76.027、下列语句中,正确的语句函数定义语句是()。

大学FORTRAN考试试题1[1]

大学FORTRAN考试试题1[1]

大学FORTRAN考试试题1[1]1.下列叙述中,正确的是(D )A.语句标号的大小影响程度执行的顺序B.程序完全按语句出现的先后顺序执行C.不同程序单位不能有相同的语句标号D.同一程序单位不能有相同的语句标号2.下列标识符中,不能作为合法的FORTRAN90标识符的是( C) A.A3_B3 B.VOID C._123 D.IF3.下列哪一个为正确的常量( D )A.123,000 B. 3.5E+2.5 C. TRUE D. “HELLO”4.若A=2,B=2,I=3,则表达式A**B**I的值为( C )A. 64B.12C.256 D16.5.圆的直径存放在整型变量D之中,下列计算圆面积的表达式中正确的是( D )A. 3.14159*(D/2)*(D/2)B. 3.14159*(D*D/4)C. 3.14159*(D/2)**2D. 3.14159*D*D/46.下列运算符中,运算优先级最高的是(B )A. 关系运算B. 算术运算C. 逻辑非运算D. 逻辑与运算7.下列FORTRAN的表达式中值为0.5的是( C)A.MOD(4.8,0.5) B.100/20/10 C.50.0/4/25 D.MOD (15,10)/108.下列是完整的FORTRAN程序,编译时出错的语句是( C )A.PROGRAM PRINT B.PARAMETER (PI=3.1415926)C.PI=PI+1 D.WRITE(*,*)SIN(PI+0.5)END9.变量的类型定义中,优先级由高到低的顺序为( A )A.类型说明语句、IMPLICIT 说明语句、隐含约定B.隐含约定、IMPLICIT 说明语句、类型说明语句C.IMPLICIT 说明语句、类型说明语句、隐含约定D.隐含约定、类型说明语句、IMPLICIT 说明语句10.“两整数M与N不能同时小于零”的FORTRAN表达式( D ) A.M>=0.AND.N>=0B.(M.GE.0.AND.N.LT.0).OR.(M.LT.0.AND.N.GE.0)C.(M.LE.0.AND.N.LE.0).OR.(M.LE.0.AND.N.GE.0)D.M.GE.0.OR.N.GE.011.下列逻辑表达式描述的是(不会) X.GT.3.AND.X.LT.10.AND.MOD(X,3).NE.0.OR.X.EQ.2.OR.X.EQ.3 A.10以内的素数B.10以内的合数C.10以内的奇数D.10以内的偶数12.下面正确的逻辑IF语句是(C )A.IF(X.EQ.Y)THEN GOTO 10 B.IF M.LT.N PRINT*,M C.IF(ABS(X).LT.1E-6) A=1 D.IF(A.AND.(A.LE.0.0) A=313.下列语句中正确的是( C )A.DATA A,B,C/3*(-10.0)/ B.READ(*,*)(N,A(K),K=1,N)C.WRITE(*,*)(10,A(K),K=1,10) D.READ(*,*)N,N+114. 如果J是整型变量,则循环语句:DO J=5.5,-1.5,-2.5 所执行的循环次数是(C)A.4 B.3 C.2 D.115.如有语言:INTEGER B (-1:-2,3:7),则数组B 中所含的元素个数为( 无答案) A.0 B.10 C.12 D.2116. 关于FORTRAN90 的CASE结构,SELECT CASE(表达式)中的表达式的数据类型不允许为( A)A. 实型B. 字符型C. 实型D. 逻辑性17.下面符号在FORTRAN90 中表示续行符的是( B)A.! B. & C. # D. %18. 下列程序段中,错误的语句是( D)A.PARAMETER(N=10)B. INTEGER:: M=20C.M=M+ND.PRINT(*, *)M, N19.A. FUNCTIONB. SUBROUTINEC. BLOCK DA TAD. SUB20.下列语句中,错误的语句是( D)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

贵州大学2006-2007学年第一学期考试试卷 B高级语言程序设计注意事项:1. 请考生按要求在试卷装订线内填写姓名、学号和年级专业。

2. 请仔细阅读各种题目的回答要求,在规定的位置填写答案。

3. 不要在试卷上乱写乱画,不要在装订线内填写无关的内容。

4. 满分100分,考试时间为120分钟。

一、选择题(共50分,每小题2分,各题中A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的编号填在括号内)1. 使用超大规模集成电路制造的计算机应该归属于()A) 第一代B) 第二代C) 第三代D) 第四代2. 下列FORTRAN77运算符中,优先级最低的是()A)逻辑运算符.AND. B)算术运算符*C)关系运算符.GE. D)算术运算符+3.下列标识符中,不属于FORTRAN77常量的是()A).TRUE. B)FALSE C)ˊROOT=ˊ D)ˊ123.0ˊ4.下列叙述中错误的是()A)PROGRAM语句可以是FORTRAN77主程序的第一个语句B)每一个FORTRAN77程序块的最后一个语句必须是END语句C)FORTRAN77的所有语句都是可执行语句D)FORTRAN77的任何可执行语句都可以有标号5.下列FORTRAN77表达式中,值为.FALSE.的是()A).NOT.(.FALSE. .AND. .NOT. .TRUE.)B).NOT. .FALSE. .OR. .NOT. .TRUE.C).NOT. .TRUE. .AND. .NOT. .FALSE.D)X .GT. Y .OR. X .LE. Y6. 在计算机内部,一切信息存取、处理和传送的形式是()A) ASCII码B) BCD码C) 二进制D) 十六进制7.下列标识符中不能作为FORTRAN77的合法变量名的是()A)A_1 B) A1 C) A1A D) A+18.下列不是FORTRAN77赋值语句的是()A)X=.TURE. B) X=X*X C) X=X++ D) X=X**2**29.字符运算符‘AB’//‘CD’产生的新字符串的值为(□为空格)()A)‘ABCD’B) ‘AB//CD’C) ‘AB□CD’D) ‘AB□□CD’10.阅读下列FORTRAN77程序:READ(*,*) NX=1.0IF (N.GE.0) X=2*X-2.0IF (N.GE.5) X=2*XIF (N.GT.15) X=3*X-1.0WRITE(*,*) XEND运行上述程序时,如果从键盘输入15<回车>则最后输出的X值为()A)5.0 B)2.0 C)-1.0 D)0.011.阅读下列FORTRAN77程序:DO 20 M=2,5,2P=1.0DO 10 K=M,510 P=P+K20 CONTINUEWRITE(*,*) PEND运行上述程序后,输出的P值为()A)11.0 B)10.0 C)9.0 D)24.012. 阅读下列FORTRAN77程序:READ(*,100) X,Y,Z,SWRITE(*,*) S100 FORMA T(F2.1,3(1X,F3.1))END运行上述程序时,如果从键盘输入9876543210987654321<回车>则最后输出的S值为()A)9.8 B)98.7 C)8.7 D)87.613.阅读下列FORTRAN77程序:READ(*,*)AB=0.0IF (A.GE.1.0) THENB=B+2.0END IFIF (A.GE.2.0) B=B-1.0WRITE(*,*) BEND在执行时,从键盘输入5.0<回车>则输出的B值为()A)2.0 B)-1.0 C)0.0 D)1.014. 阅读下列FORTRAN77程序:P=0.0DO 20 N=2,6,2P=P+1/N20 CONTINUEWRITE(*,*) PEND运行上述程序后,输出的P值为()A)0.0 B)0.5 C)0.75 D)0.9115. 阅读下列FORTRAN77程序:READ(*,*) MN=1K=N10 IF (K.LT.M) THENN=N*KK=K+1GOTO 10END IFWRITE(*,*) NEND在执行上述程序时,如果从键盘输入6<回车>则执行后输出的N值为()A)720 B)120 C)96 D)2416.将二进制数10000001转换为十进制数应该是()A) 127 B) 129 C) 126 D) 12817. 在FORTRAN77源程序中不能用作续行标志的字符是()A) 0 B) X C) + D) $18. 要选拔身高T>1.7米且体重W<62.5公斤的人,FORTRAN的逻辑表达式是()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.5 D) T.GT.1.7.OR.W.LT.62.519. 在FORTRAN77的变量类型说明语句中没有()A) REAl语句B) CHAR语句C) INTEGER语句D) LOGICAL语句20. 一次成功的FORTRAN77源程序编译操作,不能()A) 同时编译一个主程序和一个子程序B) 同时编译几个子程序C) 同时编译一个主程序和几个子程序D) 同时编译几个主程序21. 阅读下列程序LOGICAL LREAD(*,*)A,BL=A.GT.BIF(L)THENX=B+2*AELSEX=BEND IFWRITE(*,*)XEND使用键盘为上述程序输入两个初值4和3,其输出的X值是()A) 4.0 B) 3.0 C) 11.0 D) 10.022. 阅读下列程序READ(*,*)KWRITE(*,100)K100 FORMA T(I5)END程序运行时输入初始值12345,那么显示结果是()A) 12345 B) 2345 C) **** D) *****23. 阅读下列程序LOGICAL L1,L2,L3,L4,L5DA TA L1,L2,L3/3*.TRUE./L4=.NOT.L1.AND..NOT.L2.AND.L3L5=.NOT.L1.OR..NOT.L2.OR.L3WRITE(*,*)L4,L5END程序运行结果是()A) T T B) T F C) F F D) F T24. 阅读下列程序CHARACTER*4 A,B,C*5DA TA A,B,C/'YOUR','BOYS','GIRLS'/WRITE(*,'(1X,A4,A5,A6,A1)')A,B,C,'!'END程序运行结果是()A) YOURBOYSGIRLS! B) YOUR□BOYS□GIRLS!C) YOUR□BOYSGIRLS! D) YOURBOYS□GIRLS!25.阅读下列FORTRAN77程序PARAMETER (A=1.0)READ(*,*)BIF(B.LT.A)THENB=AELSE IF(B.GT.A) THENB=B-AIF(B.GT.A)THENB= B-AENDIFELSEB=0.0ENDIFWRITE(*,*) BEND在执行时,从键盘输入5 〈回车〉输出的B值为()A)1.0 B) 2.5 C) 1.5 D) 3.0二、填空题(共20分,每小题2分)1.16位计算机整数的表示范围为。

2.“M不能被N整除”的FORTRAN表达式为。

3.书写FORTRAN源程序时,每行最多为列。

4.当I=2,K=2,M=7,L=-3时,表达式(I*(K-M))/(9+L)的计算结果是。

5.阅读下面的程序COMPLEX AA=(2.15,6.10)B=AA=BWRITE(*,*) AEND程序的输出结果为。

6.两个字符型数据进行比较,一般按其代码的值进行比较,其中字符最小。

7.INDEX(‘FOLLOW□ME’,‘E’)的函数值为。

8.下面的程序执行后,输入6.0时,Y的值为。

READ(*,*)XIF(X.LT.0.0)Y=0.0IF(X.LT.5.0) Y=1.0IF(X.LT.10.0) Y=5.0Y=6.0WRITE(*,*) YEND9.下面的程序段中,循环的执行次数为次。

DO 10,I=-2,-11,-3 F=F*I10 CONTINUE END10.阅读下面的FORTRAN 程序:LOGICAL P ,Q READ (*,10) P ,Q 10 FORMA T (1X ,2L4)X=0.0 Y=0.0IF(P) X=1.0 IF(Q) Y=1.0 WRITE(*,*) X,Y END执行以上程序,输入FTTFFTTFFTT ,最后输出的X 与Y 的值分别为 , 。

三、编程题(共30分,每小题10分)1. 设计程序打印“九九表”,即1×1=1, 1×2=2……,直到9×8=72,9×9=812.求Y 值,X 由键盘输入。

Y=X ( 0 ≤X<10 )X 2+1 ( 10≤X<20 )X 3+X 2+1 ( 20≤X<30 )3. 设计程序用于求级数)1(1......321211+⨯++⨯+⨯n n 的值,直到级数中某一项的值小于10-4为止。

相关文档
最新文档