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, 会出错,嵌套必须是完全包含
fortran课后习题答案解析

fortran课后习题答案解析第一章 FORTRAN程序设计基础第15页 1、21.简述程序设计的步骤。
“程序设计”:反映了利用计算机解决问题的全过程,通常要经过以下四个基本步骤:(1)分析问题,确定数学模型或方法;(2)设计算法,画出流程图;(3)选择编程工具,编写程序;(4)调试程序,分析输出结果。
2. 什么是算法?它有何特征?如何描述算法?解决问题的方法和步骤称为算法。
算法的五个特征:(1) 有穷性。
(2) 确定性。
(3) 有效性。
(4) 要有数据输入。
(5) 要有结果输出。
算法的描述有许多方法,常用的有:自然语言、一般流程图、N -S图等。
第二章顺序结构程序设计第29页 1、2、3、4、5、6、7、8、91.简述符号常量与变量的区别?符号常量在程序运行过程中其值不能改变。
变量在程序运行过程中其值可以改变。
2. 下列符号中为合法的FORTRAN 90标识符的有哪些?(1) A123B (2) M%10 (3) X_C2 (4) 5YZ(5) X+Y (6) F(X) (7) COS(X) (8) A.2(9) ‘A’ONE (10) U.S.S.R.(11) min*2 (12) PRINT3. 下列数据中哪一些是合法的FORTRAN常量?(1) 9,87 (2) .0 (3) 25.82(4) -356231(5) 3.57*E2 (6) 3.57E2.1 (7) 3.57E+2(8) 3,57E-24. 已知A=2,B=3,C=5(REAL);且I=2,J=3(INTEGER),求下列表达式的值:(1) A*B+C 表达式的值: 11 (2) A*(B+C) 表达式的值: 16(3) B/C*A 表达式的值: 1.2 (4) B/(C*A) 表达式的值: 0.3(5) A/I/J 表达式的值: 0.33 (6) I/J/A 表达式的值: 0(7) A*B**I/A**J*2 表达式的值: 4.5(8) C+(B/A)**3/B*2. 表达式的值: 7.25(9) A**B**I 表达式的值: 5125. 将下列数学表达式写成相应的FORTRAN表达式:(1) 1E-2 (2)(-B+SQRT(B*B-4*A*C)/(2*A)(3) 1+X+X*X/2+X**3/2/3(4) COS(ATAN((A**3+B**3)**(1.0/3)/(C*C+1)))(5) EXP(A*X**2+B*X+C)(6) COS(X*Y/SQRT(X*X+Y*Y))**36. 用FORTRAN语句完成下列操作:(1) 将变量I的值增加1。
fortran复习

Chap.2 Fortran 95 基础知识基本知识,如:字符集、名称、关键字、程序单元 、书写格式、数据类型。
名称:①名称只能由英文字母、数字、下划线符“_”和美元符号“$”组成。
②名称第一个字符必须是英文字母。
③名称不能超过31个字符。
书写格式:自由格式,固定格式3个通用标志符:注释标志符“!”、语句分隔标志符“;”和续行标志符“&”。
chap.3 内部数据类型与顺序结构程序设计常量和变量:语法描述;精度和取值范围(整型,实型,逻辑型,字符型,复数)如常量的写法;变量的申明,什么时候取消IN 规则数据类型表达式 (级别)算术表达式:算术运算符的优先级和结合规则;操作数的类型转换 字符表达式 关系表达式逻辑表达式 关系表达式和逻辑表达式联合结算结果chap.4 数据有格式输入输出I 编辑符F 编辑符E 编辑符A 编辑符 FORMAT 语句,READ 语句,WRITE 语句chap.5 选择结构程序设计chap.6 循环结构程序设计EXIT语句的功能是:在循环体执行过程中强制性终止整个循环语句的执行,转循环语句后的第一条语句执行。
只能在DO和DO WHILE循环语句内使用EXIT语句。
CYCLE语句的功能是:在循环体执行过程中强制性终止本次循环体的执行,转循环语句后的开始语句(DO语句)执行。
只能在DO和DO WHILE循环语句内使用CYCLE语句。
循环嵌套是指在一个循环结构或循环语句的循环体中又含有循环结构或循环语句。
chap.7 数组1 数组声明用类型声明语句进行数组声明INTEGER N(4),M(5,8)用DIMENSION语句进行数组声明DIMENSION num(3),day(12)用类型声明和DIMENSION属性进行数组声明INTEGER,DIMENSION(3):: num,total 维数及元素计算2 数组元素引用3 数组的逻辑结构和存储结构4 数组的输入输出1) 使用DO循环语句输入输出数组DO i=1,MREAD *,A(i)ENDDO2) 使用隐含DO循环子句输入输出数组READ *,(score(i),i=1,N)3) 使用数组名或数组片段输入输出数组READ *,score5 给数组赋初值1) 通过数组构造器给数组赋初值num1=(/2,4,6,8,10/) num1=(/(i,I=2,10,2)/)num1=(/2,4,(i,I=6,10,2)/)RESHAPEINTEGER B(2,3), C(8)B= RESHAPE((/1, 2, 3, 4, 5, 6/),(/2,3/))2) 通过DATA语句给数组赋初值6 动态数组INTEGER,DIMENSION(:),ALLOCATABLE :: numREAL,DIMENSION(:,:),ALLOCATABLE :: arrn=4;m=5ALLOCATE(num(5),arr(n,m))查找(折半查找)和排序chap.8 函数与子程序函数和子例行程序的区别1.语句函数的定义和使用F(x1,x2,x3)=3.14159*(x1+x2/60.0+x3/3600.0)/180.0●一个语句函数只能用一个语句定义完。
大学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复习(2011年)[1]
![FORTRAN复习(2011年)[1]](https://img.taocdn.com/s3/m/cb93038ccc22bcd126ff0c79.png)
FORTRAN复习要点2011年6月1.隐含规则,注意整数相除,商为整数,注意表达式运算的优先级,赋值时两端类型不一致的情况。
2.逻辑表达式的运算结果,运算顺序:非、与、或3.哑元与实元的对应关系,哑元是数组名时,实元可以是什么;哑元的种类。
4.FORTRAN中的常量形式,包括数值型的指数形式、字符型、逻辑型。
5.格式描述符的使用形式。
6.定义数组的方法,注意:用类型语句和dimension语句定义数组的一般形式;数组元素个数的计算。
7.数组的初始化形式。
8.结构化程序的三种基本结构;程序设计的准则。
9.Open语句的形式,注意缺省项的含义。
10.注意“//“(字符串连接)、char和ichar的功能,“A”和“a”的ASCII 编码及关系。
11.do循环的控制变量怎样变化,注意循环正常结束和中途退出时控制变量的取值。
(共30分)12.函数子程序的递归调用。
13.利用循环控制变量的值形成二维数组,注意用隐循环输出二维数组、输出格式。
14.子例行子程序的调用,注意哑实结合时的数据传递。
(仔细)15.子例行子程序和函数子程序的调用,注意地址结合、值的结合,公用语句传递数据。
(共20分)16.42页第二题,可以处理多个数,注意中途退出循环的方法。
17.冒泡排序子程序。
18.以若干个数为一个记录写入顺序文件(注意open语句的写法),并求每个记录中的最大(小)数。
(课堂讲过的)19.输出杨辉三角形,注意,杨辉三角形的形成方法。
20.用子例行子程序求矩阵中某一列最小(大)元素及其行号。
(共32分)21.二叉树的顺序存储结构;二叉树的先序、中序和后序遍历。
(共8分)22.牛顿迭代法求方程的根。
注意,一阶导数用人工求,迭代法函数求值导数求值要编函数子程序,通过子程序调用求解。
(共10分)注意I F、DO、DOWHILE及输入输出等基本语句的掌握。
Fortran复习

格式输出编辑符的写法与含义1.整型编辑符Iw.m W 数据总宽度M 当数据宽度不够M位,则用0补齐例如I5.3当数据宽度小于m时,则用0补齐A=12 :▋▋012 当数据宽度大于或等于m时,m不起作用A=1234 :▋1234 当数据宽度不够W位,则右对齐输出A=123 :▋▋123当数据宽度大于W位,则显示W个星号A=123456 : ***** 2.实型编辑符F w.d w为数据总宽度;d为小数位数;例如F6.3w宽度包含小数点和d以及整数部分的宽度A=1.1234 :▋1.123A=1.1235 :▋1.124当整数部分的宽度大于规定的宽度时,输出W个星号A=112.123 :******当整数部分宽度大于或等于W时,输出W个星号A=123456.12 :******A=12345.123 :******3.逻辑编辑符Lw w表示数据将占用的宽度逻辑值仅显示T、F,在整个宽度范围中,右对齐,左边补空格4.字符编辑符A 自动采用字符型变量的长度作为它的宽度,即W=LENAw w表示指定的宽度例如A5字符串长度小于w,右对齐,左边补空格STR=‘ABC’:▋▋ABC字符串长度大于w,显示左边W个字符STR=‘ABCDEFG’:ABCDE5.输出时执行过程:编辑符的个数与变量个数不一致时的处理方法例如:fmt=’(f4.2,f6.2)’Print ’(f4.2,f6.2)’,a 多余的编辑符不起作用Print ’(f4.2,f6.2)’,a,b,c 重复使用格式串,且变量c换行输出Print ’(f4.2,2(f6.2,f5.2),f4.1)’,a,b,c,d,e,f,g 变量g对应编辑符F6.2,并换行输出格式输入编辑符写法及含义:Iw Fw.d Lw A Aw 按宽度w截取后,赋值1.实型编辑符:Fw.dRead ’(f4.2,f6.2)’,a,b✧对f允许输入整型数据——加工小数点后赋值(不带小数点输入)1234567890123456 :a=12.34 b=5678.9✧对f有自带小数点优先原则(带小数点输入,d不起作用)12.34.56789.789 :a=12.3 b=4.5678✧输入数据串中包含逗号(截取过程中,如果遇到逗号,表示数据截取结束)1.2,3.56,6.3 : a=1.2 b=3.561.23,4.56,7.89 : a=1.23 b=0✧对f允许输入指数形式的实数——加工小数点、化小数形式赋值12345126e3 :a=12.34 b=51260.0✧短区输入法(表控格式输入)注意:何时F编辑符中的D起作用一、选择题1.以下FORTRAN90变量名中正确的是:______(多选)。
注册设备工程师考试FORTRAN 复习培训讲义

FORTRAN 复习复习分为三个部分:1、计算机基础知识——软件、硬件组成及功能、数制的转换2、Windows 操作系统——基本知识、系统启动、有关目录文件、磁盘及其他操作、网络功能3、计算机程序设计语言——FORTRAN语言程序结构与基本规定、数据、变量、数组、指针、赋值语句、输入输出语句、转移语句、条件语句、选择语句、循环语句、函数子程序(或称过程)、顺序文件、随机文件1-1计算机的分类与发展1946年美国宾西法尼亚大学与摩尔工程学院合作,创造了世界上第一台电子计算机ENICA。
它占地160平方米,重30吨,5000/秒加法运算,用了18000多只电子管。
从第一台计算机的诞生至今,共经历了以下几个阶段:第一代:电子管时代(1946——1957)采用电子管作为逻辑元件,应用:军事、科学计算。
第二代:晶体管时代(1958——1964)采用晶体管作为逻辑元件,应用:军事、尖端技术、气象、数据处理等。
第三代:中小规模集成电路计算机时代(1965——1971),采用中小规模集成电路作为逻辑元件,软件方面出现了操作系统以及结构化、模块化程序设计方法。
软硬件都向通用化、系列化、标准化的方向发展。
第四代:大规模和超大规模集成电路计算机时代(1972——今),在几个平方毫米大的硅片上集成了上亿个电子器件。
体积小、价格不断下降、应用广泛。
现代计算机的分类:巨型机、小巨型机、大型主机、小型机、工作站、个人计算机现代计算机发展的趋势:1、巨型化——指高速、大存储容量、万亿/秒计算速度2、微型化——微型机可渗透到仪表、家用电器、导弹弹头等中、小型机无法进入的领地。
3、多媒体化——集声音、图形、图像、文字等为一体,使人能以更接近自然方式与计算机交换信息。
4、网络化——把国家、地区、单位和个人计算机连成一体。
5、智能化——让计算机来模拟人的感觉、行为、思维过程的机理,使它具备视觉、听觉、语言、行为、思维、逻辑推理、学习、证明等能力,形成智能型计算机。
Fortran模拟试卷1-8备课讲稿

Fortran模拟试卷1-8备课讲稿F o r t r a n模拟试卷1-8FORTRAN90模拟测验一(笔试部分)一.选择题(从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)是存储结构中第个元素。
- 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前均有一空格。