大学FORTRAN考试试题1

合集下载

大学Fortran期末复习资料-Fortran程序设计_05

大学Fortran期末复习资料-Fortran程序设计_05

20XX年复习资料大学复习资料专业:班级:科目老师:日期:一、选择题(每题2分,共30分)1. 下列数据中,不符合FORTRAN 90常量表示法的是__________。

A. -23.4B. 2.758D+3C. (3, 4)D. TRUE2. 数学表达式()()27log t b a e t -•+•在FORTRAN 中的正确的表达式为__________。

A. E**T*LOG*(A+B)*(-7*SQR(T))B. EXP(T)*LOG20XXXX(A+B)*(-7*T**2)C. EXP(T)*LN(A+B)*(-7*SQR(T))D. E**T*LOG(A*B)*(-7*T**2)3. 下列名称中,符合FORTRAN90/95命名规则的是__________。

A. a3_bB. “Pi ”C. 2XYD. .false.4. 下列循环语句执行后,输出k 的值分别是__________。

DO K=2,20XXXX ,4IF(MOD(K,20XXXX)= =0) WRITE(*,*) K+1WRITE(*,*) KEND DOWRITE(*,*) KA. 2 6 20XXXX 20XXXX 20XXXXB. 2 6 20XXXX 20XXXX 20XXXXC. 2 6 20XXXX 20XXXX 20XXXXD. 2 6 20XXXX 20XXXX 20XXXX 20XXXX5. 阅读下列程序PROGRAM AREAD(*,20XXXX0)X,Y20XXXX0 FORMAT(1X,2F3.1)S=MOD(Y,X)WRITE(*,200)S20XX0 FORMAT(F3.1)END在执行上述程序后,由键盘输入20XXXX3446889,最后输出的S 值为__________。

A. 0.0B. 8.1C. 21.0D. 1.06. 判别英语成绩E 和FORTRAN 成绩F 都必须大于60分的正确的表达式是__________。

2018-2019学年第一学期《FORTRAN》期末试卷(A)

2018-2019学年第一学期《FORTRAN》期末试卷(A)

2018-2019学年第一学期《FORTRAN》期末试卷(A)(考试对象:农水、港航、地质、海洋、力学专业2018级)学院专业班级学号姓名成绩一、选择题(用铅笔把选中的方格涂黑32×1=32分)12345 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2829 30 31 32二、填空题(每空占一行,每行写一个答案25×2=50分)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.三、程序设计(2×9=18分)1、求裴波纳契数列的前10项,要求每行输出5项。

该数列的前几项为:0,1,1,2,3,5,8,13,……2、编写一个判断素数的函数子程序, 主程序调用函数求3-100之间满足下面条件的各组素数:每组三个素数,第二个比第一个大2,第三个比第二个大4。

例如5、7、11就是满足条件的一组。

一、选择题(32×1=32分)1、以下有关FORTRAN90基本概念的叙述中,正确的是。

A、关键字只能用大写字母,其他符号名(变量名、数组名、过程名等)只能用小写字母。

B、符号名须以英文字母开头,可后接英文字母、数字、下划线,不超过31个字符。

C、键盘上的可见字符均可作字符型常数使用,但汉字不能作字符型常数使用。

D、编译系统接受英文字母开头后接希腊字母作符号名。

2、在下列写法中,________不是FORTRAN常量。

A、 .TRUE.B、1E-2C、 (0.0,2.4)D、1,000,0003、表达式15/4/2.0的值是。

A、整数2B、实数1.5C、实数2.25D、实数1. 34、以下DO循环结构中,不属于FORTRAN90程序设计语言标准的是。

A、DO ……ENDDOB、DO WHILE(relation_expression)……ENDDOC、DO index=1,2,3……ENDDOD、DO UNTIL(relation_expression)……ENDDO5、以下说法中错误的是。

大学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. 给出下⾯变量名称,哪些是合法变量?哪些是⾮法变量?说明原因。

Count 、num_2、x&y 、4x+5y 、china-suzhou 、$us 、AbCdE 、Mr.bai 、t5、_another 、school_class_25、#125、2002Y 、π、β、A01/02、alpha 、date(1) 1. 判定下⾯整数,指出哪些是合法整数,哪些是⾮法整数?说明原因。

-0、+ 215、$125、3,245,895、5.3245、5#384、-524_3、#5DFE 、23-345、16#1A2B 、38#ABCD 、8#275_2、+327890、4 #3212. 判定下⾯实数,指出哪些是合法实数,哪些是⾮法实数?说明原因。

-0E2、45.2345E3.5、-5489E25_8、-.2345E-35、$185.45E 、+ 2.753425E24_3、 58D85、+0.E-0、-00000.001E5、5,443,223.44、-12 34E+2、+ 18.5E 18、2.5E42习题三⼀、选择题1.下⾯是V isual Fortran 中正确的表达式是。

(A )A*COS(X)+∣B ∣(B )2*EXP(2*X)/SQRT(16.0)(C )B 2-4AC (D )MOD (24.5,0.5)2.下⾯算术赋值语句中正确的语句是。

(A )M*N=(X-Y)/Z (B )+R=A+B/C(C )X=Y=Z-1.0 (D )Y=A*B/C/D3.算术表达式1/3+2/3的值为。

(A )0 (B ) 1 (C ) 0.99999999 (D )值不确定⼆、问答题1. 将下列代数式⽤Visual Fortran 表达式描述:①②③ 4sin 3A-3sinA+sin3A ④ 2.执⾏下列赋值语句后,变量中的值。

变量的类型遵循I —N 规则。

计算机技术基础(Fortran)试题库

计算机技术基础(Fortran)试题库

