2003FORTRAN90笔试试卷
- 格式:rtf
- 大小:97.82 KB
- 文档页数:6
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)一、选择题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)笔试模拟试题(带答案)一.概念选择题(单选题,将正确的答案填入括号内。
每题1分,共15分)1. 已知整型变量L=5,M=13,N=4,表达式L*M/N 、L/N*M 和M/N*L 的值分别是(A )。
A )16 13 15B )16.25 16.25 16.25C )16.0 13.0 15.0D )16 16 162.将数学式)||(ln 215-+e x 改写为FORTRAN 表达式,正确的是( D )。
A) 1/2*(LOG(ABS(X))+E**(-5))B) 1.0/2*(LN(ABS(X))+E**-5)C) 1/2.0*(LN(ABS(X))+E -5)D) 1.0/2*(LOG(ABS(X))+EXP(-5))3. 设A=.TRUE., B=.FALSE., C=.FALSE., 逻辑表达式(A.OR.B).AND.C 与A.OR..NOT.B 的值是( B )。
A) .T. 与 .F. B).F. 与 .T. C) .T. 与 .T. D) .F. 与 .F.4. 数组REAL A (0:5,-1:5)的元素个数是 ( D )。
A )25B )30C )36D )425. 下列数组说明符中错误的是( A )。
A )K(3:2,1:2)B ) K(-1:1,2)C )K(-2:2,-1:1)D )K(2:2,5)6. 关于USE 语句的正确说法是( C )。
A)USE 语句是可执行语句 B)用USE 语句可以代替INCLUDE 语句C)USE 语句必须放在程序单元体的开头 D)USE 语句的位置任意7. 语句OPEN (9,FILE=‘DATA.TXT ’)打开的是 ( B ) 文件。
A )无格式顺序B )有格式顺序C )无格式直接D )有格式直接8. 阅读下列FORTRAN 程序, 程序运行时执行循环体的次数是( A )。
X=0DO L=10, 5, 1X=X+1.0ENDDOENDA) 0 B) 1 C) 6 D) 无穷9.结构化程序设计中有三种基本结构,下列不属于三种基本设计结构的是( D )。
fortran考试题及答案分开1. 以下哪个选项是Fortran语言中正确的整型变量声明?A. INTEGER xB. REAL xC. COMPLEX xD. LOGICAL x答案:A2. Fortran程序中,哪个关键字用于定义数组?A. ARRAYB. LISTC. VECTORD. DIMENSION答案:D3. 在Fortran中,以下哪个选项是正确的条件语句?A. IF (x > 0) THENPRINT *, 'x is positive'B. IF x > 0 THENPRINT *, 'x is positive'C. IF (x > 0)PRINT *, 'x is positive'D. IF x > 0PRINT *, 'x is positive'答案:A4. Fortran中用于循环结构的关键字是什么?A. LOOPB. ITERATEC. DOD. FOR答案:C5. 如何在Fortran程序中包含另一个文件?A. 使用INCLUDE语句B. 使用IMPORT语句C. 使用INCLUDE关键字D. 使用IMPORT关键字答案:A6. Fortran中,哪个函数用于计算数组元素的总和?A. SUMB. TOTALC. AGGREGATED. ACCUMULATE答案:A7. 在Fortran中,如何声明一个具有默认值的变量?A. INTEGER :: x = 0B. INTEGER x = 0C. INTEGER x DEFAULT 0D. INTEGER x = DEFAULT 0答案:A8. Fortran程序中的主程序必须以哪个关键字开始?A. PROGRAMB. MAINC. PROCEDURED. FUNCTION答案:A9. 在Fortran中,如何声明一个二维数组?A. INTEGER :: matrix(10, 10)B. INTEGER :: matrix[10][10]C. INTEGER :: matrix(10)(10)D. INTEGER :: matrix(10,10)答案:A10. Fortran中用于计算数组元素平均值的函数是什么?A. AVGB. MEANC. AVERAGED. SUM答案:C。
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语言部分一、 语言基础单项选择(每题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 。
FORTRAN_90程序设计试题A(2022格式)装订线2022年6月24日输入7,8,9,10↙兰州交通大学试卷(主卷)密封线课程名称:FORTRAN90程序设计(A)教学班中学生序号一、选择题(每题1分,共30分)方式将FORTRAN源程序变成目标程序。
1.采用[A]编辑[B]编译[C]汇编[D]解释2.一个完整的FORTRAN源程序的组成不应该是[A]只有一个主程序没有子程序:号[B]只有子程序而没有主程序学[C]有一个主程序和一个子程序[D]有一个主程序和若干子程序点3.下面符合FORTRAN90定义规则的变量名是端两[A]某_C2[B]某+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=(某-Y)/Z[B]+R=A+B/C[C]某=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.258.下列语句中有错误的语句是[A]F=(A+B)/(C+D)[B]T=SQRT(8.0)[C]P=MOD(M,5.1)[D]K=MA某(A,B,C)9.运行下列程序后,输出的结果是INTEGERM,NREAD某,M,N,N,M:M=M+N级N=M+N班PRINT某,M,NEND共8页第1页[A]1523[B]1519[C]1919[D]192810.以下不合法的FORTRAN90表达式是[A]A=B.EQV.C>D[D]A.AND.B.AND.C11.以下能表示条件“某、Y同时满足大于0且小于等于10”的逻辑表达式是[A](0[B](某.GT.0.AND.某.LE.10).AND.(Y.GT.0.AND.Y.LE.10)[C](某.GT.0.AND.某.LE.10).OR.(Y.GT.0.AND.Y.LE.10)[D]012.如果A=2.5,B=7.5,C=5.0,D=6.0,L=.TRUE.,M=.FLASE.,下列值为TRUE的逻辑表达式为[A].NOT.L.OR.C.EQ.D.AND.M[B](A+B).LT.(C+D).AND.A.EQ.3.5[C](A .LT.B).AND.(B.LT.A)[D]A+B/2.0.NE.C-D.OR.C.NE.D13.下列各逻辑IF语句中正确的是[A]IF(某>0.0).AND.(某<1.0)Y=1.0[B]IF(某<0.0)THENY=-1.0[C]IF(某>0.0.AND.某<1.0)Y=1.0[D]IF(0.0READ(某,某)N某=1.0IF(N>20)某=3某某-1.0IF(N>5)某=2某某+1.0IF(N>0)某=2某某PRINT某,某END如果从键盘输入20↙,最后输出的某值为[A]1.0[B]2.0[C]6.0[D]10.015.对于DO语句:“DOI=1.2,5.6,2.4”,可计算出循环次数为[A]2次[B]3次[C]4次[D]5次16.下列程序执行后,输出的结果为N=0DOK=1,3共8页第2页装订线密封线兰州交通大学试卷(附卷)N=N+K勤学习祝成功守纪律莫舞弊[C]C=’BEIJI□□NEW’[D]C=’IJINGNEW□□’ENDDOPRINT某,N,KEND[A]3,3[B]3,4[C]6,3[D]6,417.下列程序中,哪一行语句有错误1PROGRAMP012INTEGER::I,S=03DOI=1,5,2:4I=I+1号5S=S+I学6ENDDO7ENDPROGRAMP01点[A]2[B]3[C]4[D]7端两18.阅读下列FORTRAN90程序段线黑INTEGER::I,J,K=0过DOI=1,5,2超得DOJ=2,6,3不K=K+1下ENDDO上:ENDDO求上述程序段执行完后K的值是:要写[A]6[B]4[C]2[D]9名书姓题19.设有字符串变量CH=’Thi’’Fortranprogram.‘,则LEN(CH)=考[A]21[B]22[C]23[D]2420.阅读以下程序段:CHARACTERAA=CHAR(ICHAR(’0’)+3)PRINT某,A输出的A为:[A]0[B]1[C]2[D]321.执行下列程序段后,变量C的值为(□表示空格)CHARACTER某5A,B,C某10A=’BEIJING’:B=’NEW’级C=A//B班[A]C=’BEIJINEW□□’[B]C=’IJING□□NEW’共8页第3页22.下面的格式输入语句:READ(某,20)某,Y20FORMAT(2F4.1)如果在执行时,由键盘输入:1122334455667788后,则Y的值是______。
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[1]1.下列叙述中,正确的是(D )A.语句标号的大小影响程度执行的顺序B.程序完全按语句出现的先后顺序执行C.不同程序单位不能有相同的语句标号D.同一程序单位不能有相同的语句标号2.下列标识符中,不能作为合法的FORTRAN90标识符的是( C) A.A3_B3 B.VOID C._123 D.IF3.下列哪一个为正确的常量( D )A.123,000 B. 3.5E+2.5 C. TRUE D. “HELLO”4.若A=2,B=2,I=3,则表达式A**B**I的值为( C )A. 64B.12C.256 D16.5.圆的直径存放在整型变量D之中,下列计算圆面积的表达式中正确的是( D )A. 3.14159*(D/2)*(D/2)B. 3.14159*(D*D/4)C. 3.14159*(D/2)**2D. 3.14159*D*D/46.下列运算符中,运算优先级最高的是(B )A. 关系运算B. 算术运算C. 逻辑非运算D. 逻辑与运算7.下列FORTRAN的表达式中值为0.5的是( C)A.MOD(4.8,0.5) B.100/20/10 C.50.0/4/25 D.MOD (15,10)/108.下列是完整的FORTRAN程序,编译时出错的语句是( C )A.PROGRAM PRINT B.PARAMETER (PI=3.1415926)C.PI=PI+1 D.WRITE(*,*)SIN(PI+0.5)END9.变量的类型定义中,优先级由高到低的顺序为( A )A.类型说明语句、IMPLICIT 说明语句、隐含约定B.隐含约定、IMPLICIT 说明语句、类型说明语句C.IMPLICIT 说明语句、类型说明语句、隐含约定D.隐含约定、类型说明语句、IMPLICIT 说明语句10.“两整数M与N不能同时小于零”的FORTRAN表达式( D ) A.M>=0.AND.N>=0B.(M.GE.0.AND.N.LT.0).OR.(M.LT.0.AND.N.GE.0)C.(M.LE.0.AND.N.LE.0).OR.(M.LE.0.AND.N.GE.0)D.M.GE.0.OR.N.GE.011.下列逻辑表达式描述的是(不会) X.GT.3.AND.X.LT.10.AND.MOD(X,3).NE.0.OR.X.EQ.2.OR.X.EQ.3 A.10以内的素数B.10以内的合数C.10以内的奇数D.10以内的偶数12.下面正确的逻辑IF语句是(C )A.IF(X.EQ.Y)THEN GOTO 10 B.IF M.LT.N PRINT*,M C.IF(ABS(X).LT.1E-6) A=1 D.IF(A.AND.(A.LE.0.0) A=313.下列语句中正确的是( C )A.DATA A,B,C/3*(-10.0)/ B.READ(*,*)(N,A(K),K=1,N)C.WRITE(*,*)(10,A(K),K=1,10) D.READ(*,*)N,N+114. 如果J是整型变量,则循环语句:DO J=5.5,-1.5,-2.5 所执行的循环次数是(C)A.4 B.3 C.2 D.115.如有语言:INTEGER B (-1:-2,3:7),则数组B 中所含的元素个数为( 无答案) A.0 B.10 C.12 D.2116. 关于FORTRAN90 的CASE结构,SELECT CASE(表达式)中的表达式的数据类型不允许为( A)A. 实型B. 字符型C. 实型D. 逻辑性17.下面符号在FORTRAN90 中表示续行符的是( B)A.! B. & C. # D. %18. 下列程序段中,错误的语句是( D)A.PARAMETER(N=10)B. INTEGER:: M=20C.M=M+ND.PRINT(*, *)M, N19.A. FUNCTIONB. SUBROUTINEC. BLOCK DA TAD. SUB20.下列语句中,错误的语句是( D)。
试卷1下面程序的功能是用指针的方法将整型变量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个整型数,使其按从小到大的鼠须排列并输出(冒泡法),请改错。
一.选择题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中有关虚参、实参的说法中,不正确的是。
一、判断题(共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属性。
FORTRAN90等级考试评分标准
一、笔试:60分
计算机基础选择题:20分
选择题用铅笔将答案涂在答题卡上(机器改)选择题:10 分
读程序写结果15分
填空题做在答题纸上(人工改)程序填空:15分
二、上机:40分
(1)改错题:20分
源程序存在:2分
录入完毕:2分
结果文件存在:2分
结果正确:2分
改正错误:4分×3错=12分(其中语法错1处,语义错2处)
注意:结果文件MYF1.OUT文件。
(2)编程题:20分
源程序存在:2分
数据文件存在:1分
数据文件正确:2分
结果文件存在:2分
结果文件正确:2分
主辅结构正确:2分
OPEN语句正确:1分
读/写语句正确:1分
循环语句正确:1分
调用子程序正确:1分
虚实结合:2分
算法正确:3分。
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程序设计复习题一、选择题B (1)下列各FORTRAN表达式中合法的是A) S+T*2P >= B) .NOT. (A*B+C)C) A2+B2/(C+D) <= D) (A+B).NOT.A*B.GT.(.NOT.只跟一个表达式)C (2)数学式(3/5)ex+y的FORTRAN表达式是A) 3*EXP(X+Y)/5 B) 3*E* *(X+Y)/C) (3/5)*EXP(X+Y)D) 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.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) .AND.. B) 10.0C) D)提示:A)相当于 .AND.(.NOT.())D (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+"的值是A) B) 1 C) D) 0提示:2/4默认等于整型,=》D (12)FORTRAN表达式"MOD,"的值是A) B)0.0 C) D)A (13下列FORTRAN运算符中,优先级最低的是A)逻辑运算符.AND. B)算术运算符*C)关系运算符 >= D)算术运算符+A (14下列语句函数的定义中正确的是A)F(X,Y)=(X+Y)/(X*Y)+ B)FUNCTION FUN(I,J,K)=3*I +2*J+*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)FALSE C)ˊROOT=ˊ D)ˊˊB(16)"整型变量M能被整型变量K整除"的FORTRAN77表达式是A)MOD(M,K)=0 (MOD(M,K)= =0)B)M-M/K*K .EQ. 0C)MOD(K,M)=0 D)MOD(M,K)=0 == .TRUE.C (17)设有下列数组说明语句: REAL:: A(1:10,-1:10)该数组说明语句定义了数组A 中的元素个数为 A )100 B )110 C )120 D )121 A (18)按隐含规则(默认为整型),语句IP=执行之后,IP 的值是A) 3 B) 3.1416C)D)D (19)下列数据中,不符合 FORTRAN 常量表示法的是A) B)C)‘FOOT’‘=’ D) TRUEC (20)设C 是复型变量,A 与B 为有定义的实型变量,下列赋值语句中合法的是A) C=A+BB) C=,**2) C) C=,3D-2)D) C=(A +B ,A-B )B (21)有矩阵(数组)=22221111B下列DATA 语句中正确的是A) DATA B/4*,4* B) DATA((B(I,J), J=1,4), I=1,2)/4*, 4* C) DATA B/4*,/ D) DATA((B(I,J),I=1,2), J=1,4)/4*, 4* C (21)在使用DO 循环及循环嵌套时,下列叙述中正确的是A) 不仅可以从循环体内转到循环体外,也可以从循环体外转到循环体内 B) 外循环与内循环的DO 循环控制变量可以不同.也可以相同C) 可以从循环体内转到循环体外,但不能从循环体外转到循环体内 D)DO 循环控制变量在循环体内可以再赋值,也可以被引用B (22)在FORTRAN 表达式中,各种运算的顺序是 A) 逻辑运算,关系运算,算术运算B) 算术运算,关系运算,逻辑运算C) 关系运算,逻辑运算,算术运算D) 关系运算,算术运算,逻辑运算D (23)赋值语句X=4**(6/12)=4**0=执行后,实型变量X的值是A) 2 B) 2.0 C) 1 D)D (24)为了保证正确出数据,格式编辑符中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=,, B) DO 10 K=,,C) DO 10 S=,, D) DO 10 K=,,D (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,W*W,5,,Z)(多了一个)B) CALL SS,,P,Q,R) (多了一个)C) CALL SS(F,G,,D) CALL SS*I,*J,C,D)(I,J可先赋值)A (30)在下列语句函数的定义中正确的是A) F(X,Y)=(X+Y)/(X*Y)+B) FUNCTION(I,J,K)=3*I+2*J+*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 B)27/6 C) 16** D) 4*C(34)语句K=2+**2/2执行后,整型变量 K的值是A) B) 5 C) 6D) 7C (36)适用于字符型 I/O的 FORTRAN77格式编辑将是A) B) C) A D)D (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*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) COMMONND. IF>=X<= Y=2*X+D) IF(X >= <= Y=2*X+二、阅读题1、阅读下列FORTRAN程序:program examplereal a,b,ca=b=c=write(*,"(3)") a,b,cend程序运行的结果是:2、阅读下列FORTRAN程序:program exampleinteger :: a=1integer :: b=2real :: cc=a/bwrite(*,"") cend程序运行结果是:3、阅读下列FORTRAN程序:program exampleimplicit noneinteger rain, windspeedwrite(*,*) "Rain:"read(*,*) rainwrite(*,*) "Wind:"read(*,*) windspeedIf ( rain>=500 .or. windspeed >=10 ) then write(*,*) "停止上班上课"elsewrite(*,*) "照常上班上课"end ifstopend运行上述程序时,如果从键盘输入Rain:505<回车>Wind:8<回车>则最后输出的结果为: 停止上班上课4、阅读下列FORTRAN程序:program exampleimplicit nonereal a,b,anscharacter operatorread(*,*) aread(*,"(A1)") operator read(*,*) bselect case(operator)case('+')ans = a+bcase('-')ans = a-bcase('*')ans = a*bcase('/')ans = a/bcase defaultwrite(*,"('Unknown operator ',A1)") operator stop end selectwrite(*,",A1,,'=',") a,operator,b,ansstopend运行上述程序时,如果从键盘输入100<回车><回车>200<回车>则最后输出的结果为: Unknown operator5、阅读下列FORTRAN程序:program exampleimplicit noneinteger iinteger strleninteger, parameter :: key = 2character(len=20) :: stringwrite(*,*) "Encoded string:"read(*,*) stringstrlen = len_trim(string)do i = 1, strlenstring(i:i) = char( ichar(string(i:i)) + key ) end dowrite(*,"('String:',A20)") stringstopendBCDIJK<回车>则最后输出的结果为: DEFKLM6、阅读下列FORTRAN程序:program exampleimplicit noneinteger i,jdo i=1, 2do j=2, 3, 2write(*, "(I2,I2)") i,jend dowrite(*,*) "another circle"end dostopend程序运行的结果是: 1 2another circle2 2another circle(按输出格式,1、2前均有一空格。
FORTRAN 90笔试试卷(二○○三年五月)一、选择题1、关于FORTRAN90的CASE语句,下列说法中正确的是(1)。
CA、在一个CASE结构中,CASE DEFAULT语句可出现多次B、对于给定的CASE结构,CASE值范围可以有重叠C、每个CASE 的值必须与表达式的类型相同D、如果表达式为字符型,CASE 的值可以是任意长度和类型的字符2、关于数据对象的INTENT属性,下列说法中不正确的是(2)。
BA、INTENE属性只能用于子程序中,说明虚元的意图属性B、INTENT属性也可用于具有指针类型的虚元C、INTENT属性只能是IN、OUT和INOUT三种之一D、INTENT属性可用来说明多个虚元,虚元之间用逗号分开3、关于FORTRAN90的续行符,以下说法不正确的是(3)。
DA、一条语句最多有39个续行B、在非注释行上,续行符可以出现在行尾,也可以出现在行首C、当续行符出现在注释语句中,则失去了续行的功能D、续行符后可以是空行4、关于CYCLE语句,以下说法正确的是(4)。
AA、CYCLE语句只能用于循环结构中B、CYCLE语句可用于任何语句结构中C、CYCLE语句提供了循环的出口语句D、CYCLE语句提供了循环的入口语句5、关于数据对象的OPTIONAL属性,以下说法不正确的是(5)。
BA、OPTIONAL属性只能用于子程序或接口块中B、OPTIONAL可以用于任何程序单元中C、可以用PRESENT函数测试已说明为OPTIONAL的虚元是否可用D、说明为OPTIONAL属性的虚元可以没有实元对应6、输出语句PRINT *,’’’’的输出结果是(6)。
AA、’B、’’C、’’’D、语法错7、设有数组定义INTEGER(1)A,BDIMENSION A(5),B(4,7)则在执行下列语句后,A(4)的值为(7)。
C A=8B=5A=A-B(2,1:5)A、8B、5C、3D、语法错8、关于USE语句,以下说法正确的是(8)。
BA、USE语句可以出现在程序单元的任何位置B、一个程序内可以包含多个USE语句C、带ONL Y选项的USE语句可以访问模块中的全部实体D、用USE语句访问的实体不能重新命名9、关于FORTRAN90的派生类型,以下说法错误的是(9)。
CA、派生类型是由TYPE语句定义的B、派生类型的名字不能与任何内在类型名或其他派生类型名相同C、派生类型的分量不可以是派生类型D、派生类型的分量引用可以使用符号%10、MERGE函数可以将2个同类型同形状的数组合并,其语法格式为MERGE(数组1,数组2,MASK),以下说法中错误的是(10)。
DA、MASK应当是与数组1和数组2同形状的数组B、函数根据MASK中某元素的逻辑值决定取数组1或数组2中对应元素的值C、函数值是与数组1和数组2同形状同类型的数组D、函数值是与数组1或数组2同类型的一个值11、FORTRAN90中的数组片断(即数组的一部分),可用下标三元组形式表示。
设有数组说明为B(10,6,4),则数组片断B(8:11:2,5,2:3)的结果是(11)。
A A、形状为(2,2)的数组B、形状为(2,2,2)的数组C、一维数组D、语法错12、关于FORTRAN 90的指针变量,以下说法不正确的是(12)。
CA、指针变量不能再具有INTENT属性和PARAMETER属性B、指针变量在执行指针赋值或ALLOCA TE语句之前,不占据内存空间C、指针变量可以指向任何变量D、指针变量可以用DEALLOCATE语句释放所占据的内存空间13、以下关于模块名的说法中,不正确的是(13)。
BA、模块名是全局的,所以不能和其他任何程序单元同名B、模块名可以使用任何字符C、模块名长度最多不能超过31个字符D、模块名中可以包含下划线14、以下全部属于合法的整型常数的一组是(14)。
①32,767 ②7#65 ③+8.57 ④#2F ⑤A7#2D ⑥47_2 ⑦36_3 ⑧2#101111 DA、①②③④B、⑤⑥⑦⑧C、①③⑤⑦D、②④⑥⑧15、以下全部属于合法的实型常数的一组是(14)。
①32.7_4 ②5.0E3 ③8.57 ④2E-3_4 ⑤1,234.5 ⑥4.8E48 ⑦3.6_6 ⑧$2.4 AA、①②③④B、⑤⑥⑦⑧C、①③⑤⑦D、②④⑥⑧二、填空题1、下列程序输出的第一行为(1),第三行为(2)。
答案:8 8 REAL, ALLOCATABLE :: A(:,:,:)LOGICAL, ALLOCATABLE :: MASK(:,:,:)INTEGER B(3), C(3)INTEGER IALLOCATE (A(5, 4, 3))ALLOCATE (MASK(3, 4, 5))IF(ALLOCATED(A) .AND. ALLOCATED(MASK)) THENB = SHAPE(A);C = SHAPE(MASK)DO I=1,3PRINT*, B(I)+C(I)ENDDOEND2、下列程序执行后,ARRAY(4,1)= (3),(2,3)= (5)。
IMPLICIT NONEINTEGER(1),DIMENSION(1:4,1:4)::ARRAY=0INTEGER(1)::I=1,J=1,N1=1,NC=4,KDO K=1,16ARRAY(I,J)=KIF(I<NC .AND. J==N1)THENI=I+1ELSEIF(I==NC .AND.J<NC)THENJ=J+1ELSEIF(I>N1 .AND. J==NC)THENI=I-1ELSEIF(I==N1 .AND. J>N1+1)THENJ=J-1IF(I==N1 .AND. J==N1+1)THENNC=NC-1; N1=N1+1ENDIFENDIFENDDOPRINT '(4X,4I3)',((ARRAY(I,J),J=1,4),I=1,4)END3、下列程序运行后,AR1(1,1)= (6) , AR1(1,3)= (7),AR1(2,3)= (8)。
INTEGER TSOURCE(2, 3), FSOURCE(2, 3), AR1 (2, 3) 答案:1,3,-2LOGICAL MASK(2, 3)TSOURCE = RESHAPE((/1, 4, 2, 5, 3, 6/),(/2, 3/))FSOURCE = RESHAPE((/7, 0, 8, -1, 9, -2/), (/2, 3/))MASK =RESHAPE((/.TRUE.,.FALSE.,.FALSE.,.TRUE.,.TRUE.,.FALSE./),(/2,3/))AR1 = MERGE(TSOURCE, FSOURCE, MASK)PRINT*,AR1END4、下列程序运行后,输出结果为(9)。
答案: 5.0 5.0 5.0 5.0 REAL A(3, 3), B(4)INTEGER K(4)K = (/3, 1, 1, 2/)A = 5.0B = A(3, K)PRINT*,BEND5、下列程序输出的第一行为(10),第二行为(11),第三行为(12)INTEGER, POINTER :: arrow (:)INTEGER, ALLOCATABLE, TARGET :: bullseye (:,:) 答案:5 5 5 5 ALLOCATE (arrow (1:4)) 8 1 8 1 8arrow = 5 1 8 1 8WRITE (*,'(1x,4I4)') arrowALLOCATE (bullseye (1:5,3))bullseye = 1bullseye (1:5:2,2) = 8WRITE (*,'(1x,5I4)') bullseye(:,2)arrow => bullseye (2:5,2)WRITE (*,'(1x,4I4)') arrowDEALLOCATE (arrow, bullseye)END6、下列程序输出的第一行为(13),第三行为(14),第五行为(15)。
PROGRAM TEST6IMPLICIT NONECHARACTER*3,DIMENSION(8)::letter 答案:abcdletter=(/'abc','def','ghi','jkl','mno','pqr','stu','vwx'/) ijklCALL test(letter) qrstENDSUBROUTINE TEST(SUB_LETTER)IMPLICIT NONECHARACTER*4,DIMENSION(5)::SUB_LETTERINTEGER(1)::iDO i=1,5WRITE(*,100)i,sub_letter(i)ENDDO100 FORMAT(1X,'sub_letter(',I1,')=',A4)END SUBROUTINE test7、插入排序(在输入过程中完成排序)。
以任意次序读入20个数,先将第一个数放入数组A的第一个元素中,以后读入的数应与已存入数组中的数进行比较,确定它在从小到大的排列中所应处的位置。
将该位置及其后面的元素向后推移一个位置,把新读入的数据填入空出的位置中,这样在数组A中的数总是从小到大排列的。
20个数据处理完后输出数组A。
以下程序完成此功能。
PROGRAM mainIMPLICIT NONEINTEGER,PARAMETER::n=20REAL(4),DIMENSION(n)::aREAL(4)::xINTEGER(1)::i,numnum=(16)(16) 0DO i=1,nREAD(*,*)xCALL insert(x,a,num)ENDDOWRITE(*,100)(a(i),i=1,n)100 FORMA T(1x,5F7.2)CONTAINSSUBROUTINE insert(x, a, num)IMPLICIT NONEREAL(4), DIMENSION(*)::aREAL(4)::XINTEGER(1)::num, i, posLOGICAL::searchpos=1search=.TRUE.!下列循环找出该数在数组中应处的位置DO WHILE ((17).AND. pos<=num) (17) SEARCH IF(x<a(pos)) THENsearch=.FALSE.ELSE(18)(18) pos=pos+1 ENDIFENDDO!下列循环把该位置及以后的数往后移DO i=num, pos, -1(19)(19) a(i+1)=a(i) ENDDOa(pos)=x(20)(20) num=num+1 END SUBROUTINE insertEND PROGRAM main8、下列程序用来寻找输入字符串S中互不相同的字符,并按升序存放到字符串S1中。