📄 1998年4月二级笔试试题pascal.txt
字号:
1998年4月二级笔试试题PASCAL
基础知识和PASCAL语言程序设计
一. 选择题(1~40每小题1分,41~50每小题2分,共60分)
下列各题A)B)C)D)四个选项中,只有一个正确的,请将正确选项涂写在答题卡相应位置上,答在试郑上不得分
(21)下面是对PASCAL程序组成结构的四条描述,其中错误的是
A) PASCAL程序必须有程序首部
B) 程序的注释部分只能写在程序中一条语句的最后
C) 程序首部的参数部分可有可无
D) 一个完整的PASCAL程序的主程序只能有一个
(22)设A,B,C为整型变量,且有A:=5;B:=2;下面能使C的值为1的正确语句是
A)C:=(A-2)/B; B)C:=A MOD (B+2。0);
C)C:=A DIV (B+1); D)C:=(A-2)DIV (B/1);
(23)设有常量定义:CONST A=0;B=22768;下面对常量引用正确的是
A)READLN(A); B)A:=A=1;
C)PROCEDURE P(C:B。。1); D)VAR C:A。。B;
(24)下面函数值等于FALSE 的
A)ODD(TRUNC(-7。49)) B)ROUND((ABS(-9。5)))C)NOT (TRUE=7
(25)设有说明VAR COLOR;(RED,GREEN,YELLOW,BLUE);
A:BOOLEAN;
下面语句正确的是
A)COLOR:='GREEN'; B)WRITELN(GREEN);
C)WRITELN(COLOR); D)IF RED30 AND 7015 C)1520
(28)标准PASCAL程序说明部分的正确顺序是
A)LABEL-CONST -VAR -TYPE B)VAR-CONST-LABEL-TYPE
C)LABEL-CONST-TYPE-VAR D)CONST-VAR-TYPE-LABEL
(29)下列说法中正确的是
A) 一个没有压缩的数组所占存储单元是压缩数组的4倍
B) 使用压缩数组的程序比使用未经压缩数组的程序执行起来要慢
C) 只有字符数组才可以压缩
D) 压缩数组中的元素是不可单独存取的
(30)设有如下说明:TYPE PTR=^REC;
REC=RECORD
X:INTEGER;
CH:CHAR
END
VAR P:PTR;
下面正确的赋值语句是(设已执行了NEW(P))
A)P^. X:=3; B)P.X^:=3; C)(P.X)^:=3; D)P.X:=3;
(31)下面满足当(aA)IF A表示回车符):
1 2 3
4 5 6
7 8 9
下列语句组中不能使A=1,B=7的是
A) READLN(A,B,B,B,B,B,B,C,C);
B) READLN(A); C)READLN(A,C,C,C); D)READLN(A,C,C);
READLN; READ(B); READLN(B,C,C);
READLN(B);
(35)下面程序段,能正确输出5行"HELLO"的信息是
A)X:=1; B)X:=0;
WHILE X BEGIN BEGIN
WRITELN('HELLO'); WRITCLN('HELLO');
X:=X+1 X:=X+1
END; END;
C)X:=0; D)X:=1;
WHILE BEGIN WHILE X WRITELN('HELLO'); BEGIN
X:=X+2 WRITELN('HELLO');
END X:=X+1
END;
(36)设有集合运算[5,7,9。。11]-[3,11,7],正确的结果是
A)[5,3,9。。10] B)[5,9。。10] C)[5,3,9,10] D)[3,5,9。。10]
(37)设有下面过程P1的说明(仅给出过程的主要部分)
PROCEDURE P1(A,B:INTEGER;VAR C:REAL);
……
BEGIN
……
{调用P1}
……
END;
下面给出的可以替换{调用P1}的正确语句是
A)P1(A,TRUE,C); B)P1(A/B,B,C);
C)P1(A,B,4。5) D)P1(A DIV B,C+B,C);
(38)程序PROGRAM P1(OUTPUT);
TYPE T1=(ONE,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN);
VAR X:T1;K:INTEGER;
BEGIN
X:=THREE;
FOR K:=1 TO 5 DO
X:=SUCC(X);
WRITELN(ORD(X))
END
执行后的输出是
A)3 B)5 C)7 D)8
(39)要求程序的功能是:依次读入数据,当输入数据的范围在50-100(含50和100)的数满5个时计算这5个数的和并输出。下面程序段能实现此功能的是
A) SUM:=0;N:=0;
REPEAT
READLN(A);
IF (A=50) THEN
BEGIN
SUM:=SUM+A;
N:=N+1
END;
UNTIL N=5;
WRITELN(SUM)
B)SUM:=0;N:=0;
REPEAT
READLN(A);
IF(A=50) THEN
BEGIN
SUM:=SUM=A
N:=N=1
END;
UNTIL N=5;
WRITELN(SUM)
C)SUM:=0;N:=0;
REPEAT
READLN(A);
IF (A=50) THEN
SUM:=SUM+A;
N:=N=1
UNTIL N=5;
WRITELN(SUM)
D)SUM:=0;N:=0;
REPEAT
READLN(A);
IF (A=50) THEN
BEGIN
SUM:=SUM+A;
N:=N+1
END
UNTIL N6;
WRITELN(SUM)
(40)设有下面程序:
PROGRAM P1(OUTPUT);
VAR J,K,Z:INTEGER;
BEGIN
Z:=0;
FOR J:=1 TO 10 DO
BEGIN
Z:=Z+1;
FOR K:=1 TO 10 DO Z:=Z+1
END
WRITELN(Z)
END
执行此程序后的输出是
A)10 B)20 C)100 D)110
(41)欲输出被2,3,5除余数均为1的最小的10个正整数,下列不能实现此功能的程序是
A) PROGRAM X1(INPUT,OUTPUT);
VAR COUNTER,NUMBER:INTEGER;
BEGIN
COUNTER:=0;
NUMBER:=0;
REPEAT
NUMBER:=NUMBER+1;
IF (NUMBER MOD 2=1)AND (NUMBER MOD 3=1)AND (NUMBER MOD 5=1)
THEN BEGIN
WRITELN(NUMBER);
COUNTER:=COUNTER+1
END
UNTIL COUNTER=10;
END
b)PROGRAM X2(INPUT,OUTPUT);
VAR COUNTER,NUMBER:INTEGER;
BEGIN
COUNTER:=0;
NUMBER:=0;
WHILE COUNTER BEGIN
NUMBER:=NUMBER+1;
IF (NUMBER MOD 2=1) AND (NUMBER MOD 3=1)
AND (NUMBER MOD 5=1)
THEN BEGIN
WRITELN(NUMBER);
COUNTER:=COUNTER+1
END
END
END
C)PROGRAM X3(INPUT,OUTPUT);
VAAR COUNTER,NUMBER:INTEGER;
BEGIN
NUMBER:=1;
FOR COUNTER:=1 TO 9 DO
BEGIN
WRITELN(NUMBER);
NUMBER:=NUMBER+2*3*5
END;
WRITELN(NUMBER)
END
D)PROGRAM X4(INPUT,OUTPUT);
VAR COUNTER,NUMBER:INTEGER;
BEGIN
NUMBER:=1;
FOR COUNTER:=1 TO 10 DO
BEGIN
NUMBER:=NUMBER+2*3*5
VRITELN(NUMBER);
END;
WRITELN(NUMBER)
END
(42)设有如下过程P1的说明(仅给出过程的主要部分)
PROCEDURE P1;
VAR A,B:INTEGER;{**1**}
C,D:CHAR;
PROCEDURE P2(VAR E:INTEGER);
VAR B,F:REAL;
BEGIN
……
END;
PROCEDURE P3(G:CHAR);
VAR B,C:INTEGER;
BEGIN
……
END;
BEGIN
……
END
在过程P1中,在标有{**1**}的程序行中对变量B的作用域最适当的描述是
A)在P1中不在P3中 B)中P1中不在P2中
C)在P1中也在P2和P3中草药 D)在P1中不在P2和P3中
(43)已知有下面程序段: ...
REPEAT
Readln(a);
IF a=0 THEN f:=True
ELSE f:=False
UNTIL f;
其中a为整型变量,f为布尔型变量,下面哪个程序段与上面的程序段 完全等价?
A)Readln(a); B)Readln(a);
IF a=0 THEN f:=True WHILE NOT f DO
ELSE f:=False; BEGIN
WHILE f DO IF a=0 THEN f:=True
BEGIN ELSE f:=False;
Readln(a); Readln(a)
IF a=0 THEN f:=True END;
ELSE f:=False
END;
C)f:=True; D)Readln(a);
WHILE f DO IF a=0 THEN f:=True
BEGIN ELSE f:=False;
Readln(a); WHILE NOT f DO
IF a=0 THEN f:=True BEGIN
ELSE f:=False Readln(a);
END; IF a=0 THEN f:=True
ELSE f:=False
END;
(44)已知有如下说明: VAR a:ARRAY[-3..3]OF Integer;
k,i:Integer;
程序段:
k:=0;
FOR i:=-3 TO 3 DO
IFiELSE a[i]:=k+2;
Writeln(a[3]-a[-3]);
输出的是
A)10 B)7 C)2 D)1
(45)设有说明
TYPE
byte=0..7;
word=0..15;
num=Real;
VAR
a:byte;b,c:word;d:Integer;c:num;f:Char;
下面哪一组变量的类型是相容的而不是同一的?
A)a和c B)c和f C)c和d D)c和d
(46)已知有变量说明:VAR a:ARRAY[1..5]OF Real;
i:Integer;
且数组a的内容如下图所示:
a[1] a[2] a[3] a[4] a[5]
则程序段: i:=3;
a[i]:=a[Trunc(a[i-1]);
Writeln(a[i]:3:1,'和',a[i+2])
输出的是
A)5.9和0 B)5.7和5.9 C)5.9和5.9 D)6.0和5.9
(47)已知函数f1如下:
FUNCTION f1(a,b:Integer):Integer;
BEGIN
IF a=0 THEN
f1:=b
ELSE
f1:=f1(Pred(a),Succ(b))
END;
函数f1返回的是
A)a-b的值 B)b-a的值 C)a*b的值 D)a+b的值
(48)设有如下函数说明
FUNCTION ack(m,n:Integer):Integer;
BEGIN
IF m=0 THEN ack :=n+1
ELSE IF (m0)AND (n=0)THEN ack:=ack(m-1,1)
ELSE ack:=ack(m-1,ack(m,n-1))
END;
若在主程序中执行Writeln(ack(2,1)),则输出结果是
A)1 B)2 C)4 D)5
(49)设有如下图所示的单链表
info next info next info next info next
head → → ...
↑
p
则p^.next^.info的值是
A)19 B)47 C)64 D)93
(50)设有说明 VAR infile,outfile:Text;
ch:Char;
和程序段
WHILE NOT Eof(infile) DO
BEGIN
WHILE NOT Eoln(infile) DO
BEGIN
Read(infile,ch);
Write(outfile,ch);
END;
Writeln(outfile)
END;
对该程序段是否正确进行判断,并简要说明其功能,下面描述正确 的是
A)错误,无限循环. B)正确.拷贝并显示文件infile.
C)错误.仅能读入一行文件 D)正确.拷贝文件infile到outfile.
二.填空题(每空 2 分,共 40 分)
请将每空的正确答案写在答题卡1---20序号的横线上, 答在试卷上不 得分.
(1)与十进制数101等值的二进制数为 1
_____.
(2)DOS命令为内部命令与外部命令,XCOPY命令属于 2 命令
_____
(3)设当前盘为A盘,当前系统提示符为"",在不改变当前盘的情况下, 显示C盘的当前目录路径,应使用命令 3
______
(4)自动批处理文件名必须是 4
_____
(5)设在当前盘当前目录下有两个文件W.TXT 与P. TXT, 现要将文件P .TXT连接到文件W.TXT的后面,若使用COPY命令,则完整的命令为 5
_____
(6)下面程序可从键盘输入一个大于0且小于1000的整数,然后输出此数 的所有整数因子.
例如:输入12,则输出:quotient of 12:1 2 3 4 6 12
PROGRAM pp(Input,Output);
VAR a,k:Integer;
BEGIN
Readln(a);
IF(a0) AND (aBEGIN
Write('quotient of',a:3,':');
FOR k:=1 TO 6 DO
_____
IF 7 THEN
____
Write(k:3)
END;
Writeln
END.
(7) 函数mutsym 可判断方阵a 是否关于主对角线对称, 若对称则返回 True;否则返回False.其中类型arr为:arr=ARRAY[1..10,1..10]
OF Integer;
FUNCTION mutsym(a:arr):Boolean;
VAR k,j:Integer;
flag:Boolean;
BEGIN
flag:=True;
FOR k:=1 TO 8 DO
______
FOR j:=1 TO 9 DO
____
flag:=10 AND (a[k,j=a[j,k]);
mutsym:=flag
END;
(8)由键盘输入一个正整数,找出大于或等于该的第一个质数.
PROGRAM sj52(Output);
VAR k,a:Integer;
f:Boolean;
BEGIN
f:=False;
Read(a);
WHILE NOT f DO
BEGIN
k:=2;f:=11
____
WHILE f AND (kIF (a MOD k)=0 THEN f:= 12
_____
ELSE 13
_______
IF NOT f THEN
a:=a+1;
END;
Writeln(a);
END.
(9)下面程序可输出如下结果,请填空完成该程序.
1
-1 -12
1 12 123
-1 -12 -123 -1234
1 12 123 1234 -12345
PROGRAM t2(Output);
VAR m,n,k,s:Integer;
BEGIN
FOR m:=1 TO 5 DO
BEGIN
s:= 14
______
FOR n:=1 TO 15 DO
_____
BEGIN
s:s*10+n;
IF 16 THEN
____
Write(s:6)
ELSE
Write(-s:6)
END;
Writeln
END
END.
(10)函数func返回数组a中与所有数的平均值最接近的那个数(此数可 能大于也可能小于平均值).若有多个数最接近平均值,则只返回其中之一 类型arr为: TYPE arr =ARRAY[1..10] OF Integer;
FUNCTION func(a:arr):Integer;
VAR n,k:Integer;b,s:Real;
BEGIN
17
______;
FOR k:=2 TO 10 DO
s:=s/10;
n:=1;
FOR k:=2 TO 10 DO
IF 18 ____ ____
n:=k;
func:= 20
_____
END;
全国计算机等级考试二级笔试试卷
基础知识和Pascal语言程序设计
答案及评分标准
一.选择题(1---40题每题 1 分,41---50题每题 2 分,共 60 分)
(1)C (2)D (3)A (4)D (5)D (6)C (7)B
(8)A (9)C (10)A (11)B (12)C (13)A (14)B
(15)A (16)C (17)D (18)C (19)D (20)C (21)B
(22)C (23)D (24)B (25)D (26)B (27)A (28)C
(29)B (30)A (31)B (32)C (33)B (34)D (35)B
(36)B (37)D (38)C (390B (40)D (41)D (42)D
(43)D (44)D (45)C (46)C (47)D (48)D (49)C
(50)
二.填空题(1--20共20空,每空2分)
① 1.1100101或(1100101)2
② 2.外部(答 外部命令 不扣分)
③ 3.CD C:(CD与C:中间至少要有一个空格)
④ 4.AUTOEXEC.BAT
⑤ 5.COPY W.TXT+P.TXT或COPY W.TXT+P.TXT W.TXT
⑥ 6.a
7.a mod k=0 或 a-(a div k)*k=0或 a=(a DIV k)*k
⑦ 8.10 9.k-1 10.flag
⑧ 11.True 12.False 13.k:=k+1
⑨ 14.0 15.m
16.Odd(m)或m MOD 20或m-(m DIV 2)*20或m(m DIV 2) *2或其它当m为奇数时则为真的布尔表达式
⑩ 17.s:=a[1]
18.Abs(a[k]-s)
19.Abs(a[n]-s)
20.a[n]或a[n];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -