Fortran复习题讲解
FORTRAN期末复习要点_new

FORTRAN程序设计期末复习一、基础知识:1.Fortran程序的组成:a)一个main程序(以program开头,可省略),若干子程序(以function或subroutine开头),以end 结束。
b)可执行语句,非执行语句。
了解哪些语句是可执行语句?哪些是非执行语句?它们在程序中放置的位置有什么要求?c)语句标号。
小于5位的正整数,可以加在可执行语句前面。
d)Fortran程序的书写格式。
固定格式、自由格式2.数据类型a)常量和变量(五种):integer,real,character,logical,complex要求掌握:对于常量,给定一个数据,能分辨出该常量的类型。
符号常量如何定义?符号常量不能修改其值。
例如:5,2.5,1.23e2,1.23d-2,’abc’,”xyz”,.true.,.false.,(2.5,3.6)。
对于变量,要会定义,注意变量名的命名规则。
b)表达式的书写:四种表达式:算术表达式、关系表达式、逻辑表达式、字符表达式要求掌握:各种算符的运算规则和优先级别。
考查方式:给出一个算术式子能写出正确的表达式,或者给出表达式能计算出其结果。
注意:整数相除结果还是整数;逻辑运算符的两端都必须是逻辑量;>=不能写成≥;==不能写成=;表达式0≤x≤5的正确写法?.and.,.not.,.or.两端的小圆点不能漏掉。
c)常用函数:数学函数:sqrt(实数),abs(),sin(弧度)等三角函数,int(),real(),mod(m,n)字符串函数:char(),ichar(),len_trim(),index()二、程序的三种基本结构:1.顺序结构:赋值语句、表控输入、输出语句(注意:*的含义)、格式输出(主要掌握I,F,A,x,重复系数,编辑符的用法)2.选择结构:掌握块IF语句的三种形式,逻辑IF语句和IF语句的嵌y套的书写格式、执行过程。
需掌握的算法:分段函数的计算3.循环结构:重点掌握do循环和do while循环需掌握的算法:求n!;判断一个数是否是素数;如例8.3的类似累加问题。
FORTRAN90复习资料(2)

FORTRAN90 程序设计复习资料(2)一、选择题1.FORTRAN 90规定,变量类型声明的优先顺序是。
A.隐含约定(I-N规则)、IMPLICIT声明、类型声明B.类型声明、隐含约定(I-N规则)、IMPLICIT声明C.类型声明、IMPLICIT声明、隐含约定(I-N规则)D.IMPLICIT声明、类型声明、隐含约定(I-N规则)2.表达式15/4/2.0的值是。
A.整数2 B.实数1.5 C.实数2.25 D.实数1. 33.数组声明语句为:INTEGER,DIMENSION(-5:-1,-3:3,11:15) ::num ,数组共有个元素。
A.175 B.150 C.120 D.174.下列语句函数声明中,正确的是。
A.F1(I,I)=5*I-10*I**2 B. F2(MAT(5),A)=5*A+MAT(5)C. F3(X,Y,5.0)=X**2+Y**2+5.0**2D.F4(X,Y)=SQRT(X**2+Y**2+5.0**2)5.下列关于子程序的有关说法中,不正确的是。
A.对于无参子例行程序,调用时子例行程序名后的括号可取消B.对于无参函数子程序,调用时函数名后括号可取消C.对于有参子程序,形式参数可以是子程序名对于有参子程序,形式参数可以是星号“*”6.以下不是算法的特征。
(A) 灵活性(B)确定性(C)可行性(D)有穷性7.以下是FORTRAN 90源程序的扩展名。
(A)MDP (B)MAK (C)OBJ (D)F908.下列是正确的变量名。
(A)3SI (B)SI—3 (C)SI 3 (D)SI#39.若S为整型变量,且有S=1.25+11/4,则S的值为。
(A)3(B)3.25 (C)4 (D)4..2510.表达式MOD(5,6)+9/2**3/2的值为。
(A)37 (B)1 (C)5 (D)3211.已知a=3.0,b=9.0,c=5.0,d=7.0,逻辑表达式a+b/=c. and .a>=d的值为。
fortran语言复习总结

