?? 1996年4月二級筆試試題pascal.txt
字號:
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 + -