⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1997年4月二级笔试试题pascal.txt

📁 c++的大量习题,对二级考试大有帮助. 希望大家满意.
💻 TXT
字号:
1997年4月全国计算机等级考试二级笔试试卷
基础知识和PASCAL语言程序设计
(考试时间120分钟,满分100分)
一. 选择题(1~40每个选项1分,41~50每个选项2分,共60分)
下列各题A),B),C),D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(21)PASCAL程序必须包括
A)程序首部。说明部分。语句部分 B)程序首部。说明部分
C)说明部分。语句部分 D)程序首部。语句部分
(22)下列中合法的PASCAL数是
A)-9E7。5 B)TRUNC(-(ABS(-7。5)))
C)ABS(0-13 MOD 5+4) D)ORD(CHR(PRED(8)))
(25)设实型变量X已赋值为4。1876,下面能输出4。188的语句是
A)WRITE(TRUNC(X*1000)/1000:5:3) B)WRITE(X:5:4)
C)WRITE(ROUND(X*1000)/1000:5:3) D)WRITE(TRUNC(X):5)
(26)表达式5<=x+a<=10的正确的PASCAL表达式是
A)(X+A>=5)AND (X+A<=10)
B) 5<=(X+A)<=10
C)X+A>=5 AND X+A<=10
D)(X+A>=5) OR (X+A<=10)
(27)已知仅有变量说明VAR I,J:1。。10;R:REAL;下列语句组中没有出错的是
A)I:=5; B)I:=9; C)I:=1。5; D)J:=R+4;
J:=10; J;=I MOD 2; J;=I-9; I:=J-3;
K:=8*I+J R:=I+2*J; R:=J+6; R:=I+3。5;
(28)设有如下说明
VAR F1:FILE OF REAL;
F2:TEXT;
X:REAL;
下面的过程或函数中错误的是
A)EOF(F1) B)EOLN(F1) C)READLN(F2,X) D)WRITELN(F2)
(29)下面对FILE类型和TEXT类型文件的描述不正确的是
A) FILE类型和TEXT类型文件都可以用EOF()函数判断其是否已到文件尾。
B) FILE类型和TEXT类型文件都可以用文本编辑软件来建立。
C) FILE类型和TEXT类型文件操作完毕都应关闭文件。
D) 向FILE类型和TEXT类型文件写数据之前,都需要用REWRITE过程进行初始化。
(30)设N为整型变量,且已赋值为1997,下面能将N的十位数字(即右边第2位数字)分离出来的语句是
A)D:=N MOD 100 B)D:=N DIV 100 MOD 10
C)D:=N/100 MOD 10 D)D:=(N MOD 100)DIV 10
(31)下列说法中,肯定正确的是 
A) 动态变量没有变量名,只能通过指向它的指针变量来引用
B) 动态变量获得或更换其值可以使用赋值语句,但不能使用READ过程
C) 动态变量的值只能增加而不能减小
D) 动态变量不能是布尔类型
(32)下列中,值为FALSE的PASCAL表达式是
A) TRUNC(1。4*4)=5+25 MOD 5
B) (10<(1.5/0. 3)) AND ((1.5/0.5)>-5)
C) ROUND(18.5/2.0)>=105 DIV 5+10
D) NOT('A'>'D') OR NOT (18 MOD 5<2)
(33)已知变量说明VAR LETTERS:(F,E,D,C,B,A);下列函数中函数值为布尔类型的是
A)SUCC(C) B)TRUNC(2。8*4) C)CHR(ORD('A')+2) D)ODD(7)
(34)设有下面程序段
Y:=2;
WHILE Y<=32 DO
Y:=Y+Y;
则程序段执行循环体的次数是
A)3 B)4 C)5 D)6
(35)若有说明
TYPE 
AR=ARRAY[1。。10] OF INTEGER;
BR=ARRAY[1。。10] OF AR;
VAR C:BR;
下列语句正确的是
A)C[C[2,4]]:=123; B)C[8]:=123;
C)C[2][4]:=123; D)C[0,2,4]:=123;
(36)若有以下程序: 
PROGRAM XXX(INPUT,OUTPUT);
VAR P1,P2,P3:^INTEGER;
BEGIN
NEW(P1);P1^:=5;P2:=P1;
NEW(P1);P1^:=10;
P3:=P1;P1:=P2;P2:=P3;
WRITELN(P1^:3,P2^:3,P3^:3)
END
则程序运行后的输出应是
A)5 5 10 B)5 10 10 C)5 10 5 D)10 5 10
(37)一个班有30个学生,每个学生一个记录,记录的数据是:姓名,年龄和3门课的成绩。能正确描述这组信息的类型CLASS是
A) TYPE
STUDATA=RECORD
NAME:CHAR;
AGE:INTEGER;
SCORE:ARRAY[1。。3] OF REAL
END;
CLASS=ARRAY[1。。30] OF STUDATA;
B) TYPE 
STUDATA=RECORD
NAME:PACKED ARRAY[1。。20] OF CHAR;
AGE:INTEGER;
SCORE:ARRAY[1。。3] OF REAL
END
CLASS=ARRAY[1。。30]OF STUDATA;
C) TYPE
STUNAME=PACKED ARRAY[1。。20] OF [1。。30] OF CHAR;
STUAGE=ARRAY[1。。30] OF INTEGER;
STUSCORE=ARRAY[1。。3,1。。30] OF REAL;
CLASS=ARRAY[1。。30] OF STUSCORE;
D) TYPE
POINTER=^STUDATA;
STUDATA=RECORD
NAME:ARRAY[1..20] OF CHAR;
AGE:INTEGER;
SCORE:ARRAY[1..3] OF REAL
END
CLASS=POINTER;
(38)有下面程序:
PROGRAM PP3(OUTPUT);
VAR A,B:INTEGER;
PROCEDURE P1(A:INTEGER);
VAR B:INTEGER;
BEGIN
B:=A+5;
WRITELN(A:3,B:3);
A:=B+5
END;
BEGIN
A:=1; B:=2;
P1(B);
WRITELN(A:3,B:3)
END
该程序执行后的输出是
A)2 7 B)1 6 C)2 7 D)2 7
1 2 1 2 1 12 12 2
(39)设A,B,C,I,J均为整型变量,有下面的程序段:
A:=0;B:=1;C:=2;
FOR I;=1 TO 3 DO
FOR J:=1 TO I DO
CASE((I+J)MOD 3)OF
0:A:=A+1;
1:B:=B+1;
2:C:=C+1
END
WRITELN(A;3,B:3,C:3);
上程序段执行后的输出结果是
A)2 4 3 B)3 4 2 C)2 3 4 C)4 3 2 
(40)有下面程序:
PROGRAM XX(OUTPUT);
VAR X,Y,Z:INTEGER;
PROCEDURE P(X:INTEGER;VAR Y,Z:INTEGER);
BEGIN
Z:Z+Y+X
END;
BEGIN
X:=5;Y:=6;Z:=7;
P(X+Y+Z,X,Y);
WRITELN(X:4,Y:4,Z:4)
END
该程序的运行结果是
A)5 29 7 B)5 6 7 C)18 5 6 D)18 6 7
(41)有下面程序段:
A:=FALSE; B:=FALSE;
C:=TRUE; X:=10;
IF A THEN X:=X-5
ELSE IF B
THEN IF C
THEN X:=36
ELSE X:=45;
假设所有变量均已说明,程序运行后X的值是
A)5 B)10 C)36 D)45
(42)有下面程序段:
M:=2;S:=0;
FOR CH:='A' TO 'F'DO
BEGIN
IF ODD(M)THEN S:=S+M;
M:=M+3
END;
假设所有变量均已说明,程序运行后S的值是
A)72 B)52 C)33 D)16
(43)有下列函数说明:
FUNCTION F(A,B,C:INTEGER):INTEGER;
VAR T:INTEGER;
BEGIN
A:=3*A;T:=B DIV C;F:=A+4*T
END;
则表达式F(F(1,F(1,2,3),3),2,3)的值是
A)21 B)3 C)7 D)25
(44)有下面程序:
PROGRAM PP5(OUTPUT);
VAR I,N,K:INTEGER;
BEGIN
N:=15469; K:=2;
FOR I:=1 TO K-1 DO
N:=N DIV 10;
N:=N MOD 10;
WRITELN(N)
END
该程序执行后的输出是
A)9 B)6 C)2 D)1
(45)设有下面四个循环程序段
(1)A:=0; (2)A:=0;I:=1;
I:=1; WHILE I<=5 DO
REPEAT BEGIN
I:=I+1; A:=A+1;
A:=A+1 I:=i+1
UNTIL I>6; END;
(3)A:=0; (4)A:=0;I:=1;
FOR I:=1 TO 5 DO REPEAT
A:=A+1; I:=I+1;
A:=A+1
UNTIL i>5;
有三个程序段执行后A的值相同,另一个不同的是
A)(1) B)(2) C)(3) D)(4)
(46)计算并输出下式
S=
中S的值的正确程序是
A)PROGRAM P36(OUTPUT); B)PROGRAM P36(OUTPUT);
VAR S,S1:REAL; VAR S,S1:REAL;
I:INTEGER; I:INTEGER;
BEGIN BEGIN
S:=0;S1=0; S:=0;S1:=1;
FOR I:=1 TO 50 DO FOR I:=2 TO 50 DO
BEGIN BEGIN
S1:=S1+I; S1:=S1+I;
S:=S+1/S1 S:=S+1/S1
END END;
WRITELN(S:10:3) WRITELN(S:10:3)
END END
C)PROGRAM P36(OUTPUT); D)PROGRAM P36(OUTPUT);
VAR S,S1:REAL; VAR S,S1:REAL;
I:INTEGER; I:INTEGER;
BEGIN BEGIN
S:=0;S1=0; S:=0;S1:=1;
FOR I:=1 TO 50 DO FOR I:=2 TO 50 DO
S1:=S1+I; S:=S=1/(S1+I);
S:=S+1/S1; WRITELN(S:10:3)
WRITELN(S:10:3) END
END
(47)设A,B,W为实型变量,OPER为字符型变量,用IF语句改写下面的程序段:
CASE OPER OF
'+':W:=A+B;
'-':W:=A-B;
'*':W:=A*B;
'/':W:=A/B
END
在下列写法中,错误的是
A)IF OPER='+'THEN W:=A+B; B)IF OPER='*'THEN W:=A*B
IF OPER='-'THEN W;=A-B; ELSE IF OPER='/'THEN W:=A/B;
IF OPER='*'THEN W:=A*B IF OPER='+'THEN W:=A+B
IF OPER='/'THEN W:=A/B; ELSE IF OPER='-'THEN W:=A-B
C)IF OPER='+'THEN W:=A+B D)IF OPER='+'THEN W:=A+B
ELSE IF OPER='-'THEN W:=A-B; ELSE IF OPER='-'THEN W:=A-B;
IF OPER='*'THEN W:=A*B IF OPER='*'THEN W:=A*B
ELSE W:=A/B; ELSE IF OPER='/'THEN W:=A/B;
(48)有下面程序:
PROGRAM PP4(OUTPUT);
VAR X,Y,Z:INTEGER;
PROCEDURE PROC(VAR A,B:INTEGER;C:INTEGER);
BEGIN
A:=A+B; B:=B+3;
C:=A+B; Y:=Y+C;
WRITELN(A:3,B:3,C:3)
END
BEGIN
X:=1; Y:=2; Z:=3;
PROC(X,X,X);
WRITELN(X:3,Y:3,Z:3)
END
该程序执行后的输出是
A)2 4 6 B)5 5 10 C)2 5 7 D)2 4 6 
2 8 3 5 12 3 2 9 3 4 8 3
(49)有下列程序
PROGRAM TEST(INPUT,OUTPUT);
VAR S:INTEGER;
CH:CHAR;
COUNT:ARRAY['A'。。'Z'] OF INTEGER;
BEGIN
FOR CH:='A'TO 'Z' DO
COUNT[CH]:=0;
READ(CH);
WHILE NOT EOLN DO
BEGIN
IF(CH>='A')AND (CH<='Z') THEN
COUNT[CH]:=COUNT[CH]+1;
READ(CH)
END;
S:=0;
FOR CH:='B' TO 'Y' DO
S:=S+COUNT[CH];
WRITELN(S)
END
运行程序,输入一行正文'WE ARE PROUD OF OUR COUNTRY!'则程序的输出是
A)10 B)22 C)11 D)23
(50)已知有如下说明:
TYPE T1=^REC;
REC=RECORD
X:INTEGER;
NEXT:T1
END;
PROCEDURE PRINTLIST(P:T1);
VAR Q:T1;
BEGIN
WHILE P^.NEXT<>NIL DO
BEGIN
Q:=P;
WHILE (Q^.NEXT)^.NEXT<>NIL DO
Q:=Q^.NEXT;
WRITE((Q^.NEXT)^.X:3);
Q^.NEXT:=NIL
END;
WRITELN
END;
若已有链表如图所示(HEAD是T1型变量,/表示结点的NEXT域为空):
HEAD
则执行过程调用PRINTLIST(HEAD);后的输出结果是
A)4 3 2 B)4 3 2 1 C)1 2 3 D)1 2 3 4 
二. 填空题(每空2分,共40分)
请将每空的正确答案写在答题卡1~20序号的横线上,答在试卷上不得分
(6)函数CHECK检查整数N中是否含有数字3,5,7。含有这些数字之一则返回TRUE;否则返回FALSE。
例如:当N=13722或N=2549,则CHECK返回TRUE;
当N=21689或N=9148,则CHECK返回FALSE。
FUNCTION CHECK(N:INTEGER);BOOLEAN;
VAR YES:BOOLEAN;
BEGIN
REPEAT
YES:=(N MOD 10)IN___________;
N:=N DIV 10
UNTIL________OR YES;
CHECK:=YES
END;
(7)设有以下程序:
PROGRAM T3(INPUT,OUTPUT);
VAR N:INTEGER;
PROCEDURE P(。。。);
BEGIN
A;=A=B;B:=B*A
END;
BEGIN
N:=8;
P(N,N);
WRITELN(N:3)
END
若过程首部的形式参数部分(。。。)分别为以下四种形式,则该程序执行后输出结果是
(1)(A,B:INTEGER)输出结果是_____________
(2)(A;INTEGER;VAR B:INTEGER)输出结果是___________
(3)(VAR A:INTEGER:B:INTEGER)输出结果是______________
(4)(VAR A:INTEGER;VAR B:INTEGER)的输出结果是____________
(8)设有以下程序:
PROGRAM T5(INPUT,OUTPUT);
VAR A,X,Y,Z:INTEGER;
PROCEDURE P(X,Y:INTEGER;VAR Z:INTEGER);
BEGIN
Z:=Y-X-Z;
WRITELN(X:3,Y:3,Z:3) {输出1}
END;
FUNCTION Q(M:INTEGER):INTEGER;
BEGIN
Z:=Z+M;
Q:=SUCC(M)
END;
BEGIN
X:=4;Y:=6;Z:=3; 
P(5,X+Y+Z,X);
WRITELN(X:3,Y:3,Z:3); {输出2}
A:=Q(2)*Q(Z);
WRITELN(A:3,Z:3) {输出3}
END
该程序执行后,依次的输出结果:
(1) 输出1的结果是___________;
(2) 输出2的结果是___________;
(3) 输出3的结果是___________;
(9)下面程序实现将数组A赋于如下的值,请填空完成该程序
1 1 1 1 1 
4 1 1 1 1 
3 4 1 1 1 
2 3 4 1 1 
1 2 3 4 1
PROGRAM T1;
VAR A:ARRAY[1。。5,1。。5] OF INTEGER; 
I,J,K:INTEGER;
BEGIN
FOR I:=1 TO 5 DO
FOR J:=1 TO 5 DO
IF (I-J=4)OR(__________)THEN A[I,J]:=1
ELSE BEGIN
K:=_____________;
CASE KOF
1:A[I,J]:=4;
2:A[I,J]:=_____________;
3:A[I,J]:=2
END
END
END
(10)已知有类型说明:TYPE COLOR-(RED,YELLOW,BLACK,BLUE,ORANGE,GREEN,WHITE);
COLORSET=SET OF COLOR;
函数ELEMENTSINSET返回集合A中元素的个数:
FUNCTION ELEMENTSINSET(A:COLORSET):INTEGER;
VAR C:INTEGER;
X:COLOR;
BEGIN
X:=RED; C:=0;
WHILE A<>[] DO
BEGIN
WHILE NOT (X IN A) DO
X:=______________;
C:=___________;
A:=A-___________
END
ELEMENTSINSET:=C
END 