一、选择题1、下列关于"SUBROUTINE MAP(X,Y)"语句行的叙述中,不正确的是( )A) 这是子程序的第一个语句 B) 字符串"MAP"是子程序名C) 变量X是子程序的形参 D) 子程序执行后,MAP将返回整型数据2、 FORTRAN表达式"2/4+0.5"的值是( )A) 0.5 B) 1 C) 1.0 D) 03、阅读下列FORTRAN程序:PI=3.14159265WRITE(*,'(F7.4) ')PIEND程序运行后输出结果是( )A) 3.142 B) 3.1415 C) 0.31416 D) 3.14164、圆的直径存放在整型变量K之中,下列计算圆面积的表达式中正确的是( )A) 3.1415926*K*K/4 B) 3.1415926*(K*K/4)C) 3.1415926*(K/2)**2 D) 3.1415926*(K/2)*(K/2)5、要判断"月收入M在2000元以上(含2000元)且5000元以下)不含5000元)"的职工,应该使用的逻辑表达式是( )A) M .GE. 2000 .AND. M .LE. 5000 B) M .GE. 2000 .OR. M .LE. 5000C) M .GE. 2000 .AND. M .LT. 5000 D) M .GE. 2000 .OR. M .LT. 50006、设FORTRAN子程序如下:SUBROUTINE SUB(I,X)B=I+1X=X+BEND若主程序中的变量M,B已按I-N规则赋值,则调用上述子程序的语句中正确的是( ) A) CALL SUB(M,M) B) CALL SUB(M+4,B)C) CALL SUB(B,B) D) CALL SUB(M,B+4)7、下列不是FORTRAN常量的是( )A) (3.0,4.0) B) 3.1416D+00 C) 2/3 D) 'Very good!'8、阅读下列FORTRAN程序:F=1.0DO 20 K=3, 7, 3DO 20 L=K-1, K20 WRTTE(*,'(I3, F8.1)'K, F*KEND程序运行结果的最后一行是( )A) 3 6.0 B) 6 6.0 C) 6 180.0 D) 7 180.09、在FORTRAN中,下列运算符的优先顺序是( )A) 逻辑运算,关系运算,算术运算 B) 关系运算,逻辑运算,算术运算C) 算术运算,关系运算,逻辑运算 D) 关系运算,算术运算,逻辑运算10、使用FORTRAN内部函数时,所给的自变量( )A) 只能是常量 B) 只能是变量C) 只能是常量或者变量 D) 可以是常量、变量或者表达式11、设X=2.0, Y=8.0, Z=6.0, L=.TRUE.,则下列FORTRAN表达式中值为.TRUE.的是( )A) X+Z.GT.Y.AND.L B) .NOT.(Y.LT.Z+X).NEQV..NOT.LC) .NOT.L.OR.(L.EQV.Y+X.EQ.Z) D) Y+X.GE.Z+X.AND.(L.AND..FALSE.)12、下列输出语句行中正确的是( )A) WRITE(*,*)(A(K,L),K=1,3,L=1,3)B) WRITE(*,*)A(K,L),K=1,3,L=1,3C) WRITE(*,*)((A(K,L),K=1,3), L=1,3)D) WRITE(*,*)(A(K,L),K=1,3),L=1,313、给定下列FORTRAN子程序如下:SUBROUTINE SUB(K,A)A=SQRT(K*K+1.0)END下列调用语句中正确的是( )A) CALL SUB(N,N) B) CALL SUB(X,X)C) CALL SUB(N,X*X) D) CALL SUB(11,X)14、阅读下列FORTRAN程序:INTEGER AA(2,3)DATA AA/1,2,3,4,5,6/CALL S2D19(AA)CALL S2D19(AA(1,2))ENDSUBROUTINE S2D19(BB)INTEGER BB(2,2)WRITE(*,'(1X,2I3)') BB(1,1),BB(2,2)END程序运行结果是( )A) 1 4 B) 1 5 C) 1 4 D) 1 23 6 2 6 2 5 3 415、阅读下列FORTRAN程序:INTEGER A(3,3)DO 10 K=1,3DO 10 L=1,310 A(K,L)=K*10+LWRITE(*,'(1X,3I3)')AEND程序运行结果是: ( )A) 11 21 31 B) 11 12 13 C) 31 32 33 D) 33 32 3112 22 32 21 22 23 21 22 23 32 22 2113 23 33 31 32 33 11 12 13 31 21 1116、阅读下列FORTRAN程序:WRITE(*,10)'YEAR:', 199610 FORMAT(/3X,A,I4)END程序运行结果是(^代表空格,下同) ( )A) ^^^^^YEAR:1996 B) ^^YEAR:1996C) 空白行 D) 空白行^^^^^YEAR:1996 ^^YEAR:199617、某函数子程序中使用了IMPLICIT、READ、COMPLEX和FUNCTION四种语句,其中属于可执行语句的是: ( )A)FUNCTION B) READ C) COMPLEX D) IMPLICIT18、阅读下列FORTRAN程序:DIMENSION M(4,4)DATA M/1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6/DO 10 I=1,4WRITE (*,100)(M(I,J),J=1,I)10 CONTINUE100 FORMAT(1X,4I2)END程序运行的结果是( )A) 1 2 3 4 B) 1 5 9 3 C) 1 D) 16 7 8 6 0 4 2 6 2 6 61 2 1 5 3 7 1 9 3 7 1 16 6 4 8 2 6 3 4 4 8 2 6 619、阅读下列FORTRAN程序:CHARACTER*10 A, B*6DO 10 I=1,10A(I:I)=' '10 COUNTINUEA(1:5)='ABCDE'B='FGHIJK'A(4:9)=BWRITE(*,100) A100 FORMAT(1X,A)END程序运行结果是:( )A) ABCDEFGHIJ B) ABCDEGHIJK C) ABCFGHIJK D) BCDEFGHIJK20、阅读下列FORTRAN程序:INTRINSIC SIN, COSWRITE(*,*)FUN(SIN,30.0)/FUN(COS,30.0)ENDFUNCTION FUN(F,X)X=X*3.14159/180FUN=F(X)END程序运行结果是 ( )A) sin30°的值B) cos30°的值C) tg30°的值D) ctg30°的值二、填空题1、下列FORTRAN子程序的功能是用以下公式计算一组数据Z1,Z2,…,Zn的标准差σ:σ2=(Z12 +Z22+…+Zn2)/n-[(Z1+Z2+…+Zn)/n]2请在程序中的下划线处填入合适的内容。

Fortran模拟试卷1-8

Fortran模拟试卷1-8

FORTRAN90模拟测验一(笔试部分)一.选择题(从4个可选答案中选择一个正确答案添入空白处)1.FORTRAN 90规定程序中名称的长度不能超过个字符。

A.8 B.15 C.31 D.632.关于FORTRAN 90程序单元,以下四种说法中正确的是。

A.一个FORTRAN 90程序由多个程序单元组成,其中有一个且只能有一个主程序单元B.一个FORTRAN 90程序由多个程序单元组成,其中有一个且只能有一个模块单元C.一个FORTRAN 90程序允许有多个程序单元,但每类程序单元只能有一个D.一个FORTRAN 90程序允许有多个程序单元,但主程序单元和模块单元只能有一个3.FORTRAN 90程序中允许使用的三个通用标志符是。

A.!% & B.@ , ; C.! ; & D.; & *4. 下列中,所指的FORTRAN 90表达式都是正确的。

①∣A*x+B*y+C*z∣② b*b+4*a*c③.NOT. .TRUE. .AND. .FALSE. ④‘A’<= ch <= ‘Z’⑤ X>100 = = .TRUE. ⑥ SQRT(A2+B2)⑦π*R**2 ⑧‘HAPPY ’+‘NEW ’+‘YEAR.’A. ①②⑤B.②③④⑧C.②③⑤D.②⑤⑥⑦5. FORTRAN 90规定,变量类型声明从高到低的优先顺序是。

A.隐含约定(I-N规则)、IMPLICIT声明、类型声明B.类型声明、隐含约定(I-N规则)、IMPLICIT声明C.类型声明、IMPLICIT声明、隐含约定(I-N规则)D.IMPLICIT声明、类型声明、隐含约定(I-N规则)6.数组声明语句为:INTEGER,DIMENSION(-5:-1,-3:3,11:15) ::num 数组元素num(-2,1,13)是存储结构中第个元素。

A.70 B.85 C.90 D.947.类型声明语句为:INTEGER(2) I 数据输出语句为:PRINT *,I变量I中数据输出域宽是字符。

大学FORTRAN语言试题

大学FORTRAN语言试题

大学FORTRAN语言试题一、选择题(15×1分=15分)1.Fortran程序设计语言允许使用的专用字符集是。

A.(),.;[]+-*/=:空格B.(),.αβ+-*/=:空格C.(),.+-*/$'=:空格D.{},.;?+-*/=:空格2.按隐含规则确定变量的数据类型,Fortran表达式(A112/BC1+15.123456789.0_8)-(1000.0_4/3.0+ABI*ABJ)的值的数据类型为。

A.复型B.整型C.实型(种别为8)D.实型(种别为4)3.执行循环语句DO I=0.5,4.5,1.5,正常退出循环后,循环执行的次数和循环变量I的值分别为。

A.4和4.5 B.5和5 C.4和6 D.5和64.语句A(M(I))=MOD(I,7)是。

A.函数定义语句B.赋值语句C.非法语句D.说明语句5.下列不合法的是:_____A.A<B<C<D B..NOT.(X<0) C.A>B.EQV.C>D D.A.AND.B.AND.C6.若数组说明符ARRAY(-5:5,-10:0)的元素个数为。

A.144 B.121 C.110 D.1007.设循环初值、终值和增量分别为M1,M2和M3,循环次数的计算公式是。

A.INT((M2-M1)/M3)B.INT((M2-M1)/M3)+1C.MAX(INT(M2-M1+M3)/M3,0) D.MIN(INT(M2-M1+M3)/M3,0)8.下列字符表达式中正确的是。

A.’ABCD’+’MN’’D’B.’ABCD’//’MN’’D’C.CHAR(65)+’N’//’CH’D.’123 45’-’5’9.语句integer,dimension(1:-1)::a,下列说法中正确的是:_____A.a数组的元素个数为0 B.a数组的元素个数为3C.a数组的元素个数为1 D.该说明语句是错误的10.子程序的虚元可以是:A.变量名、数组名、过程名B.变量名、数组名、过程名和符号常量名C.变量名、数组名、数组片段、过程名D.任意符号名11.c为复型量,下列正确的是:A.c=(1/2,1/5) B.c=sqrt((0.1,4.5)) C.c=1.0+4i D.c=(x,y)12.数学式的FORTRAN表达式是()A.2/3*SIN(3.14/4)B.2SIN(3.14/4)/3C.2.0*SIN( /4.0)/3.0 D.2*SIN(3.14/4)/313.执行下列赋值语句后,变量X的值为()X=4+36**(7/14)A.10.0 B.5.0 C.10 D.514.下列不合法的是:A.A<B<C<D B..NOT.(X<0) C.A>B.EQV.C>D D.A.AND.B.AND.C15.执行下列程序时由键盘输入13579.2468,输出结果为:READ’(2(F4.1,2X))’,A,BPRINT’(2(F4.1,2X))’,A,BA.135.7 246.8 B.13.5 24.6 C.**** **** D.*** ****二、填空题(15×1分=15分)1.FORTRAN90自由格式的程序续行标记为______字符,一般写在_____位置;自由格式的程序注释标记为____字符。

FORTRAN笔试

FORTRAN笔试

一、判断题(共20分,每题1分,√表示对,×表示错)1.FORTRAN源程序的一条语句无法在一行内写下时,在行末用续行标志“!”,表示下一行是当前行的继续。

2.语句X=X+1的含义是将内存中名为X+1的存储单元的值赋给变量X。

3.如果程序单元中有说明语句PARAMETER(A=2.1),则不允许在该程序单元中改变A的值。

4.主程序和子程序可以储存到不同的文件中。

5.即使编译和连接都正确无误,FORTRAN程序运行时仍可能出错。

6.在数据块子程序中,可以调用另一个数据块子程序。

7.设有如下输入语句READ '(1X, F5.2)' , X若由键盘输入:12.3456789,则变量Y的值为12.34。

8.如果有以下程序段CHARACTER::A=’FORTRAN’则A内存储的实际值是’F’。

9.M=2000,为了在屏幕上输出□□***2000*** (其中□表示空格)。

则应使用的语句为:WRITE(*,100)M100 FORMAT(2X,’***’,I4,’***’)10.模块可用USE引用,也可用CALL调用。

11.语句函数定义语句在程序内的位置是:在程序块开头语句之后,END语句之前。

12.若有以下程序段:INTEGER,POINTER ::P1, P2INTEGER,TARGET::I=20, J=30P1=>I; P2=>J; P1=>P2; P2=>P1运行程序,I、J的值都为20。

13.COMMON语句的功能是给不同程序模块中的若干变量分配同一存储单元。

14.设C是复型变量,A、B是实型变量。

把A 的值赋给C的实部,把B的值赋给C的虚部的赋值语句是C=CMPLX(A,B)。

15.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的。

16.A2B的FORTRAN表达式为A**2*B。

17.程序中说明了变量a具有POINTER属性,若a=>b,则b应具有PARAMETER属性。

fortran考试试题(A)有答案版

fortran考试试题(A)有答案版

课程名称:Fortran语言程序设计;试卷编号:A 卷;考试时间:120分钟学院1.Fortran语言中有:整数型逻辑型字符型实数型复数型五种基本数据类型。

2.Fortran程序的书写格式有两种固定格式自由格式。

3. 字符型常数’this”s’的字符长度为64. 下列程序运行结果为125。

Program mainImplicit noneInteger::floor=5,iDo i=1, floorIf(i==3)cycleIf(i==4)cycleWrite(*,*)iEnd doend5. 下列程序的运行结果为76.0,2.0。

Program mainImplicit noneReal :: a, b, mA=2.0B=76.0If(a<b)thenM=aA=bB=mEnd ifWrite(*,*) “a=”,a “b=”,bend6. 下列程序的运行结果是10302。

Program testImplicit nonesum=0.0do i=1,203,2sum=sum+iend dowrite(*,*) iend7.下列程序的运行结果是12000。

Program testImplicit noneInteger::iInteger::a(5)=(/ (i, i=1,5) /)Integer::b(5)=0Where (a<3)b=aEnd whereWrite(*,”(5(i3,1x))”) bend8.下列程序的运行结果是30。

Program testImplicit noneInteger,parameter:: limit=10Integer counterInteger:: ans=0Counter=2do while(counter<=limit)ans=ans+countercounter=counter+2end doWrte(*,*)ansend9.下列程序的运行结果是2,3。

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 )42 5. 下列数组说明符中错误的是( 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 )。

fortran试题A

fortran试题A

《Fortran 语言程序设计》考试试题 一、关键字解释及表达式互换(共10题,每题2分,共20分) 1. READ*, X,Y 2. REAL 3.12 FORMAT(2X,I5) 4.COMPLEX 5.LOGICAL 6.INTEGER,DIMENSION(4,5)::A 7.SELECT CASE(R3) 8.写出 x e y cos 21∙的fortran 表达式 9.写出COS ((A+1)*(A+1))/(N*N+1)数学表达式 10.写出 1-⎪⎪⎭⎫ ⎝⎛n y x 的fortran 表达式 二、下面分别是程序中的一段代码,请指出其错误?(共2题,(共2题,1题12分,2题8分,共20分) 1. …………………… E=(E*T+23) IF(E>=500) GOTO 5 DO N=1,1O ,0 5 T=SS*3.45 PRINT*,R,T END DO ……………… 2. PROGRAM ex IMPLICI NONE INTEGER :: n CHARACTER(LEN=3) :: a,b,c READ*, n a=n b=’nkd_lixy ’c=sqrt(a**2+b**2) print*,c 学生班级________________学生学号:□□□□□□□□□□□□学生姓名:________________ ………………装订线………装订线………装订线…………试卷须与答题纸一并交监考教师…………装订线………装订线………装订线………………………………三、请写出下面程序的运行结果(共4题,每题10分,共40分)1.写出下列程序的作用是解决什么问题的?PROGRAM GH1REAL X,YREAD*,XIF (X<=0) Y=LOG(SQRT(X*X+1))IF (X>0) Y=SIN(X**3)+ABS(X)PRINT*,”Y=”,YEND2.写出下列程序的运行结果,程序运行时输入 5,6,7,8 四个数。

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)在下列FORTRAN90运算符中,优先级最高的是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)下列FORTRAN90 表达式中,合法的是: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) 允许编译有多个主程序的源文件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*K C)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.0C (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)设有一个FORTRAN90子程序如下: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.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) 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)Fortran90提供5种预定义的内部数据类型,它们分别是Integer、Real、__________、__________和Logical。

Fortran(A)

Fortran(A)

南京信息工程大学试卷2009-2010学年 第 1学期 FORTRAN 程序设计 课程试卷( A 卷)本试卷共 7 页;考试时间 120 分钟;任课教师 宣文霞 ;出卷时间 2009 年 12 月数理学院 学院 专业 2008 年级 班 学号 姓名 得分一、单项选择题(每小题 2 分,共 40 分)1. 下面叙述中正确的是 。

A )Fortran 程序中各类语句的位置是任意的B )Fortran 程序中的所有可执行语句在程序执行时都会产生机器操作C )Fortran 程序中的每一行上都可含有标号D )Fortran 程序中的任何语句在程序执行时都会产生某种机器操作 2. 在Fortran 中 2sin()/(2)x e x a 的正确的算术表达式为 。

A )EXP(X)+SIN(X**2)/(2*A) B )EXP(X)+SIN(X**2)/2*A C )E**X+SIN(X**2)/(2*A) D )EXP(X)+SIN(X*2)/(2*A) 3. 与表达式0<x<5 对应的Fortran 表达式为 。

A ) 0.0 < X < 5.0B ) 0.0 > X < 5.0C ) 0.0 < X .AND. 5.0 > XD ) X > 0.0 .OR. X< 5.0 4. 在下面写法中,不是Fortran 常量的是 。

A )200,000B ) (11.0, 23.4)C ) 1.23D-22D ) .TRUE. 5. 已知各变量类型由“I -N 规则”确定,且J=2、B=7.5,执行下列赋值语句A=J**2*(6/8)+0.6-B后,则变量A 的值为 。

A )-3.9B ) 3.9C ) 6.9D ) -6.9 6. Fortran 程序从编写到完成计算,生成三种主要的文件,按其扩展名表示,它们依次是 。

A ) *.f90, *.com, *.batB ) *.f90, *.obj, *.exe C) *.f90, *.obj, *.com D )*.for, *.bat, *.exe 7. 下列符号中,可作为FORTRAN 合法变量名的是 。

FORTRAN90考试笔试题1

FORTRAN90考试笔试题1

FORTRAN90考试笔试题1FORTRAN90试题(A)答案请写在答题部分A.试题部分⼀、单项选择(每题2分,共40分)1、下列标识符中不能作为FORTRAN90的合法变量名的是__1___.A)A_1 B) A1 C) A1A D) A+12、表达式1+SQRT(B*B-4.0*A*C)*ABS(X)<3E-5值的类型为: __2___.A)逻辑型B)整型C)实型D)字符型3、下列DATA语句中正确的是 __3___.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.0/4、通过下⾯的赋值,字符变量LINE的值是 4 。

表⽰空格。

CHARACTER(LEN=4)::LINELINE=’10’A) 10 B) 1000 C) ‘10’ D) 105、设M=2000,为了在屏幕上输出□□***2000*** (其中□表⽰空格),则应使⽤的格式输出语句为 __5___.A) WRITE(*,10)M10 FORMAT(2X,’***’,I4,’***’)B) WRITE(*,10)M10 FORMAT(3X,’***’,M,’***’)C) WRITE(*,10)M10 FORMAT(3X,’***’,I4,’***’)D) WRITE(*,10)M10 FORMAT(1X,’2X’,17,’***’)6、若有格式输⼊语句如下:INTEGER A(4)READ(*,2O)A20 FORMAT(4I2)如果在执⾏时从键盘输⼊□1□23□456□789↙ (其中□为空格, ↙为回车键)则读⼊后的A(3)值为 __6___.A)56 B) 456 C) 34 D) 37、执⾏下列赋值语句R=25**(6/12)后,变量R的值为_7___:A)5.0 B)0 C)1 D)1.08、下列有关数组的说法正确的是__8___.A) 数组定义语句只能定义⼀维或⼆维数组B) 数组元素下标不能出现负值C) 在赋值语句中出现的A(3)肯定是数组元素D) 程序中使⽤的数组必须进⾏说明9、下列说法中正确的是__9___.A)输⼊字符串常量时,其长度必须和所定义的变量长度相等B)字符串常量在⽤键盘输⼊时,两边必须⽤撇号C)两个字符型变量⽐较,该两个变量的长度必须⼀致D)定义字符型变量⽤CHARACTER语句10、在下⾯的模块定义中,错误的语句是__10___.A) MOUDLE APIB) REAL::PIC) PI=3.14D) END MOUDLE API11、阅读下列FORTRAN90程序:DO I=4,2,-1A=1.0DO J=I,4,2A=A+1.0ENDDOENDDOWRITE(*,*)AEND运⾏上述程序后,输出的A值为 __11___.A) 5.0 B) 4.0 C) 3.0 D) 2.012、执⾏READ*,A,B,C语句时键⼊2*3,4,5,则变量A,B,C的值依次是__12___.A)2,3,4 B) 3,4,5 C)6,3,4 D)3,3,413、在过程调⽤中当虚参是数组时,对应的实参应该是同⼀类型的数组或__13___.A)常量B)变量C)数组元素D)函数名14、阅读下列程序INTEGER A(3,3)DATA A/1,2,3,4,5,6,7,8,9/WRITE(*,100)((A(K,J),J=1,K),K=1,3)100 FORMAT(1X,10I2)END程序执⾏后, 输出的结果为__14___.A)□1□4□5□7□8□9 B) □1□2□3□4□5□7C)□1□4□7□2□5□3 D) □1□2□5□3□6□915、阅读下列FORTRAN90程序:READ(*,*)AB=0.0IF(A>1.0)B=B+2.0IF(A>2.0)B=B-1.0WRITE(*,*)BEND在执⾏时,从键盘输⼊5.0↙ (其中↙为回车键)则输出的B值为__15___.A) 2.0 B) -1.0 C) 0.0 D) 1.016、阅读下列程序INTEGER:: A(3,3) A(:,1)=(/1,4,7/) A(:,2)=(/2,5,8/) A(:,3)=(/3,6,9/) WRITE(*,10)(A(I,I),I=1,3) 10 FORMAT(1X,3I2) END 程序执⾏后, 输出的结果为__16___. A) □1□4□7 B) □2□5□8 C) □3□6□9 D) □1□5□917、M 是由INTEGER,DIMENSION(10)::M 语句定义的⼀个⼀维数组,则数组⽚断M(2:8:3)包含的三个元素是__17___.A) M(2),M(5),M(8) B) M(2),M(8),M(3) C) M(2),M(3),M(4 ) D) M(5),M(6),M(7)18、下⾯程序:READ *, KWRITE(*, 100) K 100 FORMAT(I5) END在运⾏时输⼊值12345后,其输出结果为__18___.A) 12345 B) 1234 C)2345 D)01234 19、阅读下列程序 READ*,N SUM=1.0 F=1 K=1 DO WHILE(KA)K K N K 1)1(1111--=∑-+B) K KN K 1)1(111∑-=-+C) KK NK 1)1(111-=∑-+D) KKNK 1)1(11∑=-+20、阅读下列程序CHARACTER(LEN=5) STRREAD(*,100)STRWRITE(*,200)STR100 FORMAT(A9)200 FORMAT(A4)END如果在执⾏时由键盘输⼊FORTRAN90输出的结果为__20___.A)FORTR B)ORTR C)RAN9 D)AN9⼆、阅读下列程序,写出程序的运⾏结果(每题6分,共24分)程序1:PROGRAM EXAM2IMPLICIT NONECHARACTER(LEN=20)::LINEINTEGER :: I, N=5,M=10DO I=1,NLINE=' 'LINE(M+I: M+I)='#'PRINT*,LINEENDDOEND程序2:X=1.0Y=2.0CALL SUB(X,Y,Z,3.0)WRITE(*,100)X,Y,Z100 FORMAT(1X,F3.1)ENDSUBROUTINE SUB(A,B,X,Z)A=A+1B=B+2.0Y=1.0X=Y+ZEND程序3:PROGRAM EXAM3IMPLICIT NONEINTEGER:: I,MAXI,NUM=5INTEGER,DIMENSION(:),ALLOCATABLE:: ARRAY_LISTALLOCATE(ARRAY_LIST(NUM))ARRAY_LIST=(/20,10,30,50,40/)MAXI=1DO I=2,NUMIF(ARRAY_LIST(I)>ARRAY_LIST(MAXI))MAXI=I ENDDOWRITE(*,*)MAXI,ARRAY_LIST(MAXI) DEALLOCATE(ARRAY_LIST) END程序4: TYPE SSREAL X CHARACTER(LEN=5) STR INTEGER N END TYPE TYPE(SS)::A READ*,A WRITE(*,100)A100 FORMAT(1X,F4.2,A6,I3) END 如果在执⾏时由键盘输⼊ 34.5,’****’,23三、阅读下列程序,在空⽩处填写适当的内容(每空2分,共20分) 1.下列FORTRAN 程序的功能是从键盘输⼊⼀个整数,当该整数能被5整除时输出“YES ”,否则输出“NO ”。

大学Fortran期末复习资料-Fortran程序设计_04

大学Fortran期末复习资料-Fortran程序设计_04

20XX年复习资料大学复习资料专业:班级:科目老师:日期:一、单项选择题:(每小题2分,共 40 分)1. 下列叙述中正确的是 。

A. 完整的Fortran 程序的第一个语句必须是program 语句B. 完整的Fortran 程序中只能有一个end 语句C. Fortran 程序中各类语句的位置是任意的D. Fortran 程序中所有可执行语句在程序执行时都会产生某种机器操作2. Fortran 表达式20XXXX/8*0.3/6.0的值为 。

A. 0.75B. 0C. 0.0D. 0.20XXXX 3. 下列合法的Fortran 标识符为 。

A. M%8B. A20XXXX3BC. F(x)D. 5xy4. 下列数据中是不合法的Fortran 常量的是 。

A. trueB. (1,3)C. ‘’D.4.567E-45. 在Fortran 中)2a /()x (sin e 2x 的正确的算术表达式为 。

A. exp(x)+sin(x**2)/(2*a)B. exp(x)+sin(x**2)/2*aC. e**x+sin(x**2)/(2*a)D. exp(x)+sin(x*2)/(2*a)6. 设有下面一段格式输出语句write(*,20XXXX) x20XXXX format(1x,’x=’, f5.1)如果在输出语句中直接包含格式说明,正确的写法应该是 。

A. write(*,1x, ‘x=’ , f5.1) xB. write(*,’(1x,’x=’, f5.1)’) xC. write(*,”(1x,’x=’, f5.1)”) xD. 没有这种格式7. 下面的逻辑IF 语句正确的是 。

A. if (x<0.0) then 20XXXXB. if (x>=0.0) .eqv. (y<0) y=23C. if (0.0=< y <20XXXX) y=x+20XXXXD. if (x>20XXXX.0 .or. x<0.0) y=2*x+exp(x)8. 阅读下列Fortran 程序:real :: z(2,2)=(/1,2,3,4/)p(x, y)=3*x-2*yt=z(1,2)if ( t<=1.0) s = p(1.0,2.0)if ( t<=3.0) s = p(2.0,3.0)if ( t<=4.0) s = p(3.0,4.0)write(*,*) send执行上述程序后,输出的S 值为 。

西安交通大学fortran习题

西安交通大学fortran习题

1二维数组的输入与输出program mai nimplicit nonein teger i,jin teger A(2,2)!若为data((A(j,i),i=1,2),j=1,2)/1,2,3,4/prin t*,Aend!结果为13 2 4实际为A(1,1)=1 A(1,2)=2 A(2,1)=3!若为data((A(i,j),i=1,2),j=1,2)/1,2,3,4/prin t*,Aend!结果为1 2 3 4实际为A(1,1)=1 A(2,1)=2 A(1,2)=3 program mai nimplicit nonein teger i,jin teger A(2,2) data((A(i,j),i=1,2),j=1,2)/1,2,3,4/write(*,"(l3,l3)")Aend!结果为1 23 4翻卡片!用数组编写下面的题目:假定有一叠卡片,卡片号为1到52,并且所有卡片的正面朝上。

从卡片号2开始,把凡是偶数的卡片都翻成正面朝下。

再从3号卡片开始,把凡是卡片号为3的倍数的卡片都翻一个面(即把正面朝上的翻成正面朝下,正面朝下的翻成正面朝上)。

下一步从4号卡片开始,把凡是卡片号为4的倍数的卡片都翻一个面,依次类推,直到从52号卡片开始,把凡是卡号为52的倍数的卡片翻一个面。

写出一个程序,来测定全过程完成后,哪些卡片的面朝上,共有几张。

答案:正面朝上的卡片是第1、4、9、16、25、36、49张,共7张。

program main implicit none in teger s(52) in teger i,j s=0 doi=2,52 j=i A(2,2)=4 A(2,2)=4do while(j<=52) s(j)=s(j)+1 j=j+i end doend dodo i=1,52if(mod(s(i),2)==0)then write(*,*)i end if end doend program mai nII用C语言写#in clude<stdio.h> int mai n(){int s[52];int i,j;for(i=0;i<52;i++)s[i]=0;for(i=1;i<=51;i++){也可以写作j=j+i+1,不能写作j==j+i+1 for(j=i;j<=51;j+=i+1)II {s[j]=s[j]+1;斐波拉契!使用递归时result()不能与函数名相同PROGRAM MAIN IMPLICIT NONE INTEGER n,i,sum read*, n if(n< 0)THEN PRINT*,"出错"END IFwrite(*,*)'f( n)=',f( n) do i=1, n sum=sum+f( n) end do write(*,*)'sum=',sum contains recursive function f(n) result(g) in teger g,nif(n==0)the ng=0else if(n==1.or. n==2)the ng=1elseg=f( n-1)+f( n-2)end ifend fun cti onEnd program分解质因数!分解质因数program mai nimplicit nonein teger a,c,i,bprint*,"请输入一个大于二的整数”read*,aprint*,'则它的所有质因子为’do while(a/=1)i=1b=1do while(b/=0)i=i+1b=mod(a,i)c=iend doa=a/cprin t*,cend doend program哥德巴赫猜想!屏幕上不能显示500行,所以不能将结果完全显示,需要将结果输入文件FUNCTION f(i)IMPLICIT NONEINTEGER i,f,hf=0if(i>1)the ndo h=2,i-1if(mod(i,h)==0)the nf=f+1 en dif end do en difend fun cti onprogram mai nimplicit none in teger(4) i,j, n,f in teger sdo n=4,600,2s=0j=0do i=1, n/2-1j=n_iif(f(i)==O.a nd.f(j)==O)then s=s+1 end ifend doif(s==0)the nprint*,n,'不满足猜想’ elseprin t*, n,send ifend doend program黄金值法解方程!将中值法中取中点的值改为取黄金点的值,理论上可以提高效率module golde n_sect ionimplicit nonereal a,b,ccontainssubrouti ne sub1(a,b,c)real a,b,c,ycc=(a*0.618+b)/1.618yc=f(c)do while(abs(yc)>0.00001)if(yc*f(a)<O)the nb=celsea=cend ifc=(a*0.618+b)/1.618 yc=f(c) end doend subrout inefun ctio n f(x)real f,x f=x*x-4.0*x+3 end fun cti on end module golde n_secti on program mai n use golde n_secti on implicit none real eprint*,"请输入解的下界a"read*,aprint*,"请输入解的上界b"read*,b e=f(a)*f(b)!用一个循环来判断输入值是否合适,或者就是解if(f(a)==0)the nprin t*,aelse if(f(b)==0)the nprin t*,belsedo while(e>0)prin t*,"f(a)=,f(a);f(b)=,f(b);请重新输入下界a" read*,aprint*,"请重新输入解的下界b"read*,bend do call sub1(a,b,c) end ifprin t*,c endprogram mai nimplicit nonein teger i,jin teger a(5),b(5)data a /1,2,8,2,10/data b /2,3,4,5,6/do i=1,5do j=1,5b(j)=b(j)-1if(b(j)<1)the nb(j)=b(j)+5end ifend doprint*,a(b(1:5))!实践证明这是正确的输出方法end doend! forall 语句中不能使用if 语句,但可以用where 语句,注意()中的内容变化 但本题从逻辑上就应该先做完 forall,再做where ,故不必嵌套 program mai n implicit none in teger i,j in teger a(6),b(6)DATA a /1,4,9,16,25,36/ data b /2,3,4,5,6,7/ do i=1,6 forall(j=1:6) b(j)=b(j)-1 end forall!可以写为 where(b(:)==0) b(:)=b(:)+6 end whereprint*,a(b(1:6))!实践证明这是正确的输出方法end do回文数据若干相邻想和并比较大小!1.圆盘上有如图1( 1)所示的20个数。

fortran习题1

fortran习题1

2.1program mainimplicit nonereal A,B,C,Dprint*,"请输入任意三个角度值a,b,c"read*,A,B,CD=sin(abs(A+B))/(sqrt(cos(abs(a)+abs(b))))+tan(c)print*,"结果=",Dend2.2program mainimplicit nonereal::R=6.4,PI=3.1416,c,s,a,v,e,finteger::h=5c=2*PI*Rs=PI*R*Ra=4*PI*R*Rv=4.0/3*PI*R*R*Re=s*hf=2*s+c*hprint*,"圆周长=",c,"圆面积=",s,"圆球表面积=",a,"圆球体积=",v,"圆柱的体积=",e,"圆柱的表面积=",fend2.3program mainimplicit nonereal A,B,C,Dinteger Eprint*,"请输入任意的三个小数"read*,A,B,Cprint*,"A=",A,"B=",B,"C=",CD=A+B+CE=D+0.5print*,"三个小数的和=",Dprint*,"四舍五入后的结果=",Eend2.4program mainimplicit noneinteger::l1=10,l2=20,l3=18,l4=15,l5=21,l6=14,l7=30,l8=36,l9=28 real s1,s2,s3,s4,a1,a2,a3,a4,Ss1=(l6+l5+l9)/2.0a1=sqrt(s1*(s1-l6)*(s1-l5)*(s1-l9))s2=(l1+l8+l9)/2.0a2=sqrt(s2*(s2-l1)*(s2-l8)*(s2-l9))s3=(l2+l7+l8)/2.0a3=sqrt(s3*(s3-l2)*(s3-l7)*(s3-l8))s4=(l3+l4+l7)/2.0a4=sqrt(s4*(s4-l3)*(s4-l4)*(s4-l7))s=a1+a2+a3+a4print*,"面积为S=",send2.5program mainimplicit noneinteger A,B,C,Dinteger Eprint*,"请输入一个四位十进制整数"read*,EA=E/1000B=(E-A*1000)/100c=(E-A*1000-b*100)/10d=E-A*1000-b*100-c*10print*,"千位上的数字是",a,"百位上的数字是",b,"十位上的数字是",c,"个位上的数字是",d end2.6program mainimplicit nonereal a,bprint*,"请输入学生的原成绩"read*,ab=(sqrt(a))*10print*,"调整后学生的成绩是",b end第三单元3.1program mainimplicit noneinteger areal bprint*,"请输入月收入"read*,aif (a<0) thenprint*,"数据错误"else if (a<1000) thenb=a*.03else if (a<=5000) thenb=1000*.03+(a-1000)*.1elseb=1000*.03+4000*.1+(a-5000)*.15end ifprint*,"应缴纳的税金为",bend3.2program mainimplicit noneinteger aprint*,"请输入星期几"read*,aif (a==1.or.a==4) thenprint*,"今晚节目是新闻"end ifif (a==2.or.a==5) thenprint*,"今晚节目是电视剧"end ifif (a==3.or.a==6) thenprint*,"今晚节目是卡通片"end ifif (a==7) thenprint*,"今晚节目是电影"end ifend3.3program mainimplicit noneinteger y,areal bprint*,"请输入您的年龄"read*,yprint*,"请输入月收入"read*,aif (y<50) thenif (a<0) thenprint*,"数据错误"else if (a<1000) thenb=a*.03else if (a<=5000) thenb=1000*.03+(a-1000)*.1elseb=1000*.03+4000*.1+(a-5000)*.15end ifprint*,"应缴纳的税金为",belseif (a<0) thenprint*,"数据错误"else if (a<1000) thenb=a*.05else if (a<=5000) thenb=1000*.05+(a-1000)*.07elseb=1000*.05+4000*.07+(a-5000)*.1end ifprint*,"应缴纳的税金为",bend ifend3.4program mainimplicit noneinteger yprint*,"请输入一个公元的年份"read*,yif (mod(y,4)==0) thenif (mod(y,100)==0) thenif (mod(y,400)==0) thenprint*,"此年份有366天"elseprint*,"此年份有365天"endifelseprint*,"此年份有366天"endifelseprint*,"此年份有365天"endifend3.5program mainimplicit nonereal a,b,c,d,tprint*,"请输入四个数"read*,a,b,c,dif(a<b) thent=aa=bb=tendifif(a<c) thent=aa=cc=tendifif(a<d) thent=aa=dd=tendifif(b<c) thent=bb=cc=tendifif(b<d) thent=bb=dd=tendifif(c<d) thent=cc=dd=tendifprint*,a,b,c,dend3.6program mainimplicit noneinteger a,binteger countercounter=2print*,"请输入一个整数"read*,ado while(counter<=a-1)if (mod(a,counter)==0)thenb=1print*,"此数不是素数"stopelseb=0endifcounter=counter+1end doif(b==0) thenprint*,"此数是素数"endifend3.7program mainimplicit noneinteger, parameter::lines=499 integer a,b,c,d,e,f,g,h,time,counter a=4do counter=2,linestime=0a=a+2b=a/2c=1do while (c<b-2)c=c+2e=1d=1do while(d/=0.and.e<c-1) e=e+1d=mod(c,e)end doif (d/=0)thenf=a-ch=1g=1do while(g/=0.and.h<f-1) h=h+1g=mod(f,h)end doif (g/=0)thenprint*,a,'=',c,'+',ftime=time+1end ifend ifend doprint*,'分解的个数为',time end doend3.8program mainimplicit noneinteger x,counter,lines,m,n print*,"请输入一个自然数" read*,xlines=xn=0print*,x,"=1x"do counter=2,lines,1do while(mod(x,counter)==0) print*,counter,"x"x=x/counterend doend doend第四单元4.1program mainimplicit noneinteger ado a=1,4,1print*,"Fortan"enddoendprogram mainimplicit noneinteger a,bdo a=1,99,2b=b+aenddoprint*,"结果是",bend5.3program mainimplicit noneinteger areal,parameter::weight=45.0 real,parameter::e=0.01 real::guess=0.0do while(ABS(guess-weight)>e) write(*,*)"wight:"read(*,*)guessa=a+1if (ABS(guess-weight)>e)then write(*,*)"you're wrong"if (a==5)thenprint*,"您已经失去机会" stopend ifenddowrite(*,*)"you're right" end4.4program mainimplicit noneinteger ireal ydo i=1,10y=y+1.0/fact(i)enddoprint*,ycontainsfunction fact(n)integer fact,n,ifact=1do i=1,nfact=i*factenddoend function fact4.5program mainimplicit noneinteger iinteger:: j=0integer strlencharacter(len=20)::string,string2write(*,*)"请输入一个含空格的字符串"read(*,*) stringstrlen=len_trim(string)do i=1,strlenif (ichar(string(i:i))==32) thencycleendifj=j+1string2(j:j)=char(ichar(string(i:i)))enddoprint*,string2end第五单元5.1program mainimplicit nonereal::l1=10,l2=20,l3=18,l4=15,l5=21,l6=14,l7=30,l8=36,l9=28 real a,b,c,d,y,s,Fa=F(l6,l5,l9)b=F(l1,l8,l9)c=F(l2,l7,l8)d=F(l3,l7,l4)y=a+b+c+dprint*,"面积为",yendfunction F(a,b,c)s=(a+b+c)/2F=sqrt(s*(s-a)*(s-b)*(s-c))end function5.2program mainimplicit noneinteger::a=198,b=72integer f,g,x,yx=f(a,b)y=g(a,b)print*,"最大公因数为",xprint*,"最小公倍数为",yendfunction F(a,b)implicit noneinteger F,a,b,c,minif (a<b) thenmin=belsemin=aendifdo c=1,minif(mod(a,c)==0.and.mod(b,c)==0) thenF=cendifenddoend functionfunction G(a,b)implicit noneinteger G,a,b,c,t,k,maxk=a*bif(a<b) thenmax=belsemax=aendifdo c=k,max,-1if(mod(c,a)==0.and.mod(c,b)==0) thenG=cendifenddoend function5.3program mainimplicit noneinteger f,ado a=100,999if(f(a)==1)thenprint*,aendifenddoendfunction f(a)implicit noneinteger a,b,c,d,fb=a/100c=(a-b*100)/10d=a-b*100-c*10if (b**3+c**3+d**3==a)thenf=1elsef=2endifend function5.4program mainimplicit nonereal a,binteger i,j,facti=1j=1print*,"输入一个数"read*,bdo while((b**i)/fact(i)>10**-6)a=a+(-1)**(j+1)*(b**i)/fact(i)i=i+2j=j+1enddoprint*,aendfunction fact(x)implicit noneinteger fact,x,ifact=1do i=1,xfact=fact*ienddoend function5.5module nimeiimplicit nonereal,parameter::pi=3.1415926real,parameter::e=2.71828 containsfunction fact(n)integer n,ireal factfact=1.0do i=1,nfact=fact*ienddoend functionfunction suh(n)integer n,ireal suhsuh=0.0do i=1,nsuh=suh+i**2end doend functionend module nimeiprogram mainuse nimeiimplicit nonereal A,R,Ro,y1,y2integer nprint*,"请输入n,A,R,Ro"read*,n,A,R,Roy1=fact(n)/suh(n)y2=A*n/(2*pi*r*r)*(r/Ro)**n*e**(-(r/Ro)**n)print*,y1,y2end第六单元6.1program mainimplicit noneinteger i,yreal jinteger ::A(10)do i=1,10A(i)=2*iprint*,A(i)enddodo i=1,10y=y+A(i)enddoj=y/10print*,"平均值",jend5.2252436011495.3program mainimplicit noneinteger::n=2integer ::F(0:9)F(0)=0F(1)=1print*,F(0)print*,F(1)do while(n>1.AND.n<10)F(n)=F(n-1)+f(n-2)print*,F(n)n=n+1enddoend5.4program mainimplicit noneinteger,parameter::size=10integer::A(size)=(/5,3,6,4,8,7,1,9,2,10/)integer::I,Jinteger::Tdo i=1,size-1do j=I+1,sizeif(A(i)<A(j))thenT=A(I)A(i)=A(j)A(j)=Tendifenddoenddowrite(*,"(10I4)")Aend5.57135.6program mainimplicit noneinteger::A(7)=(/2,5,5,8,9,12,18/)integer::B(5)=(/5,8,12,12,14/)integer::C(7)=(/2,5,5,8,9,12,18/)integer::D(5)=(/5,8,12,12,14/)integer::I,Jdo j=1,7do i=1,5if(D(i)==A(j))thenA(j)=0endifenddoenddodo j=1,7do i=1,5if(B(i)==C(j))thenB(i)=0endifenddoenddoprint*,"A:"do j=1,7if(A(j)/=0)thenprint*,A(j)elsecycleendifenddoprint*,"B:"do i=1,5if(B(i)/=0)thenprint*,b(i)elsecycleendifenddoend5.7program mainimplicit noneinteger,allocatable::B(:)integer::i,n,j,t,kk=2print*,"请输入你要输入的数字的个数"read(*,*)nallocate(B(n))print*,"请输入你要输入的数字"do i=1,nread(*,*)B(i)enddoprint*, Bdo while (k<=n)t=b(n)do j=n,2,-1b(j)=b(j-1)enddob(1)=t]print*, bk=k+1enddoend第六单元7.1type lingjianinteger haomacharacter mingziinteger shuliangreal jiageend type7.21 type(lingjian)::aData a/lingjian (1,"x",2,3)/2 type(lingjian)::aa. haoma=1a. character ="x"a. shuliang =2a. jiage =33 type(lingjian)::aa=lingjian(1,"x",2,3)7.3containssubroutine sopt(p)type(mark),target::p(30)type(mark)::tempinteger i,jreal avedo i=1,29do j=i+1,30if(p(i).chengji<p(j).chengji)thentemp=p(i)p(i)=p(j)p(j)=tempendifenddoenddoend subroutine sort7.4module funcimplicit nonetype markinteger::xuehaoreal::chengjiend typeend module funcprogram mainuse funcimplicit nonetype (mark),target::A(5)type(mark),pointer::P(:)integer ireal ave,x,sumdo i=1,5write(*,"(A,I2,A)",advance="no")"请输入第",i,"位同学的学号,成绩"read(*,*)A(i).xuehao,a(i).chengjisum=sum+a(i).chengjienddoave=sum/5do i=1,5x=a(i).chengji-aveif (x>=10)thenwrite(*,"(I7,F7.2,a)")A(i),"为A等"elseif (ABS(x)<10)thenwrite(*,"(I7,F7.2,a)")A(i),"为b等"elsewrite(*,"(I7,F7.2,a)")A(i),"为c等"endifendifenddoend7.5program mainimplicit nonetype computercharacter(10)::maijia,riqi,changjia,chicun,leixing,rongliange,neicuninteger::jiage,pinlvend typeinteger i,jtype(computer),dimension(5)::ptype (computer)::tempP(1)=computer("wang","3/9","xian","A","XL","300G","8G",6666,100000) p(2)=computer("li","3/10","xian","B","XXL","300G","8G",7666,110000) P(3)=computer("zhang","3/11","xian","C","S","300G","8G",7000,108000) P(4)=computer("fan","3/12","xian","D","M","300G","8G",7066,105000)P(5)=computer("zhu","3/13","xian","E","XXXL","300G","8G",6866,120000) do i=1,4do j=i+1,5if(P(i).jiage>p(j).jiage)thentemp=P(i)p(i)=p(j)p(j)=tempendifenddoenddodo i=1,5print*,p(i)enddodo i=1,4do j=i+1,5if(P(i).pinlv>p(j).pinlv)thentemp=P(i)p(i)=p(j)p(j)=tempendifenddoenddodo i=1,5print*,p(i)enddoend第六单元8.1program mainimplicit noneinteger,pointer::P1,P2integer,target::A1,A2integer tempp1=>A1p2=>A2A1=10A2=20print*,"交换前A1,A2为",P1,P2 temp=A1A1=A2A2=tempprint*,"交换后A1,A2为",P1,P2 end program8.2program mainimplicit nonetype rowinteger,dimension(:),pointer::r end type rowtype(row),dimension(5)::T,s integer i,jdo i=1,5allocate(T(i).r(1:i))end dodo i=1,5T(i).r(1:i)=iend doprint*,"矩阵为:"do i =1,5write(*,*)T(i).r(1:i)end dodo j=1,5allocate(S(j).r(1:6-j))end dodo j=1,5S(j).r(1:6-j)=jend doprint*,"矩阵为:"do j =1,5write(*,*)S(j).r(1:6-j)end doend program第九单元9.1program mainimplicit nonecharacter(100) strinteger iopen(11,file='a.dat')read(11,'(A)') stri=len_trim(str)print*,"长度为",i end。

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

