FORTRAN90习题
FORTRAN90试题_3_

FORTRAN90试题_3_计算机基础部分单项选择题(每题1分,共⼗分)(⼀)微型机的性能指标主要取决于 1 。
1.A) 内存 B) 中央处理器 C) 硬盘 D) 显⽰卡(⼆)与⼗进制数35等值的⼆进制数为 2 。
2.A) 100011 B) 110001 C) 11101 D) 101011 (三)硬盘⼯作时,应尤其注意防⽌ 3 。
3.A) 空⽓潮湿 B) 空⽓中的尘埃 C) 光线直射 D) 强烈震动(四)下列选项中, 4 不属于系统软件。
4.A) C 语⾔编译程序B)Windows C) Unix D)Office (五)计算机联⽹的主要⽬的是 5 。
5.A) 数度快 B) 资源共享 C) 精度⾼ D) 容量⼤(六)下列⽹络的IP 地址中, 6 正确的是。
6.A) 202.245.101.201 B) 204.256.9.101 C) 202.155.98.C D) 249.220.258.202(七)在多媒体计算机系统中,不能⽤于存储多媒体信息的是 7 。
7.A) 光缆 B)光盘 C) 硬盘 D) 磁带(⼋)计算机病毒不能通过 8 传播。
8.A) 硬盘 B) 优盘 C) D 打印机 D) ⽹络(九)在Windows 98中,将⼀个应⽤程序窗⼝最⼩化后,该应⽤程序 9 。
9.A) 任在后台运⾏ B) 暂时停⽌运⾏ C) 完全停⽌运⾏ D) 从任务栏退出(⼗)在Windows 环境下,若要将当前窗⼝存⼊剪贴板,则可以按 10 。
10.A) Ctrl + Print Screen B) Alt + Print Screen C) Shift + Print Screen D) Print ScreenFORTRAN90语⾔⼀、语⾔基础单项选择(每题2分,共20分)(⼀) 下⾯程序段中,错误的语句是 1 。
1. A) REAL,PARAMETER :: S = 1.73B) REAL :: X = 3 C) S = S + XD) PRINT *, S, X(⼆) ⼀个梯形的上底长为A,下底长为B,⾼为H,正确计算这个梯形⾯积的FORTRAN90表达式为 2 。
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的值为。
FORTRAN90

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.外部子程序可与主程序单元放在一个源程序文件中,但必须放在PROGRAM语句之前B.外部子程序可与主程序单元放在一个源程序文件中,但必须放在END语句之后C.外部子程序允许单独放在一个源程序文件中,并与主程序分别编译D.外部子程序允许单独放在一个源程序文件中,并与主程序单元一起编译7.关于FORTRAN90的派生(即自定义)类型,以下四种说法中错误的是。
A.派生类型定义从“TYPE 派生类型名”开始到“END TYPE'’结束B.派生类型名不得和系统内定类型同名,在同一程序单位内也不得重复定义 C.派生类型的分量(或称成员)不能是派生类型名,即派生类型不允许嵌套定义D.引用派生类型变量的成员可用“%”号或“.”号,例如abc%a,或abc.a均可8.指针声明语句为:INTEGER,POINTER ::A1,A2目标变量声明语句为:INTEGER,TARGET ::M=20,N=30下列语句执行后,M、N的值分别为。
2002FORTRAN90笔试试卷

2002FORTRAN90笔试试卷(二○○二年六月)一、选择题1.指出下列符号中,哪些是合法的FORTRAN90变量名?C ①shanghai②gh3.5③sum_1④#3a⑤abc3d⑥12⑦_m⑧a-1A.①②③④ B.⑤⑥⑦⑧C.①③⑤⑦ D.②④⑥⑧2.以下数组说明语句正确的是?A①REAL(8)A(10)②DIMENSION A(10)③REAL A(2:3,-1:-5,0:3)REAL A(10)④REAL,DIMENSION(5)::A(10)⑤REAL DIMENSION(10),PARAMETER::A=3.0⑥READ*,MREAL,DIMENSION(M)::AA.①③⑤B.②④⑥C.①②③D.④⑤⑥3.当输入123456789时,下列程序段的输出为?A INTEGER A,B,CA=2READ(*,'(I1,I<A>,I<A>)')A,B,CPRINT*,A,B,CA.123B.12345C.123456D.12345674.一个FORTRAN90源程序和工作间的文件扩展名是?D A.FOR和TXT B.FOR和LIBC.OBJ和EXED.F90和MDP5.表达式10/4/2.0的值是?B A.1 B.1.0C.1.25D.1.36.若有语句:INTEGER B(-1:-2,3:7),则数组B中所包含的元素个数为?CA.12B.10C.0D.217.设A=.TRUE.,B=.FALSE.,C=.FALSE.,D=.TRUE.,E=.EALSE.,则语句PRINT*,.NOT.A.EQV.B.OR.C.NEQV.D AND.E的结果为?C A.TRUE B.FALSEC.TD.F8.如有数组定义:TYPE STUDENTINTEGER NUMCHARACTER(8)NAMELOGICAL SEXINTEGER BIRTHDAYEND TYPETYPE(STUDENT),DIMENSION(10)::ST1则数组ST1占据多少字节的内存单元?BA.140B.200C.180D.1609.给复型变量F赋初值2.4+5.6i(i是虚数单位)的DATA语句是?AA.DATA F/(2.4,5.6)/B.DATA F/CMPLX(2.4,5.6)C.DATA F/2.4,5.6/D.DATA F/COMPLEX(2.4,5.6)/10.设有程序段:CHARACTER*14ACHARACTER*5CA=’abcdefghijklmn’C=A(:5)A(:5)=A(3:7)A(3:7)=CPRINT*,A输出结果为:DA.abcdefghijklmnB.jklmnfghiabcdeC.fghijabcdeklmnD.cdabcdehijklmn二、填空题1.以下程序运行后,输出的第一行为(1),第二行为(2),第三行为(3)。
FORTRAN90考试笔试题

FORTRAN90语言部分一、 语言基础单项选择(每题2分,共20分)(一)下面的函数计算中,错误的是 1 。
A) SQRT(9) B) REAL(9) C) ABS(9) D) MOD(9,2)(二)运行下面的程序时(P,W,X,Y 都是实型变量), READ(*,10) P,W,X,Y WRITE(*,20)X,Y10 FORMAT(1X,F3.1,3(1X,F4.2)) 20 FORMAT(1X,F4.1,3(1X,F5.2)) END如果从键盘输入数据:12345678901234567890,则输出结果为 2 。
A) 1.23 56.78 B) 12.3 67.89 C) 12.3 45.67 D) 34.5 67.89(三)数学式a acb x 24sin 22-+的FORTRAN 表达式为 3 。
A) SIN(X**2)+SQRT(B*B-4*A*C)/2/A B) SIN(X)**2+ SQRT(B*B-4*A*C)/2/AC) (SIN(X**2)+SQRT(B*B-4*A*C))/(2*A) D) (SIN(X)**2+SQRT(B*B-4*A*C))/(2*A)(四)表示条件“A 加B 大于C 并且C 大于等于D ”的FORTRAN90逻辑表达式是 4 。
A) A+B>C >=D B) (A+B)>C >=DC) A+B>C.AND. C>=DD) (A+B)>C.OR. C>=D(五)通过下面的赋值,字符变量LINE 的值是 5 。
表示空格。
CHARACTER(LEN=4)::LINE LINE=’10’A) 10 B) 1000 C) ‘10’ D) ’10 ’(六)下面对二维数组的说明语句中,正确的语句是 6 。
A) 显式形状数组的说明:REAL,DIMENSION(10,:) ::AB) 动态数组的说明方式:REAL,DIMENSION(:,:), ALLOCATE ::A C) 假定形状数组的说明:REAL,DIMENSION(10,:) ::A D) 指针数组的说明:POINTER,DIMENSION(1:3,2:4) ::A (七)下面的模块中,错误的语句是 7 。
Fortran90试题

Fortran90试题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作为情况选择器的最终值B. CASE结构的情况表达式不能是字符类型C. CASE结构的情况表达式和情况选择器的取值类型必须相同D. CASE结构的不同情况选择器取值可以重复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)⼆、填空题1、下列FORTRAN函数⼦程序的功能是⽤以下公式计算⼀组数据Z1,Z2,…,Zn的标准差σ:σ2=(Z12 +Z22+…+Zn2)/n-[(Z1+Z2+…+Zn)/n]2请在程序中的下划线处填⼊合适的内容。
FORTRAN 自测练习

一.单项选择题 1. 下列 FORTRAN 表达式正确的是 。 ① ∣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.②⑤⑥⑦ 2. FORTRAN 90 规定,变量类型声明从高到低的优先顺序是 。 A. 隐含约定(I-N 规则) 、IMPLICIT 声明、类型声明 B. 类型声明、隐含约定(I-N 规则) 、IMPLICIT 声明 C. 类型声明、IMPLICIT 声明、隐含约定(I-N 规则) D. IMPLICIT 声明、类型声明、隐含约定(I-N 规则) 3. 数组声明语句为:INTEGER num(9)=(/1,2,3,4,5,6,7,8,9/),mm(5) 下列语句中不正确的是 。 A. mm=num(5:9) B. mm=num(5:) C.mm=num(:5) D. mm=num(:) 4.下列关于子程序的有关说法中,不正确的是 。 A. 对于无参函数子程序,调用时函数名后括号可取消 B. 对于无参子例行程序,调用时子例行程序名后的括号可取消 C. 对于有参子程序,形式参数可以是子程序名 D. 对于有参子程序,形式参数可以是星号“*” 5.下列语句函数声明中,正确的是 。 A.FUN1(I,I)=5*I-10*I**2 B. FUN2(MAT(5),A)=5*A+MAT(5) C. FUN3(X,Y,5.0)=X**2+Y**2+5.0**2 D. FUN4(X,Y)=SQRT(X**2+Y**2+5.0**2) 6.下列字符串中可用作 FORTRAN90 变量名的是 。 A.ABC B. A-BCD C. 2ABC D. AB.C 7.下列数据中不符合 FORTRAN90 常数表示的为 。 A. 21.50 B. +0.0D0 C. .TRUE. D. $1000 8.执行 WRITE(8,'(1X,2I4)')(I,I=1,3)后生成 个记录。 A. 1 B. 2 C. 3 D. 12 9.数学表达式
FORTRAN同步练习

第一、二章 Fortran90基础知识考核知识点1.字符集:58个⑴A~Z(a~z)程序中不区分大小写26个⑵0~9 10个⑶_(下划线) 1个⑷空格= + - * / (),:·$ …” ;!& % > < ?21个注意:除字符常量外,不区分大小写;字符常量、注释内容可是任意字符2.各种标记:(1)注释标记:!(感叹号)后的所有字符都被编译器忽略;可独占一行,可在其它语句之后,空行为注释行(2)续行标记:&(放在尾部),但如为关键字,首尾均加&。
(3)分行标记:一行可以写多个语句,用“;”(分号)分隔3.独立程序单位种类及个数(1)主程序(个数:1)单位定义语句为PROGRAM名字(2)外部子程序(个数:0-n):外部函数子程FUNCTION;外部子例行子程序SUBROUTINE (3)模块(个数:0-n)单位定义语句为MODULE名字(4)数据块程序单元(个数:0-n)注意:可执行程序一定含有一个主程序单位主程序单位定义语句当单位结束语句为END或ENDPROGRAM时可省略。
子程序单位定义语句不可省略4.语句分类及判定:语句行:参与编译可执行语句:输入语句、输出语句、赋值语句、程序控制语句非执行语句:类型说明语句、接口块、模块中的语句非语句行(注释行):(1)无继续行(2)不参与编译、运行(3)可出现在任何位臵上(4)空行为注释行5.名字的命名规则:一般要知名达意(1)字母、数字、下划线组成(2)字母开头(3)长度1~31(4)名字中不能含有空格同步练习一、选择题1.以下独立程序单位中有时可省略单位定义语句的是______。
A. 主程序单位 B.外部函数辅程序单位 C.外部子例行程序单位 D.模块单位2.fortran90程序有若干个独立的程序单位组成,以下四组中均不是独立的程序单位的是______。
A.系统提供的内部函数、接口块、内部子程序过程B.函数辅程序单位、主程序单位C.模块、子程序辅程序单位、内部函数过程D.函数辅程序单位、子程序辅程序单位3.下列说法中正确的是:______。
2014春f90笔试卷

第二部分 FORTRAN90程序设计一、选择题(用答题卡答题,答案依次填在21~30答题号内)21. 以下几组FORTRAN90关键字中,全部用于描述(数据)属性的是 21 .A. DIMENSION、ALLOCATE、POINTERB. INTENT、DEALLOCATE、TARGETC. PARAMETER、USE、MODULED. ALLOCATABLE、EXTERNAL、INTENT22. 以下描述各种功能的程序块中,不属于FORTRAN90独立程序单位的是 22 .A.PROGRAM main ………… END PROGRAM mainB.INTERFACE OPERATER(……) …… END INTERFACEC.SUBROUTINE sub(……) …… END SUBROUTINE subD.MODULE abc ………… END MODULE abc23.某程序单位的开头有如下四条说明语句,编译时错误将出现在语句 23 .① IMPLICIT NONE② PARAMETER (r=12.2)③ REAL,PARAMETER:: pi=3.1415926④ REAL(4),PARAMETER:: s=pi*r*rA. ①B. ②和④C. ③D. ④24.自定义逻辑运算符.XOR.(异或):仅当a、b之一是真时a.XOR.b为真.以下程序段输出结果为 24 .INTEGER:: i=1,j=2,k=3,m=4PRINT*,i+j>k .XOR. k+j>=mA. TRUEB. FALSEC. TD. F25.欲定义符号名a为二维、实型、动态数组,以下说明语句中正确的是 25 .A. REAL(4),DIMENSION(:,:),ALLOCATABLE::aB. REAL(4),DIMENSION(:,:),ALLOCATE::aC. REAL(4),DIMENSION(:),ALLOCATABLE::aD. REAL(4),DIMENSION(:),ALLOCATED::a26.自定义(派生)类型staff如下:TYPE staffCHARACTER (LEN = 20)::first_name,surnameINTEGER::age,working_yearsEND TYPE staff以下能将变量staff_person说明为staff类型的说明语句是26 .A. staff::staff_personB. TYPE(staff)::staff_personC. TYPE staff::staff_personD. staff TYPE::staff_person27.若过程说明中有:SUBROUTINE sub(a,result)REAL::a(2,2,2),result主调程序单位中有语句:REAL::x(7),resultCALL sub(x,result)则在过程调用时实元数组的元素x(7)对应于哑元数组a的元素 27 .A. a (1,1,1)B. a (2,2,1)C. a (2,1,2)D. a (1,2,2)28. 要认定数组a和b形状相同,必须符合条件: 28 .4 / 8A. 维数、各维的长度相同、维界不必相同B. 维数、各维的长度相同、维界也必须相同C. 维数、总长度相同、各维维界不必相同D. 维数、总长度相同、各维长度不必相同29. 关于过程和模块,以下说法中错误的是 29 .A.过程是可执行的独立程序单位,模块是不可执行的独立程序单位B.外部过程是可执行的独立程序单位,模块是不可执行的独立程序单位C.模块内可定义内部过程,外部过程内也可定义内部过程,D.模块内的变元可供使用它的程序单位共享,外部过程内变元(局部于过程)不能共享30. 以下带有控制信息表的读写语句中,错误的是30 .A. READ(FMT=*,UNIT=2,IOSTAT=ios)a,b,c,i,j,kB. READ(UNIT=2,FMT=’(3A6,3I4)’,REC=number)a,b,c,i,j,kC. WRITE(UNIT=*,FMT=’(3A6,3I4)’,REC=number)a,b,c,i,j,kD. WRITE(IOSTAT=ios,UNIT=3,REC=number)a,b,c,i,j,k二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行)1. 以下程序执行后,输出的第二行是(1) , 第三行是 (2) , 第四行是 (3) .PROGRAM half_fibo_matrixINTEGER,DIMENSION(1:4,1:4)::fiboINTEGER::i,j,k,summafibo=0DO i=1,4DO j=1,4IF(j==i) fibo(i,j)=1IF(j==i-1) fibo(i,j)=2ENDDOENDDODO i=3,4DO j=1,i-2summa=0DO k=1,i-1summa=summa+fibo(k,j)IF(i==k+1) summa=summa+fibo(k,j)ENDDOfibo(i,j)=summaENDDOENDDOPRINT '(1X,4I3)',((fibo(i,j),j=1,4),i=1,4)END PROGRAM half_fibo_matrix2 . 以下程序执行后,输出的第一行是 (4) ,第二行是 (5) .PROGRAM recursiveIMPLICIT NONEPRINT'(I4)',f(3),f(5)5 / 8CONTAINSRECURSIVE FUNCTION f(n) RESULT(m)INTEGER,INTENT(in)::nINTEGER::mIF(n==0 .OR. n==1) THENm=2ELSEm=f(n-1)+2*f(n-2)-1ENDIFEND FUNCTION fEND PROGRAM recursive3. 以下程序执行后,输出的第一行是(6),第二行是(7) .PROGRAM mainIMPLICIT NONEINTEGER::ar1(2,2),ar2(4),ar3(2,4),i,jar1=RESHAPE((/1,2,3,4/),(/2,2/))ar2=RESHAPE(ar1,(/4/))ar3=RESHAPE((/ar2,(/5,6,7,8/)/),(/2,4/))PRINT '(2X,4I3)',((ar3(i,j),j=1,4),i=1,2)END PROGRAM main4. 以下程序执行后,输出的第一行是 (8) ,第二行是 (9) .PROGRAM procedureIMPLICIT NONEREAL::c,s,t,x,pi=3.1416INTEGER::funcs=0.5; t=2.5; x=2.7func=INT(x)CALL sub(t,s*SIN(pi/6),c,func)PRINT '(F5.2)',cCALL sub(s*t,x,c,INT(x))PRINT '(F5.2)',cCONTAINSSUBROUTINE sub(a, b, c, func)INTEGER::funcREAL::a,b,cc=a**func+b**funcEND SUBROUTINE subEND PROGRAM procedure5. 以下程序执行后,输出的第一行是(10) ,第二行是(11) . PROGRAM mainINTERFACE OPERATOR (.c.)6 / 8FUNCTION cent(x)REAL,INTENT(in)::xREAL::centEND FUNCTION centEND INTERFACEREAL::a,bCHARACTER(len=50)::fmtfmt='(" Convert ",f7.4," to percent:",f8.2,"%")'a = 0.5678; b=12.321WRITE (*,fmt) a, .C.aWRITE (*,fmt) b, .C.bEND PROGRAM main!FUNCTION cent(x) RESULT(cent_value)IMPLICIT NONEREAL,INTENT(in)::xREAL::cent_valuecent_value=x*100.0END FUNCTION cent6. 以下程序执行后,输出的第一行是(12),第二行是(13) . PROGRAM dysTYPE studentCHARACTER(len=8)::nameINTEGER::ageEND TYPE studentINTEGER::iTYPE(student),DIMENSION(3)::ss(1)=student('Mary',19)s(2).name ='Jhon's(2).age=20s(3).name='Jack's(3).age=18WRITE (*,'(A,I5)')(s(i),i=1,3)END PROGRAM dys7. 以下程序执行后,输出的第一行是(14),第四行是(15) . PROGRAM ptrIMPLICIT NONETYPE rowINTEGER,DIMENSION(:),POINTER::r7 / 8END TYPEINTEGER,PARAMETER::n=4TYPE(row),DIMENSION(n)::tINTEGER::iDO i=1,nALLOCATE(t(i)%r(1:i))t(i).r(1:i)=iCALL print(t(i))ENDDOCONTAINSSUBROUTINE print(t)TYPE(row)::tPRINT '(4I4)',t.rEND SUBROUTINE printEND PROGRAM ptr8.完善以下程序.【算法与功能提示】求非线性方程f(x)=0的实根的Stefensen 法如下:假定已经找到所求根附近的一个近似值x0;用下述公式来修正近似值:xn+1=xn-f(xn)/g(xn),n=0,1,2,3,……,其中g(x)=(f(x+f(x))-f(x))/f(x)当f(x n+1)的绝对值小于1E-6时,可取x n+1为近似根.程序中将求根过程定义成递归函数过程,其内f(x)是哑过程,必须对它作外部过程的说明,xtry记录逐次修正的结果,rt是根的近似值.本程序求f(x)=(x/2)2-cosx-e x=0的一个实根.PROGRAM mainIMPLICIT NONEREAL,EXTERNAL::yREAL:: (16)READ(*,*)x0 !input –2.5rt=root(x0,y) !the approximate root is –1.36183WRITE(*,'('' root='',F8.5)')rtEND PROGRAM main!RECURSIVE FUNCTION root(x0,f) RESULT(rt)IMPLICIT NONEREAL::x0,x,xtry,ftry,gtry,eps=1E-6REAL,EXTERNAL::fx=x0DO WHILE( (17) )ftry=f(x)gtry= (18)xtry=x-ftry/gtry8 / 8IF( (19) )THENrt=xtry; EXITELSEx=xtryrt= (20)ENDIFENDDOEND FUNCTION root!FUNCTION y(x) RESULT(u)REAL::x,valueu=(x/2)**2-cos(x)-exp(x)END FUNCTION y9.完善以下程序.【算法与功能提示】将元素已经按升序排列的数组a和b进行重组:a、b中所有较小的元素按升序集中放在a数组,所有较大元素按升序集中放在b数组.方法是:将a中的每个元素从小到大逐个与b(1)比较,若某个元素大于b(1),则交换两元素的内容,此时新的b(1)在数组b中不一定最小,因此,将数组b的元素自b(1)开始,相邻元素两两比较,当出现需要交换两元素的内容以保持b的有序性时,立即交换,此过程重复进行到b的末尾元素;然后再取a数组下一个元素与b(1)比较.内部子程序过程swap用于交换两个数组元素内容.PROGRAM MainIMPLICIT NONE(21) ::m=5,n=10REAL(4),DIMENSION(:),ALLOCATABLE::a,b ! a和b 是动态数组(22)a=(/2.33,4.55,6.77,8.99,10.99/)b=(/1.25,2.36,3.47,4.58,5.69,6.70,7.89,8.91,9.22,10.98/)CALL Merge(a,b,m,n)WRITE(*,FMT='(1X,"Merge ARRAY="/(5F6.2))')a,bEND PROGRAM Main!SUBROUTINE Merge(a,b,m,n)IMPLICIT NONEINTEGER(2)::i,j,k,m,nREAL(4)::a(m),b(n)out: DO i=1,mIF( (23) )THENCALL swap(a(i),b(1))DO j=1,n-1IF( (24) )THENCALL swap(b(j),b(j+1))ELSE9 / 8CYCLE outENDIFENDDOENDIFENDDO outCONTAINSSUBROUTINE swap(x,y)REAL(4)::x,y,temptemp=xx=y(25)END SUBROUTINE swapEND SUBROUTINE Merge10.完善以下程序.【算法与功能提示】判断一段英文(或单词)是否回文.这里所指回文(palindrome)是指一段文字(或单词)不论从左向右读,还是从右向左读,其意义相同(忽略字母大小写的区别和空格).例如,Radar是回文, r adar也是回文.为此,先将一段文字的所有英文字母压缩在一起(去掉全部空格),再判断新的字符串是否是回文.以下程序中外部逻辑函数Palindrome用来判断line是否回文,内部子程序过程compress用于压缩一段文字.PROGRAM MainCHARACTER(len=50)::tmp,line='Able was I ere I saw Elba'! 要按原样输出!LOGICAL(1)::Palindrometmp=lineIF( (26) ) THENWRITE(*,FMT='(A," is a palindrome")')TRIM(line)ELSEWRITE(*,FMT='(A," is not a palindrome")')TRIM(line)ENDIFEND PROGRAM Main!FUNCTION Palindrome(line) RESULT(palindrome_result)IMPLICIT NONELOGICAL(1)::palindrome_resultCHARACTER(len=*)::lineINTEGER(1)::left,right,i,kCALL compressk=LEN_TRIM(line)Palindrome_result=.TRUE.DO i= (27)left=ICHAR(line(i:i))right=ICHAR( (28) )IF(left/=right .AND.ABS(left-right)/=32)THEN10 / 8Palindrome_result= (29) ; EXITENDIFENDDOCONTAINSSUBROUTINE compressINTEGER::i,j,k,countk=LEN_TRIM(line); i=1; count=0 !i标记空格位置,count记录空格个数out: DOIF(line(i:i)/=' ') THENi=i+1; CYCLEELSEIF(line(i:i)==' ') THENcount= (30)DO j=i,k-countline(j:j)=line(j+1:j+1)ENDDOIF(i>=k-count+1) EXIT outline(k-count+1:k-count+1)=' 'ENDIFENDDO outEND SUBROUTINE compressEND FUNCTION Palindrome11 / 8。
FORTRAN90上机试题

试卷1下面程序的功能是用指针的方法将整型变量A,B的内容互换,请改错。
PROGRAM EXIMPLICIT NONEINTEGER::A,B,C !<==ERROR1 integer,target::a,b,cINTEGER,POINTER::P1,P2,P3READ *,A,BC=BP1=>C !<==ERROR2 p1=>aP2=>BP3=B !<==ERROR3 p3=>cPRINT *,A,BP2=P1P1=P3PRINT *,A,BEND下面程序的功能是用折半法查找方法在给定的一维有序数组(升序)中查找给定的元素X,返回该元素在数组中的下标。
如果数组中没有该元素,则返回‘NO FOUND’,请填空。
PROGRAM EXIMPLICIT NONEINTEGER, DIMENSION(6)::AINTEGER::X,K,J,L,SREAD *,XA=(/2,4,6,9,15,24/)K=1J=6DO WHILE (K<=J)L=(K+J)/2IF (A(L)==X) THEN !<==BLANK1S=LEXITELSE IF (A(L)>X) THENJ=L-1ELSEK= L+1 !<==BLANK2ENDIFENDDOIF (K<=J) THEN !<==BLANK3PRINT *, SELSEPRINT *,'NO FOUND'END IFEND编程,求500-700之间各位数字之和等于12的整数的个数及和。
PROGRAM TESTIMPLICIT NONEINTEGER::N,S !N是存放个数的变量,S是存放和的变量!!考生做题开始!!************ BEGIN *******************INTEGER::A,B,C,IS=0;N=0DO I=500,700A=I/100B=MOD(I/10,10)C=MOD(I,10) THENN=N+1S=S+IEND IFEND DOPRINT*,N,S!!************ END *******************CALL OUTPRINT(N,S) !N为符合条件的结果!!考生做题结束,以下部分请勿修改CONTAINSSUBROUTINE OUTPRINT(X,Y)CHARACTER (LEN =10):: FILENAMEINTEGER:: X,YFILENAME ='RESULT.TXT'OPEN(UNIT = 1 ,FILE = FILENAME ,ACCESS = 'SEQUENTIAL' , STATUS ='REPLACE') WRITE(1,"(1X,'N=',I4,3X,'S=',I6)") X,YENDFILE(UNIT=1)CLOSE(UNIT=1)END SUBROUTINE OUTPRINTEND !程序结束试卷2下面程序的功能是从键盘输入任意10个整型数,使其按从小到大的鼠须排列并输出(冒泡法),请改错。
FORTRAN90练习题

一.选择题1.语句OPEN(3,FILE=‘ABC’)打开的是文件。
A.有格式顺序存取B.无格式顺序存取C.有格式直接存取D.无格式直接存取2.调用子程序时,假设实参可以是常数、内在函数及表达式,其相应形参是。
A.变量名B.数组名C.过程名D.*3.下列数据中,不符合FORTRAN90常量表示的是。
A.-25.6 B.3.2344D0 C.’BOOT’’=’D.TRUE4.圆心在原点的两个同心圆,半径分别为2和4。
描述点(X,Y)在小圆外,大圆内(包括在两圆周上)的表达式是。
A.ABS(X)<=4.0 .AND. ABS(Y)>=2.0 B.2.0>=SQRT(X*X+Y*Y)<=4.0C.X*X+Y*Y<=16.0 .AND. X*X+Y*Y>=4.0 D.(X.OR.Y)>=2.0 .AND. (X .OR.Y)<=4.05.下列字符串中可用作FORTRAN90变量名的是。
A.ABC B. A-BCD C. 2ABC D. AB.C6.下列数据中不符合FORTRAN90常数表示的为。
A. 21.50B. +0.0D0C. .TRUE.D. $10007.表达式:-B+SQRT(B*B-4.0*A*C).LE.3E-5值的类型是。
A. 逻辑型B. 整型C. 实型D. 字符型8.按隐含约定,设X=2.5,Y=1.0,Z=3.0, 执行赋值语句I=X+Y/Z后I的值为。
A. 2.0B. 2C. 3D. 3.09.下列语句中那个语句是错误的是。
A. READ(*,*)XB. READ*,XC. PRINT(*,*)XD. PRINT *,X10.说明语句REAL A(1:2,-1:10)说明数组A的元素个数为。
A. 11B. 12C. 22D. 2411.M能被N整除的FORTRAN表达式为。
A. (M/M)=0B. (M MOD N).EQ.0C. (M/N).EQ.0D. MOD(M,N).EQ.012.以下关于FORTRAN90中有关虚参、实参的说法中,不正确的是。
2006年FORTRAN90试卷

一、 选择题 1.关于 FORTRAN90 中接口块的使用,以下说法错误的是 (1) 。 B A.接口块必须以 INTERFACE 开始,END INTERFACE 结束 B.接口块可以出现在任何程序单元中 C.接口块中不能包含 ENTRY 语句、DATA 语句或语句函数 D.接口块可用来说明一个外部过程或虚过程,并为之提供显式的调用接口 2.关于 FORTRAN90 中模块的使用,以下说法错误的是 (2) 。 A A.模块名可以与其他程序单元名相同 B.模块的说明部分不能包含 ENTRY 或 FORMAT 语句 C.模块内定义的变量可供使用该模块的所有程序单位调用 D.一个模块能够使用另一个模块 3.设有数组说明语句:REAL,DIMENSION(-2:2,0:4,-1:2): :a,则数组元素 a(1,1,1) 是第 (3) 个元素。 C A.58 B. 85 C. 59 D. 95 4.关于 FORTRAN90 的 CASE 语句,下列说法中错误的是 (4) 。 A A、在一个 CASE 结构中,CASE DEFAULT 语句可出现多次 B、对于给定的 CASE 结构,CASE 值范围不可以有重叠 C、每个 CASE 的值必须与表达式的类型相同 D、CASE 语句只能出现在 SELECT CASE ……END SELECT 结构中 5.关于 FORTRAN90 的 CONTAINS 语句,下列说法中错误的是 (5) 。 D A.CONTAINS 语句用来分隔程序的主体部分与内部过程 B.CONTAINS 结构必须位于程序中可执行部分和 END 语句之间 C.内部过程中不能再包含 CONTAINS 结构 D.CONTAINS 语句是可执行语句 6.FORTRAN90中的内部函数DOT_PRODUCT是求向量的点积,则 DOT_PRODUCT((/1,2,3/), (/4,5,6/))的值等于 (6) 。 C A.21 B. 9 C. 32 D. 23 7.已知数组说明 REAL (8) ,DIMENSION (3:10, -1:3)::ARRAY,则 SIZE (ARRAY)的值 等于 (7) 。 B A.20 B. 40 C. 30 D. 10 8.关于 FORTRAN90 的静态变量,以下说法正确的是 (8) 。 A A.静态变量用 STATIC 属性说明 B.静态变量相当于符号常量 C.只有数组才能说明为静态变量 D.静态变量只能用于主程序中 9.关于 FORTRAN90 中主程序的说法,错误的是 (9) 。 B A.主程序的名字必须是惟一的 B.主程序中必须有 END 语句,且 END 语句中必须包含主程序名 C.主程序中不能包含 RETURN 或 ENTRY 语句 D.主程序不能递归 10.设有如下语句: REAL,TARGET : : E=2.36 REAL,POINTER: :C, D C => E; D => E
2005年FORTRAN90试卷

FORTRAN90试卷(2005年5月)一、选择题1、关于EXTERNAL语句,以下使用错误的是。
D A.EXTERNAL sub1 B. REAL, EXTERNAL:: func1C. EXTERNAL sinD. REAL, EXTERNAL,TARGET:: func12、在FORTRAN 90 中,变量可以是有定义的或是无定义的。
关于变量的定义状态,以下说法中错误的是。
CA.零大小的数组分配时有定义 B. 零长度的字符串有定义C. 具有INTENT(OUT)属性的虚元有定义D. 输入语句成功执行后,其中的变量有定义3、关于FORTRAN 90的动态数组,以下说法错误的是。
DA. 动态数组用ALLOCATABLE属性定义B. 动态数组的大小可以为0C. 可以用ALLOCA TE语句给动态数组分配内存空间D. 动态数组可以作为虚参变量4、关于指针变量,以下说法错误的是。
AA. 指针变量只能是整型或实型B. 指针变量在分配内存空间前不可以引用C. 指针变量可以访问其他变量的部分或全部D. 几个指针可以共享同一个目标变量5、关于FORTRAN 90的内部过程,以下说法错误的是。
BA. 内部过程应放在CONTAINS语句和主程序的END语句之间B. 内部过程的返回值可以有多个C. 内部过程内部不可以再出现CONTAINS语句D. 内部过程中可以使用主程序所定义的变量6、关于FORTRAN 90的外部过程,以下说法错误的是。
CA. 外部过程可以和主程序放在一个文件中,也可以作为单独的文件B. 外部过程的内部可以再包含内部过程C. 外部过程中可以使用主程序所定义的变量D. 外部过程的返回值可以是一个或多个7、FORTRAN 90中增加了逻辑异或运算符XOR,逻辑异或运算可描述为“a XOR b”,其中a和b为参加运算的两个操作数,运算结果为当且仅当a、b两个操作数中只有一个为真时才为真,其他情况下均为假。
fortran90例子

fortran90例子例1、输入M个实数,将其相加,并输出其和。
PROGRAM example_1Implicit noneInteger ::n,mReal ::t=0,a=0Read *,mDoRead *, aT=t+aN=n+1If (n>=m) exitEnd doPrint*,tEnd program example_1例2、求∑I!的阶乘(I=4,8)。
Function factor(n) result(fac_result) Implicit noneInteger ,intent(in)::nInteger,intent(out)::fac_resultInteger::IFac_result=1Do I=1,nFac_result=fac_result*IEnd doEnd function factorProgram example_2Implicit noneInteger ::factor,s=0,IDo I=4,8S=s+factor(i)End doPrint*,sEnd program example_2例3、输入一个数,判断他是否能被3整除,并输出相应的信息。
Program judgeImplicit noneInteger :: n,mRead*,nM=mod(n,3)Select case(m) IF (M= =0) THENCase (0)Print*,’yes’Print*,’YES’Case default ELSEPrint*,’no’Print*,’NO’End select END IFEnd program judge例4、判断一个整数N是否为素数PROGRAM primeImplicit noneInteger ::n,I,mRead*,nM= sqrt(real(n))Do I=2,mIf(mod(n,i)= =0) exitEnd doIf (I>m) thenPrint*,’yes’ElsePrin t*,’no’end ifend program prime例5、求N的阶乘PROGRAM example_5Implicit noneInteger::n,I=0,fac=1Read*,nDo while (I<7)I=I+1Fac=fac*IEnd doEnd program example_5例6、求出全部的水仙花数。
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中数据输出域宽是字符。
FORTRAN90试题_4_

FORTRAN90语言部分一、 语言基础单项选择(每题2分,共20分)(一)下面的函数计算中,错误的是 1 。
A) SQRT(9) B) REAL(9) C) ABS(9) D) MOD(9,2)(二)运行下面的程序时(P,W,X,Y 都是实型变量), READ(*,10) P,W,X,Y WRITE(*,20)X,Y10 FORMAT(1X,F3.1,3(1X,F4.2)) 20 FORMAT(1X,F4.1,3(1X,F5.2)) END如果从键盘输入数据:12345678901234567890,则输出结果为 2 。
A) 1.23 56.78 B) 12.3 67.89 C) 12.3 45.67 D) 34.5 67.89(三)数学式a acb x 24sin22-+的FORTRAN 表达式为 3 。
A) SIN(X**2)+SQRT(B*B-4*A*C)/2/A B) SIN(X)**2+ SQRT(B*B-4*A*C)/2/AC) (SIN(X**2)+SQRT(B*B-4*A*C))/(2*A) D) (SIN(X)**2+SQRT(B*B-4*A*C))/(2*A)(四)表示条件“A 加B 大于C 并且C 大于等于D ”的FORTRAN90逻辑表达式是 4 。
A) A+B>C >=D B) (A+B)>C >=DC) A+B>C.AND. C>=DD) (A+B)>C.OR. C>=D(五)通过下面的赋值,字符变量LINE 的值是 5 。
表示空格。
CHARACTER(LEN=4)::LINE LINE=’10’ A) 10 B) 1000 C) ‘10’ D) ’10 ’(六)下面对二维数组的说明语句中,正确的语句是 6 。
A) 显式形状数组的说明:REAL,DIMENSION(10,:) ::AB) 动态数组的说明方式:REAL,DIMENSION(:,:), ALLOCATE ::A C) 假定形状数组的说明:REAL,DIMENSION(10,:) ::A D) 指针数组的说明:POINTER,DIMENSION(1:3,2:4) ::A (七)下面的模块中,错误的语句是 7 。
FORTRAN90第5章

n
PROGRAM MAIN IMPLICIT NONE INTEGER::N,I=1 REAL::T,S=0.0 READ *,N 计算通项 DO T=1.0/I 累加求数列和 S=S+T I=I+1 项数 IF(I>N) EXIT ENDDO PRINT *,"SUM=",S 循环终止条件 END PROGRAM MAIN
I>n-1
logical::l;integer::n,i read*,n l=.true. !先假定N是素数 do i=2,n-1 ! Sqrt(real(n)) if (mod(n,i)==0)l=.false. enddo if(l==.true.)then print *,"是素数" else print *,"不是素数" endif end
语句执行次数:
循环体语句次数:int((u2-u1+u3)/u3)
u3不允许为零(可正、可负),否则循环不
能终止
DO I = 2 , 20 , 2 则 r = 10 DO A= 0.5 , 6.6 , 1.3 ‘A实型 则 r = 5 DO I = 0.5 , 6.6 , 1.3 ’I整型 则 r = 7
?
5.3.3 带循环变量的DO结构有关规定
1、循环变量在循环体内可以被引用,不能被重新赋值 DO I=3,6 I=5 !错误 J=J+I
ENDDO
end
2、循环变量的初值u1、终值u2和步长u3只是在循环 入口有效,进入循环后,它的值与循环次数无关。 即循环的初值、终值和步长一旦确定,永不再变。
第5章 循环结构程序设计
FORTRAN_90程序设计试题A(2021格式)

FORTRAN_90程序设计试题A(2021格式)装订线2021 年 6 月 24 日输入7,8,9,10�L兰州交通大学试卷(主卷)密封线课程名称: FORTRAN90程序设计(A)教学班中学生序号一、选择题(每题1分,共30分)方式将FORTRAN源程序变成目标程序。
1.采用 [A] 编辑 [B] 编译 [C] 汇编[D] 解释 2.一个完整的FORTRAN源程序的组成不应该是。
[A] 只有一个主程序没有子程序:号 [B] 只有子程序而没有主程序学 [C] 有一个主程序和一个子程序 [D] 有一个主程序和若干子程序点 3.下面符合FORTRAN90定义规则的变量名是。
端两 [A] X_C2 [B] X+Y [C] U.S.A [D] M 线 4.下列说法中,正确的是。
黑过 [A] 在FORTRAN程序中,各类语句的位置是任意的。
超得 [B] 任何一个FORTARN语句在程序执行时都会产生某种机器操作。
不 [C] 有些FORTRAN语句在程序执行时不产生任何机器操作。
下上 [D] 在FORTRAN中“=”表示相等的意思,如A=B表示变量A与B的值相等。
: 5.下列四个实数中,哪一个是合法实数。
求要 [A] E5 [B] $125.5 [C] 12.3E3.5 [D] +189.写: 6.下面赋值语句中正确的语句是。
书名题 [A] M*N=(X-Y)/Z [B] +R=A+B/C [C] X=Y=Z-1.0[D] Y=A*B/C/D 姓考 7.设变量A,B,I,J的类型符合I-N规则,且A=2.0,B=2.5,I=1,J=2,则表达式:I/J*A+B*I/J的值为。
[A] 0 [B] 0.25 [C] 1.25 [D]2.25 8.下列语句中有错误的语句是。
[A] F=(A+B)/(C+D) [B] T=SQRT(8.0) [C] P=MOD(M,5.1) [D] K=MAX(A,B,C) 9.运行下列程序后,输出的结果是。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
,第三行是
。
,第二行是
,第三行是
。
DO K=1,5 IF(K<=3)THEN DO I=1,K N=N+1 A(I,K-I+1)=N ENDDO ELSE DO I=1,6-K N=N+1 A(K-3+I,4-I)=N ENDDO ENDIF ENDDO DO K=1,3 DO I=1,3 PRINT'(I3\)',A(K,I); ENDDO PRINT* ENDDO END PROGRAMMAIN 执行以上程序后,A(1,3)的值是 5. 阅读以下程序: sum=1.0; ID=1.0; K=1 10 K=(-1.0)*K ID=ID*2.0 sum+K/ID IF(ID.LE.7) GOTO 10 WRITE(*,*) sum WRITE(*,*) ID END 执行以上程序后,输出的第一行是 6. 阅读以下程序: REAL A(10),IP DO K=1,10 A(K)=IP(K*2)/IP(K) ENDDO WRITE(*,100) A(1),A(2) 100 FORMAT(1X,2F3.1) END REAL FUNCTION IP(N) M=0 DO K=1,N M=M+K ENDDO IP=M END 执行以上程序后,A(1)的值是 7.求多项式a0+a1x
。
读入的第一个记录为1,-1,2,-2,第二个记录为3,-3,4,-4,5,-5。 INTEGER K(4),M(2,3) READ*,K CALL sub(K,M) PRINT"(1X,I2)",K(3),M(1,3) END SUBROUTINE sub(K,M) INTEGER K(2,2),M(6),I,J READ*,M DO I=1,2 DO J=1,2 K(I,J)=K(I,J)-M(J) M(I)=M(I)+K(I,J) ENDDO ENDDO DO I=3,6 M(I)=M(I-1)+M(I-2) ENDDO END 3.下列程序运行后,A(1,4)= ,A(5,3)= 。 INTEGER A(5,5),T,I,J,K,M DO I=1,5 DO J=1,5 A(I,J)=J ENDDO DO K=1,I-1 T=A(I,5) DO M=4,1,-1 A(I,M+1)=A(I,M) ENDDO A(I,1)=T ENDDO ENDDO PRINT"(1X,I2)",A(1,4),A(5,3) END 4.下列程序运行后输出结果:M= ,X= 。 OPEN(1,FILE='A.DAT') WRITE(1,'(2I1/F3.1)') 2,3,4.5 CALL ABC END SUBROUTINE ABC REAL X INTEGER M BACKSPACE(1) READ(1,"(F3.1)") X M=X WRITE(*,"(1X,'M=',I2,'X=',F3.1)") M,X END 5.下列程序运行时,输入3,5,F 时,输出结果中 B(5,3)= ; 输入3,5,T 时,输出结果中 B(5,3)= ; MODULE AA
FORTRAN90习题
一、选择题(从4个可选答案中选择一个正确答案添入空白处)
1.下列字符串中可用作 FORTRAN90变量名的是 。 A.ABC B. A-BCD C. 2ABC D. AB.C 2.下列数据中不符合 FORTRAN90常数表示的为 。 A. 21.50 B. +0.0D0 C. .TRUE. D. $1000 3.执行 WRITE(8,'(1X,2I4)')(I,I=1,3)后生成 个记录。 A. 1 B. 2 C. 3 D. 12 4.数学表达式的 FORTRAN 表达式为 。 A. SQRT(X)**3)*LOG(X**2+Y**2)/X B. SQRT(X**3)*LOG((X**2+Y**2)/X) C. (SQRT(X))**3*LN((X**2+Y**2)/X) D. SQRT(X**3)*LN(((X**2)+Y**2)/X) 5.表达式:-B+SQRT(B*B-4.0*A*C).LE.3E-5值的类型是 。 A. 逻辑型 B. 整型 C. 实型 D. 字符型 6.下面格式输入语句 READ(*,‘(3F3.1)’)X 如果输入 1234.567 则 X 的值为 。 A. 123.0 B. 12.3 C. 1234. D. 1234.567 7.FORTRAN90语言中变量名长度为 个字符。 A. 1-8 B. 8 C. 1-31 D. 31 8.按隐含约定,设 X=2.5,Y=1.0,Z=3.0 执行赋值语句 I=X+Y/Z 后 I 的值为 。 A. 2.0 B. 2 C. 3 D. 3.0 9.下列语句中那个语句是错误的是 。 A. READ(*,*)X B. READ*,X C. PRINT(*,*)X D. PRINT *,X 10.说明语句 REAL A(1:2,-1:10)说明数组 A 的元素个数为 。 A. 11 B. 12 C. 22 D. 24 11.M 能被 N 整除的 FORTRAN 表达式为 。 A. (M/M)=0 B. (M MOD N).EQ.0 C. (M/N).EQ.0 D. MOD(M,N).EQ.0 12.以下关于接口块的说法中,不正确的是 。 A.通知编译程序主调程序调用过程时所需要的接口信息。 B. 可用于重载赋值 C. 接口块中可以包含可执行语句 D.可用于自定义运算符 13.以下关于 FORTRAN90中有关哑元(形参)、实元(实参)说法中,不正确的是 A.实元和哑元个数一定要相等 B.实元和哑元个数可以不相等 C.哑元可以用可调数组 D.哑元可以用假定形状数组 14.下列关键字中不能用于说明变量属性的是 。 A.SAVE B.OPTIONAL C.CYCLE D.INTENT 15.以下关于派生类型的说法中,不正确的是 。 A. 派生类型说明中,不能有任何可执行语句 B. 可将一个派生类型变量的值整体赋给另一个派生类型变量 C. 派生类型成员为字符型时,长度可以不确定 D. 派生类型成员可以是自身同类型的指针
1
,A(2,2)的值是
,A(3,1)的值是
。
,第二行是
,A(2)的值是
n-1 n
。 之和的外部函数
+…+an-1x +anx
数组 A 表示多项式系数,变量 T 表示x ,S 表示多项式之和。 FUNCTION p(A,N,x) RESULT(r_p) S= T=1.0 DO I=1,N T= S=S+A(I)*T PRINT*,'S=',S END 8. 用选择法,将 N 个整数按从小到大排列。 PARAMETER(numl=500) INTEGER num(numl) READ*,N,(num(I), ) DO I=1,N-1 min=I DO J= (22) IF(num(min) .GT. num(J)) ENDDO IF(min .NE. I)THEN it=num(I) num(I)=num(min) ENDIF ENDDO PRINT*,(num(I),I=1,N) END 9. 以下程序是通过超载赋值(=)运算符,实现将字符的 ASCII 码赋给整型变量的功能. SUBROUTINE CTOI(I,C) INTEGER ,INTENT(OUT):: I CHARACTER ,INTENT(IN):: C I= END SUBROUTINE PROGRAMMAIN INTERFACE ASSIGNMENT(=) SUBROUTINE INTEGER ,INTENT(OUT):: I CHARACTER ,INTENT(IN):: C ENDSUBROUTINE INTEGER I CHARACTER:: C='A' I=C PRINT*,C,I END PROGRAMMAIN 10.求 N!。 PRINT*,'Input N?' READ *,N
N=RESHAPE((/1,2,3,4,5,6,7,8,9,10,11,12,13,14,13,12,11,10,9,8,7,6,5,4,3,2,1/),(/3,3,3/))
A.N(1,1,-1)与 N(-1,-1,0) B.N(1,1,0)与 N(-1,-1,0) C.N(1,1,1)与 N(1,-1,-1) D.N(1,1,-1)与 N(-1,-1,1) 6.下列数据中,不符合 FORTRAN90常量表示的是 。 A.-25.6 B.3.2344D0 C.’BOOT’’=’ D.TRUE 7.运行下列程序时输入数据5E2后,其输出结果是 。 READ‘(E5.2)’,X WRITE(*,‘(1X,F6.2)’)X END A.5.00 B.500.00 C.0.05 D.****** 8.圆心在原点的两个同心圆,半径分别为2和4。描述点(X,Y)在小圆外,大圆内(包括在两 圆周上)的表达式是 。 A.ABS(X)<=4.0 .AND. ABS(Y)>=2.0 B.2.0>=SQRT(X*X+Y*Y)<=4.0 C.X*X+Y*Y<=16.0 .AND. X*X+Y*Y>=4.0 D. (X .OR. Y)>=2.0 .AND.(X .OR. Y)<=4.0 9.以下关于指针说法不正确的是 。 A. 指针变量可以指向任何变量 B. 一个指针变量可以同时指向多个变 量 C. 多个指针变量可以同时指同向一个变量 D. 指针变量的内容是地址或变量名称 10.以下关于接口块说法不正确的 。 A. 当外部过程名作为实参时,一定要用接口块 B. 重载运算符时,一定要用接口 块 C. 调用子程序时,实参和形参的次序及个数不同时,一定要用接口块 D. 外部函数的返回值为数组时,一定要用接口块
。
二、填空题(在空白处添入正确内容)
1.阅读以下程序: FUNCTION fac(A) RESULT(rfac) INTEGER A,rfac INTEGER,SAVE::C=3 B=1