1997年4月全国计算机等级考试二级笔试试卷
基础知识和PASCAL语言程序设计
答案及评分标准
一. 选择题((1~40)题,每题1分;(41~50)题每2分,共60分)
1.C 2。D 3。A 4。D 5。B
6.D 7。B 8。A 9。A 10。C
11.B 12。B 13。A 14。C 15。B
16.B 17。D 18。D 19。D 20。C
21.D 22。D 23。B 24。D 25。C
26.A 27。B 28。B 29。B 30。D
31.A 32。C 33。D 34。C 35。C
36.B 37。B 38。A 39。C 40。A
41.B 42。C 43。A 44。B 45。A
46.B 47。C 48。B 49。A 50。A
二. 填空题(1~20,每空2分,共40分)
(6)[3,5,7]集合中数的顺序不限
(N=0)或(0=N)若无( )扣1分
(7)8
128
16
256
(8)5 13 4 评分标准:3个数中按顺序有1~2个正确者给1分
4 6 3 评分标准:3个数中按顺序有1~2个正确者给1分 
18 10评分标准:第一个数为18给1分,第二个数为10给1分
(9)J>=I或I<=J或NOT(JJ)
I-J或与此等价的表达式
3
(10)SUCC(X)
C=1或者说SUCC(C)或1+C
[X]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -