?? 1997年4月二級筆試試題pascal.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 + -