1.下列叙述中,正确的是(D )
A.语句标号的大小影响程度执行的顺序
B.程序完全按语句出现的先后顺序执行
C.不同程序单位不能有相同的语句标号
D.同一程序单位不能有相同的语句标号
2.下列标识符中,不能作为合法的FORTRAN90标识符的是( C)
A.A3_B3 B.VOID C._123 D.IF
3.下列哪一个为正确的常量( 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. 64
B.12
C.256 D16.
5.圆的直径存放在整型变量D之中,下列计算圆面积的表达式中正确的是( D )
A. 3.14159*(D/2)*(D/2)
B. 3.14159*(D*D/4)
C. 3.14159*(D/2)**2
D. 3.14159*D*D/4
6.下列运算符中,运算优先级最高的是(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)/10
8.下列是完整的FORTRAN程序,编译时出错的语句是( C )
A.PROGRAM PRINT B.PARAMETER (PI=3.1415926)
C.PI=PI+1 D.WRITE(*,*)SIN(PI+0.5)
END
9.变量的类型定义中,优先级由高到低的顺序为( A )
A.类型说明语句、IMPLICIT 说明语句、隐含约定
B.隐含约定、IMPLICIT 说明语句、类型说明语句
C.IMPLICIT 说明语句、类型说明语句、隐含约定
D.隐含约定、类型说明语句、IMPLICIT 说明语句
10.“两整数M与N不能同时小于零”的FORTRAN表达式( D )
A.M>=0.AND.N>=0
B.(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.0
11.下列逻辑表达式描述的是(不会) 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=3
13.下列语句中正确的是( 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+1
14. 如果J是整型变量,则循环语句:DO J=5.5,-1.5,-2.5 所执行的循环次数是(C)
A.4 B.3 C.2 D.1
15.如有语言:INTEGER B (-1:-2,3:7),则数组B 中所含的元素个数为( 无答案) A.0 B.10 C.12 D.21
16. 关于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=20
C.M=M+N
D.PRINT(*, *)M, N
19.
A. FUNCTION
B. SUBROUTINE
C. BLOCK DA TA
D. SUB
20.下列语句中,错误的语句是( D)。

A. PARAMETER(PI=3.1415)
B. DIMENSION A(-5 : 0)
C. INTEGER : : A=10
D. SELECT CAE(3.0)
21. 执行语句:WRITE(* ,‘(1X,A,‘=’,I2)’)“2+3”,2+3后,屏幕上显示的结果
是( 不会)。

A. □5
B. 2+3=□5
C.5=□5 D. 语句不正确
22. 能得到一下数据正确输出结果的FORTRAN 语句是( A )
X=1.34
M=3
Y=1.25
A.100 FORMAT(1X, F6.3,I3,E9.4)
B.100 FORMAT(1X, 2F8.3,I3)
C.100 FORMAT(1X, F8.4,I3,F3.1)
D.100 FORMAT(1X, F8.4,2(1X, I3))
23.设有如下程序,下面描述正确的是( 一次也不循环)
K = 10;DO WHILE(K==0); K=K-1; ENDDO
A.循环执行10次 B. 循环是无限循环
24.C
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))
25.为了保证正确的输出数据,格式编辑符Ewd中w与d的关系应该是( B )
A.w>d B.w>d+2 C.w>d+4 D.w>d+6
26.若定义了语句函数S(X, Y, Z)=X+Y+Z 后,S(2.0 1.0 3.0)的值为( 6.0)
A.17.0
B.11.0
C.20.0
D.29.0
27.下列说法中正确的是( D)
A.块IF结构中的THEN块或ELSE块不能是空块
B.块IF结构中至少要有一个ELSEIF语句或ELSE语句
C.每一个ELSE语句要有一个对应的ENDIF语句
D.一个块IF结构中只能有一个ENDIF语句
28.在子程序SUB中,下列各语句的正确顺序是(A )1. ④要放③前2.见P129:①为语句函数,语句函数是非执行语句,语句函数的定义语句要放在一个程序单位的所有其他说明语句之后,放在所有可执行语句之前,所以②在①前
①F(A, B, C)=A*A+B*C ②IMPLICIT INTEGER(F, A, B, C)
③REAL D(M), E(N) ④PARAMETER(M=4)
⑤SUBROUTINE SUB(E, N)
A.⑤④③②①
B.⑤②④③①
C.⑤③②④①
D.⑤②③④①
答案应该正确,有异议可以大家一起讨论,或Q我,树连。

相关文档
最新文档