📄 2001年4月二级笔试试题fortran.txt
字号:
2001年4月
全国计算机等级考试二级笔试试卷
基础部分和FORTRAN语言程序设计
(考试时间性120分钟,满分100分)
一、选择题(1)~(40)题每小题1分,(41)~(50)题每小题2分,共60分)
下列各题A),B),C),D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答卡相应位置上,答在试卷上不能得分。
(1) 计算机的存储器完整的应包括
A) 软盘、硬盘 B) 磁盘、磁带、光盘
C) 内存储器、外存储器 D) RAM、ROM
(2) 计算机中运算器的作用是
A) 控制数据的输入/输出 B) 控制主存与辅存间的数据交换
C) 完成各种算术运算和逻辑运算 D) 协调和指挥整个计算机系统的操作
(3) 软磁盘处于写保护状态时,其中记录的信息
A) 绝对不会丢失
B) 不能被擦除,但能追加新信息
C) 不能通过写磁盘操作被更新
D) 不能以常规方式被删除,但可以通过操作系统的格式化功能被擦除
(4) 光盘根据其制造材料和记录信息的方式不同,一般可分为
A) CD、VCD
B) CD、VCD、DVD、MP3
C) 只读光盘、可一次性写入光盘、可擦写光盘
D) 数据盘、音频信息盘、视频信息盘
(5) 在计算机系统中,可执行程序是
A) 源代码 B) 汇编语言代码 C) 机器语言代码 D) ASCII码
(6) 计算机软件系统包括
A) 操作系统、网络软件 B) 系统软件、应用软件
C) 客户端应用软件、服务器端系统软件 D) 操作系统、应用软件和网络软件
(7) 目前,一台计算机要连入Internet,必须安装的硬件是
A) 调制解调器或网卡 B) 网络操作系统
C) 网络查询工具 D) WWW浏览器
(8) 在多媒体计算机系统中,不能存储多媒体信息的是
A) 光盘 B) 磁盘 C) 磁带 D) 光缆
(9) 要将当前盘当前目录下一个文本文件内容显示在屏幕上,正确的命令形式是
A) TYPE a*.* B) TYPE abc.exe
C) TYPE pro.c>PRN D) TYPE abc.txt
(10) 下列更改文件名的命令中正确的是
A) REN A:file1 C:F1 B) RENAME A: A:file1 C:F1
C) REN A:file1 F1 D) REN A:file1 \SUB\F1
(11) 已知A盘为DOS系统启动盘,只有A:\DOS下有自动批处理文件,其中内容为:
CD\DOS
MD USER
CD USER
由A盘启动DOS系统后,A盘的当前目录是
A) \DOS B) \DOS\USER C) \ D) \USER
(12) MS-DOS是
A) 分时操作系统 B) 分布式操作系统
C) 单用户、单任务操作系统 D) 单用户、多任务操作系统
(13) 在Windows操作系统中,不同文档之间互相复制信息需要借助于
A) 剪贴板 B) 记事本 C) 写字板 D) 磁盘缓冲区
(14) 在Windows操作系统中
A) 同一时刻可以有多个活动窗口
B) 同一时刻可以有多个应用程序在运行,但只有一个活动窗口
C) 同一时刻只能有一个打开的窗口
D) DOS应用程序窗口与Windows应用程序窗口不能同时打开着
(15) 下列叙述中正确的是
A) 所有DOS应用程序都可以在Windows操作系统中正确运行
B) 所有DOS应用程序都不能在Windows操作系统中正确运行
C) 大部分DOS应用程序可以在Windows操作系统中正确运行
D) 为DOS5.0以上版本操作系统编写的应用程序可以在Windows操作系统中正确运行
(16) 下列FORTRAN77表达式中,值为整数5的是
A) SQRT(25.0) B) 35/6 C) MOD(4.9,1.1) D) 5*1.0
(17) 下列各式中,合法的FORTRAN 77逻辑表达式是
A) (A-B ).OR.<Y+Z B) (X+Y).EQ.A.LE.D
C) A.LE.B.AND.C.GE.X D) (A+B)AND(X+Y)GE(C)
(18) 下列语句中错误的是
A) WRIPE(*,*)(J , I , I * J,J=1, I) B) WRITE(*, *)(N, A(I), I=1, N)
C) READ(*, *)N,(A(I), I=1, N,2) D) READ(*, *)(N, A(I),I=1, N, 2)
(19) 可以作为FORTRAN 77常量的是
A) FALSE B) E-5 C) (0.5 1/3) D) 1.0D-2
(20) 下列说法中正确的是
A) 块IF结构中的THEN块或ELSE块不能是空块
B) 块IF结构中至少有一个ELSE IF语句或ELSE语句
C) 每一个ELSE IF语句要有一个对应的ENDIF语句
D) 一个块IF结构中只能有一个ENDIF语句
(21) 假设A=.TRUE., B=.FAISE., C=.FALSE., 则(A .OR.B).AND.C与A .OR..NOT.B的值分别是
A) .FALSE. 与 .TRUE B) .TRUE.与.FALSE.
C) .TRUE.与.TRUE. D) .FALSE.与 .FALSE.
(22) 设I和J都是INTEGER型变量,下面的语句功能是
I=I+J
J=I-J
I=I-J
A) 将I和J按从大到小次序排列 B) 将I和J按从小到大次序排列
C) 将J的值赋给I,J的值不变 D) 交换I和J中的值
(23) 下列程序运行后输出结果是
DATA A,B,C/2* -2.0, 1.0/
X=300*C-0.1*A-0.01*B
WRITE(* , 100)X
100 FORMAT(F7.3)
101 END
A) 300.220 B) 00.220 C) ******* D) 300.22
(24) 下列程序运行后输出结果是(□表示空格)
INTEGER A(2, 3)
DATA A/1, 3, 5, 7, 9, 11/
WRITE(*,(1X, 3(12, 1X)))((A(J, K), K=1, 3), J=1,2)
END
A) □1□5□□9□ B) □1□□5□□9□
3□□7□□11□ 3□□7□□11□
C) □1□□3□□5□ D) □1□□3□□5□□7□□9□11□
7□□9□11□
(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))
(26) 下列数组说明语句中正确的是
A) INTEGER A(-1:5,0:6) B) REAL M(10:5)
C) DOUBLE Y(1:N+1) D) DOUBLE Z(14)
(27) 下列语句函数的定义中正确的是
A) F(X,Y)=(X+Y)/(X*Y)+7.0 B) FUNCTION(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)
(28) COMMON语句的功能是
A) 给同一程序模块中的若干变量分配同一存储单元
B) 给不同程序模块中的变量分配相同的存储单元
C) 只能给不同程序模块中的相同名字的变量分配相同的存储单元
D) 给同一程序模块中的相同类型变量分配相同存储单元
(29) 语句函数定义语句在程序内的位置是
A) 在程序块开头语句之后,END语句之前
B) 在说明语句之后,可执行语句之前
C) 在说明语句之后,END语句之前
D) 在程序块开头语句之后,可执行语句之前
(30) 下列程序运行后,输出的M值是
DO 10 K=1,5
N=N*2
M=N-1
10 CONTINUE
WRITE(*,*) M
END
A)31 B) 32 C) 不确定 D) 0
(31) 下列程序运行后,输出的M值是
DO 10 K=1,3,1
M=0
DO 20 J=K,3
M=M+J*K
20 CONTINUE
10 CONTINUE
WRITE(*,*) M
END
A) 25 B) 9 C) 18 D) 27
(32) 下列程序运行后,K的值是
DO 10 I=1,5,2
DO 10 J=2,6,3
K=I+J
10 CONTINUE
END
A) 17 B) 10 C) 12 D) 38
(33) 下列程序运行后,输出的结果是
DIMENSION JA(3),JB(3,2)
DATA JB/1,2,3,4,5,6/
DO 10 K=1,3
10 JA(K)=JB(K,2)
WRITE(*,100)JA
100 FORMAT(1X,6I1)
END
A) 123 B) 456 C) 135 D) 246
(34) 下列程序运行后,输出的I值是
REAL M
M=0.0
100 I=I+1
M=M+1.0/I**2
IF(1.0/I**2.GT.0.00001) GOTO 100
WRITE(*.*) I
END
A) 大于或等于100 B) 等于100 C) 小于100 D) 小于0.00001
(35) 下列程序运行后,输出的图形为(□表示空格)
DO 10 I=1, 5
WRITE(*.*) ('□',J=1, 5-I),('#', K=1, 2*I-1)
10 CONTINUE
END
A)□□□□# B) ##### C) □□□□##### D) □□#
□□□### ###### □□□###### □###
□□##### ####### □□####### #####
□####### ######## □######## □###
######### ######### ######### □□#
(36) 有如下子例程子程序
SUBROUTINE SUB(K, A)
B=K+2
A=A+B
END
下列调用语句中正确的是
A)CALL SUB(N, N) B)CALL SUB(X, X)
C)CALL SUB(N+2, X) D)CALL SUB(N, X+3)
(37) 下列程序段在无名公用区中实型元素的个数是
DIMENSION A(2), B(3), C(2,3)
COMMON A, X
COMMON B
A) 6 B) 5 C) 11 D) 3
(38) 执行下列语句
OPEN(3, FILE='FILE.DAT', STATUS='NEW')
之后,FILE.DAT文件是
A) 顺序文件,可以写 B) 随机文件,可以写
C) 顺序文件,可以读 D) 随机文件,可以读
(39) 下列关于直接文件操作说法中不正确的是
A) 直接文件的所有记录的长都相等 B) 直接文件不能按记录的顺序读取
C) 直接文件不能按表控格式存取 D) 顺序写入的文件都不能直接读取
(40) 执行下列程序
READ(*, *)X
NY=0.0
IF(X.GE.10.0) NY=3*X+5.0
IF(X.GE.5.0) NY=2*X+6.0
IF(X.GE.0.0) NY=23.4
WRITE(*,*) NY
END
时,由键盘输入11.2<回车>,输出的值是
A) 0.0 B) 38.6 C) 28.6 D) 23
(41) 执行下面程序
LOGICAL P
READ(*,*)X, Y
P=.TRUE.
IF(X+Y.LT.X) P=.FALSE.
Z=Y
IF(P) THEN
Z=X+Z
ELSE
Z=X
END IF
WRITE(*,*) Z
END
运行时输入
3.6, -1.2<回车>
输出的Z值是
A) 3.6 B) 2.4 C) 0.0 D) -1.2
(42) 当I=1, J=3, K=5, L=4时,执行下面一段程序
IF(I.LT.J) THEN
IF(K.LT.L) THEN
X-1
ELSE
IF(I.LT.K) THEN
IF(J.LT.L) THEN
X=2
ELSE
X=3
ENDIF
ELSE
X=6
END IF
END IF
ELSE
X=7
END IF
X最后的值是
A) 1 B) 2 C) 3 D) 6
(43) 执行下列程序
CHARACTER*6 S1, S2
READ(*,*) S1
DO 10 I=1, 6
IF(S1(I: I).GE.'A'.AND.S1(I: I).LE.'Z') THEN
S2(I: I)=CHAR(ICHAR(S1(I: I))+32)
ELSE IF(S1(I: I).GE.'a'.AND.S1(I: I).LE.'z') THEN
S2(I: I)=CHAR(ICHAR(S1(I: I))-32)
ENDIF
10 CONTINUE
WRITE(*, *) S2
END
运行时,如果从键盘上输入:'ABCdef'<回车>,则输出为
A) ABCdef B) abcDEF C) abc D) DEF
(44) 执行下列程序
INTEGER M(3, 2)
DO 10 I=1, 2
DO 10 J=1, 3
10 M(J, I)=I+J*10
WRITE(*, *)M
END
输出结果为
A) 11 31 22 21 12 32 B) 11 21 31 12 22 32
C) 11 12 21 22 31 32 D) 不确定
(45) 执行下列程序
INTEGER A, B
B=1
DO 10 A=1, 100
IF(B.GE.20) GOTO 200
IF(MOD(B, 3).EQ.1) THEN
B=B+3
GOTO 10
END IF
B=B-5
10 CONTINUE
20 CONTINUE
WRITE(*, *)A
END
输出的A值为
A) 7 B) 8 C) 9 D) 10
(46) 执行下列程序
EXTERNAL FUN
REAL FUN
X=3.0
WRITE(*, 10) T(X, FUN)
10 FORMAT(1X, F5.1)
END
FUNCTION T(A, FUNNAME)
B=2*A
T=FUNNAME(B)
END
REAL FUNCTION FUN(X)
FUN=X+15.0
END
输出结果为
A) 3.0 B) 6.0 C) 21.0 D) 81.0
(47) 运行下列程序
REAL M(3, 4)
DATA M/4*-1.0, 4*-2.0, 4*-3.0/
S=0.0
DO 10 K=1, 4
D=ABS(M(1, K))
DO 20 J=2, 3
IF(ABS(M(J, K)).LT.D) D=ABS(M(J, K))
20 CONTINUE
S=S+D
10 CONTINUE
WRITE(*, *)S
END
输出的S值为
A) 7.0 B) 4.0 C) 3.0 D) 6.0
(48) 执行以下程序
INTEGER K, M, P, FUNC
K=4
M=1
P=FUNC(K, M)
WRITE(*, *) P
P=FUNC(K, M)
WRITE(*, *) P
END
INTEGER FUNCTION FUNC(A, B)
INTEGER A, B
M=0
I=2
I=I+M+1
M=I+A+B
FUNC=M
END
输出结果是
A) 8, 15 B) 8, 16 C) 8, 17 D) 8, 8
(49) 执行下列程序
INTEGER S, T, A, B
READ(*, *)A, B
S=1
T=1
IF(A.GT.0) S=S+1
IF(A.GT.B) THEN
T=S+T
ELSE IF(A.EQ.B) THEN
T=5
ELSE
T=2*S
END IF
WRITE(*, *)T
END
要想输出结果为4,给A和B输入的值应满足的条件是
A) A>B B) A<B<0 C) 0<A<B D) 0>A>B
(50) 执行以下程序
INTEGER M, N
READ(*, *) M, N
100 IF(M.EQ.N) GOTO 200
10 IF(M.LE.N) GOTO 20
M=M-N
GOTO 10
20 IF(N.LE.M) GOTO 100
N=N-M
GOTO 20
200 WRITE(*, *) M
END
如果从键盘上输入65和14,输出结果为
A)3 B)2 C)1 D)0
二、填空题(每空2分,共40分)
请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上不得分
(1) 计算机机领域中,通常用英文单词"Byte"表示 【1】 。
(2) 在DOS环境下,自动批处理的文件名为 【2】 。
(3) 要将当前盘当前目录下所有扩展名为.TXT的文件内容在打印机上打印输出,应使用的单条DOS内部命令为 【3】 。
(4) 在Windows环境下,可以利用单击、双击、拖动这三种鼠标操作之一的 【4】 操作实现窗口的移动。
(5) 在Windows环境下,可以将窗口最小化为 【5】 。
(6) 下列FORTRAN77程序的功能是:计算并输出500以内能被3或7整除的所有自然数平方根之和。请在程序中的下划线处填入合适的内容。
【6】
DO 100 K=1, 500
IF(MOD(K, 3).EQ.0 【7】 MOD(K, 7).EQ.0) THEN
S=S+SQRT(1.0*K)
【8】
100 CONTINUE
WRITE(*, *)S
END
(7) 下列FORTRAN77子程序的功能是:从键盘输入一个大于6的偶数,然后将该偶数表示成两个素数之和。请在程序中的下划线处填入合适的内容。
WRITE(*, *) INPUT:
READ(*, *) K
J=3
100 IF(KF(J).EQ.0).OR.(KF(K-J).EQ.0)) THEN
J=J+2
IF(J 【9】 K/2) GOTO 100
ELSE
WRITE(*, 200) K, J, K-J
END IF
200 FORMAT(1X, I4, '=', I4, '+', I4)
END
FUNCTION KF(K)
M=SQRT(1.0*K)
KF=1
【10】
100 IF(MOD(K, J).NE.0) THEN
J=J+1
IF(J.LE.M) GOTO 100
ELSE
【11】
END IF
END
(8) 下列FORTRAN77子程序的功能是计算并输出下列多项式值:
直到为止。请在程序中的下划线处填入合适的内容。
EPS=0.0001
S=1
【12】
N=1
10 【13】
F=-1*F
S=S0+F/(2*N+1)
【14】
IF(ABS(S-S0).GE.EPS) GOTO 10
WRITE(*, 100)S
100 FORMAT(1X, 'S=', F10.2)
WRITE(*, *)
END
(9) 下列FORTRAN77子程序的功能是计算并输出1000以内最大的五个素数之和。请在程序中的下划线处填入合适的内容。
INTEGER F
KSUM=0
N=1
M=999
10 IF(N.LE.5) THEN
K=SQRT(1.0*M)
F=0
I=2
100 IF((I.LE.K).AND.(F.EQ.0)) THEN
IF(MOD(M, I).EQ.0) 【15】
I=I+1
GOTO 100
END IF
IF(F.EQ.0) THEN
N=N+1
【16】
END IF
M=M-2
【17】
END IF
WRITE(*, 200) KSUM
200 FORMAT(1X, 'KSUM=', I10)
WRITE(*, *)
END
(10) 下列FORTRAN77子程序的功能是用对分法求方程
f(x)=x-sinx-1=0
在区间[0,2]上的一个实根。精度要求为0.000001。请在程序中的下划线处填入合适的内容。
F(X)=X-SIN(X)-1.0
A=0
B=2
EPS=0.000001
FA=F(A)
FB=F(B)
10 IF(ABS(A-B).GE.EPS) THEN
X=0.5*(A+B)
FX= 【18】
IF(FX*FA 【19】 0) THEN
A=X
FA=FX
ELSE
B=X
FB=FX
END IF
【20】
END IF
X=0.5*(A+B)
WRITE(*, 100)X
100 FORMAT(1X, 'X=', F10.4)
WRITE(*, *)
END
〖完〗
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -