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

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

📁 c++的大量习题,对二级考试大有帮助. 希望大家满意.
💻 TXT
📖 第 1 页 / 共 2 页
字号:
PROCEDURE P(X,Y:REAL;VAR Z:REAL);
BEGIN
……
END
并设A,B,C为实型量且已有确定的值,则下面过程调用正确的是
A)P(A+B,A-B,A+B) B)P(A,A MOD B,C) 
C)P(ROUND(A),C,B) D)P(C,SIN(B),10,5)
43.下面给出一个求意性程序:
PROGRAM P(……);
PROCEDURE P1(X:PREL):FORWARD;
PROCEDURE P2(I:INTEGER);
VAR A:REAL;
BEGIN
P1(3.0); {调用 1}
A:=F(5)+2。1 {调用 2}
END;
PROCEDURE P1;
VAR B:REAL;
BEGIN
P1(5.0); {调用 3}
……
END;
FUNCTION F(Y:INTEGER):REAL;
BEGIN
P1(21); {调用 4}
……
END;
BEGIN
……
END
则下列程序中出现的过程或函数调用哪个是不正确的?
A)调用 1 P1(3.0) B)调用2 A:=F(5)+2.1; 
C)调用 3 P1(5.0) D)调用不着4 P1(21);
44.下列没有错误的程序段是
A)TYPE TOCP+^CHAR; B)TYPE TOCP=^CHAR;
VAR CHARP:TOCP; VAR CHARP:TOCP;
BEGIN BEGIN
CHARP:='A'; NEW(CHARP);
WRITELN(CHARP); IF ORD(CHARP)>10 THEN
WRITELN('AAA');
C)TYPE TORP=^REAL; D)TYPE TOIP=^INTEGER;
VAR ONE,TWO:TORP; VAR A,B:TOIP;
BEGIN BEGIN
NEW(ONE); NEW(A);NEW(B);
TWO:=ONE+5; A^:=5; B^:=A^+5;
45.若有以下程序:
PROGRAM AAA(INPUT,OUTPUT);
VAR P1,P2,P3:^INTEGER;
BEGIN
NEW(P1);
NEW(P2);
P1^:=563 MOD 10+ROUND(2.56);
P2^:=P1^ DIV 3+2;
P3:=P1;P1:=P2;P2:=P3;
WRITELN(P1^:2,P2^:2,P3^:2)
END
则程序运行后的输出是
A)6 6 6 B)4 6 6 C)6 4 6 D)6 6 4 
46.已知函数说明如下:
FUNCTION F(N:INTEGER):INTEGER;
BEGIN
IF N=0 THEN F:=0
ELSE IF N>0 THEN F:(N-2)
ELSE F:(N+3)
END
则函数调用F(5)的值是
A)0 B)1 C)-1 D)-2
47.若有以下说明:
VAR A,B:INTEGER;
PROCEDURE SWAP(X:INTEGER;VAR Y:INTEGER);
VAR T:INTEGER:
BEGIN
T:=X;X:=Y;Y:T
END;
并有以下语句:
A:=10;B:=20;
SWAP(A,B);
WRITELN('A=',A:2,',B:2)
则程序运行后输出结果是
A)A=10,B=20 B)A=20,B=10 C)A=10,B=10 D)A=20,B=20
48.有下面程序段
FOR I:=1 TO 3 DO
BEGIN
FOR J:=1 TO 3 DO
BEGIN
IF I=3 THEN A[I,J]:=A[I-1,A[I-1,J]]+1
ELSE A[I,J]=J;
WRITE(A[I,J]:2)
END;
WRITELN
END
该程序的执行结果是
A)1 1 1 B)1 2 3 C)1 2 3 D)1 2 3 
2 2 2 1 2 3 1 2 3 1 2 3 
3 3 3 1 2 3 2 4 6 2 3 4 
49.有下面程序:
PROGRAM AA(OUTPUT);
VAR X,Y,Z:INTEGER;
PROCEDURE P(X,Y:INTEGER;VAR Z:INTEGER);
BEGIN
Z:=Y-X-Z
END
BEGIN
X:=5;Y:=7;Z:=4;
P(7,X+Y+Z,X);
WRITELN(X;2,Y:2,Z:2)
END
该程序的运行结果是
A)7 7 4 B)4 7 4 C)5 7 4 D)5 7 -2
50.PROGRAM MATRIX(INPUT,OUTPUT);
VAR I,J,MAX,M,N:INTEGER;
A:ARRAY[1。。5,1。。5] OF INTEGER;
BEGIN
WRITELN('INPUT 5*5 MATRIX:');
FOR I:=1 TO 5 DO
BEGIN
FOR J:=1 TO 5 DO READ(A[I,J]);
READLN
END;
MAX:=A[1,1];M:=1;N:=1;
FOR I:=1 TO 5 DO
IF(I=J)OR (I+J=6) THEN
IF A[I,J]>MAX THEN
BEGIN
MAX:=A[I,J];M:=I;N:=J;
END;
WRITELN('MAX=',MAX);
WRITELN('M=',M,'N=',N)
END
以上程序的功能是
A)求5阶方阵中两条对角线上元素的最大值及其位置
B)求5阶方阵中主对角线上元素的最大值及其位置
C)求5阶方阵中所有元素的最大值及其位置
D)求5阶方阵中所有元素的最小值及位置

二. 填空题(每空2分,共40分)

请将每空的正确答案写在答题卡1~20序号的横线上,答在试劂不得分。

(6)已知类型说明为T1=SET OF'A'。。'Z';过程WRITESET将集合A中的元素以 
下面例子的方式输出
例:若A=['A','Z','C','M','H']
则输出A=[A,C,H,M,Z]
PROCEDURE WRITESET(A:T1);
VAR
CH:CHAR;
BEGIN
------;
FOR CH:='A'TO 'Z'DO
IF_______________IN A THEN
WRITE(CH,',');
WRITELN(']')
END;
(7)已知有如下类型说明:
TYPE DATE=RECORD
Y :INTEGER;
MONTH:1。。12
DAY:1。。31
END;
并有函数LEAP能够检查年份Y否是闰年,右为闰年(闰年的2月有29天),函数
LEAP的返回值为TURE;否则,返回值为FALSE。函数的详细内容没有给出,函
数首部为
FUNCTION LEAP(Y:INTEGER):BOOLEAN;
下面函数CHECKDATE的作用是检查变量D中的日期是否是合理,若不合理(即出
现了不可能的日期),则显示'ERROR DATE!,函数返回值为FALSE;否则,函
数返回值为TRUE。
FUNCTION CHECKDATE(D:DATE):BOOLEAN;
VAR
FLAG:BOOLEAN;
BEGIN
FLAG:=TRUE;
------
BEGIN
CASE MONTH OF
4,6,9,11;IF DAY>30 THEN
FLAG:=FALSE;
: 2 : IF (DAY>29) OR (DAY>28)_________THEN
FLAG:=FALSE
END
END;
IF NOT FLAG THEN
WRITELN('ERROR DATE!');
CHECKDATE:=FLAG
END
(8)下面的程序可以输出右边图示结果,请填空完成。 0 0 0 1 0 0 0
0 0 1 0 1 0 0
PROGRAM P5(UTPUT); 0 1 0 0 0 1 0
TYPE 1 0 0 0 0 0 1
ARR=ARRAY[1..4,1..7]OF INTEGER;
VAR
A:ARR;
X,Y:INTEGER;
BEGIN
FOR X:=1 TO 4 DO
FOR Y:=1 TO 7 DO
IF(__________=5)OR (__________=3) THEN
A[X,Y]:=1
ELSE
A[X,Y]:=0;
FOR X:=1 TO 4 DO
BEGIN
FOR Y:=1 TO 7 DO
WRITE(A[X,Y]:3);
WRITELN
END
END
(9)函数FINDSECOND返回数组A中第二大的数(第二大数可以与最大数相等),类型T1为:
T1=ARRAY[1..10] OF INTEGER;
FUNCTION FINDSECOND(A:T1);INTEGER;
VAR
B1,B2,K:INTEGER;
BEGIN
B1:=A[1];B2:=A[2];
IF B1<>A则以N-A作为新的任意正整数(例如32),重复步骤1)。若N=A,则结束。程序
中的函数FIND返回小于或等于N的最大的FAIBONACCI数
PROGRAM P1(INPUT,OUTPUT);
VAR
N:INTEGER;
FUNCTION FIND(N:INTEGER);INTEGER;
VAR
A,B,C:INTEGER;
BEGIN
A:=1;B:=1;
REPEAT
C:=__________;
A:=B;B:=C;
UNTIL B>=N;
IF B=N THEN
FIND:=__________
ELSE
FIND:=__________
END;
PROCEDURE P(N:INTEGER);
VAR
A:INTEGER;
BEGIN
A:=FIND(N);
WRITE('+',A:4);
IF A<N THEN
P(________)
END;
BEGIN
READLN(N);
WRITE(N:5,'=');
P(N);
WRITELN
END 


 


1996年4月全国计算机等级考试二级笔试试卷
基础知训和PASCAL语言程序设计
答案及评分标准
一. 选择题(1~40题每题1分,41~50题每题2分,共60分)
1.C 2.A 3.B 4.D 5.D
6.A 7.C 8.B 9.D 10.C
11.B 12.D 13.A 14.C 15.B
16.A 17.B 18.A 19.C 20.C
21.D 22.A 23.B 24.A 25.C
26.B 27.C 28.B 29.B 30.D
31.D 32.A 33.B 34.D 35.B
36.C 37.C 38.A 39.A 40.C
41.C 42。C 43。B 44。D 45。B
46.A 47。C 48。D 49。B 50。A
二. 填空题(每空2分,共40分)
(所有字母都允许大。小写或大小写混合)
1. 外部
2. DIR ??C*。*
3. A:\X\Y\W\QR.C
4. 64
5. 92
6. WRITE('A=[')
用WRITELN而未用WRITE者扣1分
输出字串'A=['不正确者扣1分未用输出语句者不给分']
7. CH 基填[CH]给1分
8. WITH D DO
9. AND NOT LEAP(Y)或 AND(LEAP(Y)=FALSE)或 AND(NOT LEAP(Y))
若填AND LEAP(Y)=FALSE给1分
若填Y写为D。Y而其它全对,则给1分
10. X+Y或Y+X
11. Y-X或-X+Y
12. B2:=B1
13. A[K]>B2 或 A[K]>=B2 或 NOT(A[K]<B2)或 NOT(A[K]<=B2)
14. Q
15. P或P;
16. P或Q或P;或Q;
17. A+B 或 B+A
18. B或C或N 若填B;或 C;或N;则给1分
19. A 或A;
20. N-A

⌨️ 快捷键说明

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