2 表控输入 READ 语句:
类似 cin>>
READ * ,变量 1,变量 2,„
表控输出 PRINT 语句: 类似 cout<<
PRINT * ,表达式 1,表达式 2,„
3 PARAMETER 语句:给常数命名 位于类型声明后,可执行语句前
PARAMETER(名称 1=表达式 1,名称 2=表达式 2,„)
输入:
↙。
输出:
。
第六章 选择结构 同 C++,只是除逻辑 IF 语句,其他都需要有 END IF 对应
1 逻辑 IF 语句
IF(<逻辑表达式 e>) <语句 S>
e 为逻辑表达式或关系表达式,S 为可执行语句。
2 基本块 IF 语句
(1)IF(<逻辑表达式 e>)THEN
[<THEN 语句体>]
END IF
5 两种书写格式:固定格式和自由格式
6 数据类型:有内部数据类型、派生数据类型、数组和指针类型等
预定义内部数据类型
INTEGER→int、
REAL→float/double、
COMPLEX、
CHARACTER→char、
LOGICAL→bool
第四章 表控输入输出
1 三种类型输入输出:表控格式、二进制形式(无格式)、有格式
式不正确会致错
输出:例: PRINT 10,i,j,k
10 FORMAT(1X,'i=',I4,3x,'j=',I4,3x,'k=',I4)
w>实际长度,前补空格。
w<实际长度,输出 w 个“*”。
FORTRAN90复习

第三章 FORTRAN 90 基础知识基本知识,如:字符集、名称、关键字、程序单元、书写格式、数据类型。
名称:①名称只能由英文字母、数字、下划线符“_”和美元符号“$”组成。
②名称第一个字符必须是英文字母。
③名称不能超过31个字符。
合法名称: Number,Max, PrOgRaM, FIND_IT, read, x, a3b7, china, total, x$y$z 。
非法名称:X-Y-Z, 8q, a.5, _wrong,U.S.A., DR.WANG,$abcd,r a t e 。
书写格式:自由格式,固定格式3个通用标志符:注释标志符“!”、语句分隔标志符“;”和续行标志符“&”。
数据类型第四章 内部数据类型与表控输入输出常量和变量:语法描述; 精度(kind 值)和取值范围整型。
实型。
复型。
字符型。
CH(1:5)是什么?逻辑型。
变量的申明(几种声明方式,谁优先)。
表达式 (会写正确的表达式,表达式计算结果)如:e算术表达式:算术运算符的优先级和结合规则;操作数的类型转换不同优先级运算符,“先高后低”结合先乘方、后乘除、再加减,括号最优先相同优先级运算符,“从左向右”结合,如9-4+12/3*2**3 = ?乘方算符,“从右向左”结合,如2**3**2 = ?尽量多地使用( ),以使意义明确,避免出现歧义和产生错误转换规则“由低级向高级转换”①数据类型和KIND相同的两个算术操作数,计算时不转换,运算结果的类型和KIND与原数据相同。
②数据类型相同但KIND值不同的两个算术操作数,计算时,将KIND值低的操作数转换为高KIND值,运算结果为高KIND值的原类型。
③数据类型不同的两个算术操作数,将低级别类型的操作数高级别类型,运算结果的类型及KIND值与高级别类型操作数相同。
字符表达式字符串连接操作符//“I” // ‘ ‘ // “Love” // ‘ ‘ // “Fortran 90” I Love Fortran 90逻辑变量逻辑与逻辑或逻辑非逻辑等于逻辑不等逻辑异或X Y X.AND.Y X.OR.Y.NOT.X X.EQV.Y X.NEQV.Y X.XOR.Y T T T T F T F FT F F T F F T TF T F T T F T TF F F F T T F F逻辑运算的优先级:.NOT. →.AND.→.OR.→.EQV.、.NEQV.、.XOR、相同优先级时,运算按从左到右的顺序进行(“左结合”)(3>5).and.(4>1))的计算结果是什么?赋值语句 (能写出正确的赋值语句)第五章数据的有格式输入输出I编辑符F编辑符E编辑符D编辑符A编辑符READ(*,*)a,bWRITE(*,*)a,bWRITE(1,"(1X,I5)")WRITE(1,100)100 FORMAT(1X,I5)Open(10, FILE=“FILE1.txt” ,STATUS=“new”)WRITE( * , '(1X, A, "=", I2)') '2+3', 2+3第六章选择结构程序设计逻辑IF语句块IF语句多支块IF语句会写多支块IF程序,块CASE语句第七章循环结构程序设计EXIT语句的功能是:在循环体执行过程中强制性终止整个循环语句的执行,转循环语句后的第一条语句执行。
fortran90-知识点整理

Fortran90关于变量说明的新功能:1.在变量说明的同时,可以给变量赋初值。
INTEGER::I=5,J=126REAL::X=7.2,Z,W=774.22.在说明变量的同时也可说明其种别REAL(KIND=4)::X,Y 或REAL(4)::X,Y3.在说明变量的同时,还可说明变量的属性INTEGER,PARAMETER::I=5,J=123Ps :PARAMETER 属性(1)功能:用一个符号代表一个常量,称为符号常量(常数)(2)写法:Real,Parameter ::G=9.8 &&说明类型时赋值(3)位置:位于可执行语句之前REAL,DIMENSION(1:10)::A2.3.6 派生数据类型根据需要而由基本数据类型定义新的数据类型。
在一个派生类型中可包含多个基本类型。
如:TYPE STUDENT (定义开始)CHARACTER(LEN=20)::DEPARTMENTCHARACTER(LEN=10)::CLASSCHARACTER(LEN=15)::NAMEINTEGER::NUMBER (成员定义)END TYPE STUDENT (定义结束)派生类型变量的定义:TYPE(STUDENT)::PERSON变量的赋值:PERSON=(”COMPUTER”,”92_2”,”LI LIN”,21)成员的表示:PERSON%CLASS=“92_2”PERSON%NAME=“LI LIN”主程序其他限制主程序的可执行部分不能包含有RETURN语句或者ENTRY语句。
程序名对可执行程序是全局的,而且不得于该可执行程序中的任何其它程序单元名、外部过程名或公用块名相同,也不得于主程序内的任何局部名相同。
在主程序的作用范围内的说明不得包含OPTIONAL语句、INTENT语句、PUBLIC语句或它们的等价属性,在主程序内SAVE语句不起作用。
主程序内的任何内部过程的定义必须跟在CONTAINS语句之后。
Fortran复习

! Fortran 90 添加
¾real*8 a
! Fortran 77 传统方法
字符及字符串(CHARACTER)
赋值方法: ① = 设置:
② 改变字符串的一部分内容
③ 两个至多个字符串的合并(//)
3 输入命令(READ)
输入格式和输出格式的命令,是通用的 程序中的变量赋值方法:
¾程序代码设定(=,data) ¾使用Read:键盘输入、数据文件读入
2.编译器(Compiler)
编译器:把程序代码转换成目的文件(*.OBJ)或执行文件〔*.EXE) 的工具。 它有很多编译选项,不同设置,编译出不同的机器码。
最常见的两种编译格式(Windows):
―– Debug调试功能强,但编译文件执行效率较差。(适合调试阶段) ―– ReIease编译文件的执行效率好。(适合执行阶段)
– UNIT:输出位置(当该值为6和*时,输出到默认位置:屏幕;其他为 输出到文件)(完整功能参见P236) – FMT:输出格式(当该值为*时, 输出默认格式)
简写: – write (*,*) “String” (以默认格式输出屏幕) – write (10,200) “String”(以行号200的format
A~Z 及 a~z (英文字母大小写不区分)
0~9
+加号 - 减号 *星号 /斜线 =等号 .小数点 (左括号 ) 右括号 <小于 > 大于 :冒号 ” 引号 ’单引号?问号 ,逗号 ;分号 !叹号 $ 货币符号 &英语and % 百分号 _下划线 空格
2. 书面格式
Fortran程序编写格式有两种:
把大程序拆解成许多小文件来编写,使程序设计模块化, 不仅节约程序编译调试时间,也利于程序发展和升级。 不同语言程序代码所生成的OBJ文件链接成一个执行文件, 利于不同语言的综合应用。
Fortran复习

Fortran复习Fortran 复习题⽬类型:1、选择题2、填空题3、简答题4、编程题样题⼀、选择题1.下列名称中,符合FORTRAN 90命名规则的是。
A. a-b-cB. $123C. length_1D. date.year 2.关于FORTRAN 90程序单元,以下四种说法中正确的是。
A.⼀个FORTRAN 90程序由多个程序单元组成,其中有⼀个且只能有⼀个主程序单元B. ⼀个FORTRAN 90程序由多个程序单元组成,其中有⼀个且只能有⼀个模块单元C. ⼀个FORTRAN 90程序允许有多个程序单元,但每类程序单元只能有⼀个D. ⼀个FORTRAN 90程序允许有多个程序单元,但主程序单元和模块单元只能有⼀个3.关于FORTRAN 90的CASE结构,以下说法中正确的是。
A. CASE结构内必须取DEFAULT作为情况选择器的最终值结构的情况表达式不能是字符类型结构的情况表达式和情况选择器的取值类型必须相同结构的不同情况选择器取值可以重复4.已知数组说明REAL A(20:22,0:9,-3:-1),数组A的数组元素个数是。
A.164 B.360 C.450 D.90 5.⼦程序的形式参数(虚拟变元或哑元)可以是。
A.变量名、数组名、过程名B.变量名、数组名、过程名和符号常量名C.变量名、数组名、数组⽚段、过程名D.任意符号名6. 语句OPEN(3,FILE=’ABC’,ACCESS=’DIRECT’,RECL=40)打开的是⽂件。
A.有格式顺序存取B.⽆格式顺序存取C.有格式直接存取D.⽆格式直接存取7、下列关于"SUBROUTINE MAP(X,Y)"语句⾏的叙述中,不正确的是( )A) 这是⼦程序的第⼀个语句 B) 字符串"MAP"是⼦程序名C) 变量X是⼦程序的形参D)⼦程序执⾏后,MAP将返回整型数据8、 FORTRAN表达式"2/4+0.5"的值是( )A) 0.5 B) 1 C) 1.0 D) 09、阅读下列FORTRAN程序:PI=3.14159265WRITE(*,'(F7.4) ')PIEND程序运⾏后输出结果是( )A) 3.142 B) 3.1415 C) 0.31416 D) 3.141610、圆的直径存放在整型变量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)11、要判断"⽉收⼊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. 500012、下列不是FORTRAN常量的是( )A) (3.0,4.0) B) 3.1416D+00 C) 2/3 D) 'Very good!'13、阅读下列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.014、在FORTRAN中,下列运算符的优先顺序是( )A) 逻辑运算,关系运算,算术运算 B) 关系运算,逻辑运算,算术运算C)算术运算,关系运算,逻辑运算 D) 关系运算,算术运算,逻辑运算15、使⽤FORTRAN内部函数时,所给的⾃变量( )A) 只能是常量 B) 只能是变量C) 只能是常量或者变量D)可以是常量、变量或者表达式16、设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.)17、下列输出语句⾏中正确的是( )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,318、给定下列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)19、阅读下列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 420、阅读下列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 11⼆、填空题1、下列FORTRAN函数⼦程序的功能是⽤以下公式计算⼀组数据Z1,Z2,…,Zn的标准差σ:σ2=(Z12 +Z22+…+Zn2)/n-[(Z1+Z2+…+Zn)/n]2请在程序中的下划线处填⼊合适的内容。
Fortran-第三讲(含习题课与实验一)

PROGRAM test_cycle INTEGER ::i DO i=1,5 IF (i==3) CYCLE WRITE (*,*) i END DO WRITE (*,*) ‘End of loop!’ END PROGRAM test_cycle
3.4 例程
计算1到100之间所有个位数不为6的数的和
INTEGER ::i=1,s=0 DO
s=s+i IF (i==100) EXIT i=i+1
END DO
例3.1.2:令s=1+2+3+…+n,求满足 s>5000的最小n值:
INTEGER ::i=1,s=0 DO
s=s+i IF (s>5000) EXIT i=i+1
END DO WRITE (*,*) i,s
3.3 例程
用计数循环的方法来计算s=1+2+...+100
!例程3_3_1.f90 PROGRAM example3_3_1 INTEGER :: i,s=0 DO i=1,100 s=s+i END DO WRITE(*,*) i,s END PROGRAM example3_3_1
3.4 CYCLE语句
[名称:] DO … … IF (逻辑表达式) CYCLE [名称] … … IF (逻辑表达式) EXIT [名称] … … END DO [名称]
CYCLE EXIT后面的名称是可选项,但是如果使用的话,必须和DO语句上的保持一致
3.7 嵌套循环
一个循环可以完全嵌入另外一个循环,这 种情况叫循环的嵌套
起名字: 如果交换END DO后面的inner与outer, 会出错,嵌套必须是完全包含
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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前均有一空格。