| 您的位置: 洪恩在线 -> 继续教育 -> 计算机考级 |
|
我要发言
|
1997年9月全国计算机等级考试二级笔试试卷基础知识和PASCAL语言程序设计
|
|||||||||||||
|
(9)下面哪种类型的文件可以用DOS的TYPE命令在屏幕上显示其内容? A)FILE OF CHAR 型文件B)FILE OF INTEGER型文件 C)FILE OF REAL 型文件D)FILE OF BOOLEAN 型文件 (10)已知有说明如下:TYPE T1=1.。100; VAR A,B:T1;X,Y:INTEGER; PROCEDURE P1(VAR A,B:INTEGER;X,Y:REAL); 下面哪个过程调用是正确的? A)P1(A,B,X,Y)B)P1(X,Y,A,B); C)P1(A,X,B,Y)D)P1(Y,B,X,A); (11)设有过程P1中A,B,C都是整型变量,其中A为值形式参数,B,C为变量形式参数,下面符合要求的过程首部是 A)PROCEDURE P1(VAR A,B,C:INTEGER); B)PROCEDURE P1(A:INTEGER;VAR B;INTEGER;C:INTEGER); C)PROCEDURE P1(A:INTEGER;VAR B:INTEGER;VAR C:INTEGER); D)PROCEDURE P1(A:INTEGER;B,C:INTEGER); (12)下列哪个类型说明是错误的? A)TYPE REC=RECORD N:('A'……'J'); X,Y:ARRAY['A'……'J']OF CHAR END; ARR=ARRAY['A'……'J']OF REC; B)TYEP REC=RECORD N:(A,B,C,D,E,F,G,H,I,J); X,Y:ARRAY['A'……'J']OF CHAR END ARR=ARRAY['A'……'J']OF REC; C)TYPE REC=RECORD N:INTEGER; X,Y:ARRAY[1.。10]OF CHAR END ARR=ARRAY[1.。10]OF REC; D)TYPE REC=RECORD N:'A'……'J'; X,Y:ARRAY['A'……'J']OF CHAR END; ARR=ARRAY['A'……'J']OF REC; (13)要说明一个名为BODIES包含下面和值的集合变量: (1)RED ()YELLO2 (1)BLUE (2)WHITE (5)BLACK (6)GREEN 在下面给出的说明中,错误的是 |
|
A)TYPE MIX=[RED,YELLOW,BLUE,WHITE,BLACK,GREEN]; VAR BODIES:MIX; B)TYPE COLOR=(RED,YELLOW,BLUE,WHITE,BLACK,GREEN); MIX=SET OF COLOR; VAR BODIES:MIX; C)TYPE MIX=SET OF (RED,YELLOW,BLUE,WHITE,BLACK,GREEN); VAR BODIES:MIX; D)VAR BODIES:SET OF (RED,YELLOW,BLUE,WHITE,BLACK,GREEN); (14)设有如下说明:TYPE ARR=ARRAY[1.。10]OF CHAR; PTR=^ARR; VAR P:PTR; 若已执行了NEW(P),下面正确的赋值语句是 A)P^[5]:='A'B)P[5]^:='A'C)P^:='A'D)P[5]:='A' (35)下列哪组类型的变量都可以作为FOR循环中的循环控制变量? A)枚举型和实数型B)枚举型和记录型变量中的子界型域 C)字符型和集合型D)子界型和记录型 (16)设有如下说明:VAR Q,P:^INTEGER; 且已知有过程调用NEW(P);NEW(Q);则下面语句正确的是 A)READ(P,Q);B)P^:=Q^0 C)P:=P1 D)P:=PQ; (17)设变量说明如下: VAR CH1,CH2,CH:CHAR; I1,I2:INTEGER; R1,R2:REAL; 现在要把值'A','B',12,123,3.4E——4,——15.89依次赋给变量CH1,CH2,I1,I2,R1,R2.设输入数据格式为 A B12 123 3.4——4 ——15.89 (表示回车符) 在下列写出的读语句中,错误的是 A)READ(CH1,CH,CH2);READ(I1,I2);READLN(R1,R2); B)READLN(CH1,CH,CH2,I1);READLN(I2,R1,R2); C)READLN(CH1,CH,CH2,I1,I2,R1,R2); D)READLN(CH1,CH2,I1,CH);READLN(I2,R1,R2,CH); (18)有下列程序: |
|
PROGRAM PP1(OUTPUT); VAR A:INTEGER; FUNCTION F1(VAR A:INTEGER):INTEGER; BEGIN A:=A*A; F1:=A——1 END; BEGIN A:=3; A:=F1(A); WRITELN(A) END 执行此程序后的输出是 A)2 B)3 C)8 D)9 (19)已知有如下说明:VAR A:ARRAY[1.。10]OF INTEGER; K,I:INTEGER; 程序段: K:=1; FOR I:=1 TO 10 DO IF A[I]》A[K]THEN K:=I; WRITELN(A[K]); 执行后输出的是 A)数组中数的平均值B)数组中数的总和 C)数组中数的最小值D)数组中数的最大值 (20)设有说明 TYPE DATE=RECORD YEAR:0.。9999; MONTH:1.。12; DAY:1.。31 END PERS=RECORD NAME:PACKED ARRAY[1.。16]OF CHAR; BIRTHDATE:DATE; SEX:(MALE,FEMALE) END; VAR AA:PERS; 下列操作中有三个功能等价且正确,另一个不正确的是 A)READ(AA.BIRTHDATE.YEAR)B)WITH AA DO READ(BIRTHDATE.YEAR); C)WITH AA.BIRTHDATE DO D)WITH AA,BIRTHDATE DO READ(BIRTHDATE.YEAR);READ(YEAR); (21)下面哪个函数正确返回数组A中数的累加和? (类型T1为:T1=ARRAY[1.。10]OF INTEGER;) A)FUNCTION SUM(A:T1):INTEGER; VAR K:INTEGER; BEGIN SUM:=0; FOR K:=1 TO 10 D0 SUM:=SUMA[K]; END; B)FUNCTION SUM(A:T1):INTEGER; VAR S,K:INTEGER; BEGIN FOR K:=1 TO 10 DO S:=SA[K]; SUM:=S END; (C)FUNCTION SUM(A:T1):INTETER; VAR S,K:INTEGER; BEGIN S:=0;K:=0; REPEAT S:=0;K:=0; REPEAT K:=K1; S:=SA[K] UNTIL K=10 END |
|
C)FUNCTION SUM(A:T1):INTEGER; VAR S,K:INTEGER; BEGIN S;=0;K:=0; REPEAT K:=K1; S:=SA[K] UNTIL K=10; SUM:=S END (22)有下面程序: PROGRAM P1(OUTPUT); VAR K,I:INTEGER; BEGIN FOR K:=1 TO 10 DO BEGIN I:=K; REPEAT WRITE('*'); I:=I1 UNTIL I=K2 END; WRITELN END 该程序执行后输出'*'的个数是 A)100 B)50 C)30 D)20 (23)设函数说明为 FUNCTION CHECK(N,K:INTEGER):INTEGER; VAR M;INTEGER; BEGIN REPEAT M:=N MOD 10; N:=N DIV 10; K:=K——1 UNTIL K=0; CHECK:=M END 若在主程序中执行调用语句Y:=CHECK(1725,3);则Y的值为 A)0 B)2 C)5 D)7 (24)有下面程序: PROGRAM PP2(OUTPUT); VAR I,J:INTEGER; BEGIN FOR I:=5 DOWTO 1 DO BEGIN WRITE('*':I); FOR J:=3 DOWNTO 2*(I DIV 5)2 DO WRITE('*':5——I); WRITELN END END 该程序执行后产生的输出是 A)*B)*C)*D)* ********** ************* **************** ******************* (25)有下列函数说明: FUNCTION FIB(N:INTEGER):INTEGER; BEGIN IF N=1 THEN FIB:=0 ELSE IF N=2 THEN FIB:=1 ELSE FIB:=FIB(N——1)FIB(N——2) END; 表达式FIB(FIB(5))的值是 A)1 B)2 C)3 D)5 (26)已知有变量说明:VAR A,B:ARRAY[1.。10]OF INTEGER; I,J:INTEGER; 且数组A的内容如下图所示: A[1]……A[10] 则程序段:FOR I:=1 TO 10 DO BEGIN B[I]:=0; FOR J;=1 TO 10 DO IF A[J]=A[I]THEN B[I]:=B[I]1 END J:=1; FOR I:=2 TO 10 DO |
|
IF B[I]》B[J]THEN J:=I; WRITELN(A[J]): 执行后输出的是 A)8 B)4 C)3 D)2 (27)设K为整型变量,且有以下程序段: IF (K《=10)AND (K》0) THEN IF K》5 THEN IF K《8 THEN X:=0 ELSE X:=1 ELSE IF K》2 THEN X:=3 ELSE X:=4 用CRSE语句改写上述程序,执行效果一样的是 A)CASE K OF B)CASE K OF 1,2:X:=4;1:X:=4; 3,4,5:X:=3;2,3,4,5:X:=3; 8,9,10:X:=1;8,9,10:X:=1; 6,7:X:=0 6,7:X:=0 END END C)CASE K OF D)CASE K OF 1,2:X:=4;1,2,3:X:=4; 3,4,5:X:=3;4,5:X:=3; 9,10:X:=1;8,9.10:X:=1; 6,7,8:X:=0 6,7:X:=0 END END; (28)下面程序中有3个可以求Y=5! (1)PROGRAM P37; VAR Y,I:INTEGER; BEGIN Y:=1; FOR I:=2 TO 5 DO Y:=Y*I END ()PROGRAM P37; VAR Y,I:INTEGER; BEGIN Y:=1; FOR I:=5 DOWNTO 1 DO Y:=Y*I END (1)PROGRAM P37; VAAR Y:INTEGER; FUNCTION F(N:INTEGER);INTEGER; BEGIN IF N=1 THEN F:=1 ELSE F:=N*F(N——1) END; BEGIN Y:=F(5) END (2)PROGRAM P37; FUNCTION F(N:INTEGER):INTEGER; BEGIN IF N=1 THEN F:=1 ELSE F:=F*F(N——1) END; BEGIN Y:=F(5) END 另一个不能求Y=5!的程序是 A)(1)B)()C)(1)D)(2) (29)有下列程序 PROGRAM TEST(INPUT,OUTPUT); VAR A,B,C:INTEGER; PROCEDURE P(VAR X:INTEGER;Y:INTEGER); VAR M,N:INTEGER; BEGIN M:=X*Y; X:=X5; Y:=Y5; N:=X*Y; |
|
WRITELN(M:4,N:4) END; BEGIN A:=3;B:=3; P(A,B); P(A,B) END 此程序的运行结果是 A)9 64 B)9 64 C)9 64 D)9 64 9 24 24 104 64 169 9 64 (30)请阅读下面程序: PROGRAM PP6(INPUT,OUTPUT); VAR A:INTEGER; PROCEDURE P2(Y:INTEGER);FORWARD; PROCEDURE P1(VAR X:INTEGER); BEGIN IF X》100 THEN BEGIN X:=X——10; P2(X) END; END PROCEDURD P2; BEGIN P1(Y) END BEGIN READLN(A); P1(A); WRITELN(A) END 执行此程序时若从键盘输入229,则产生的结果是 A)P1,P2互相调用,永远无法结束B)输出99后结束 C)输出219后结束D)显示错误信息后停止运行 二。填空题(每空2分,共40分) 请将每空正确答案写在答题卡1~20序号的横线上,答在试卷上不得分 (5)已知有类型说明:TYPE MYFILE=FILE OF INTEGER;函数DOSUM可求出文件FPOINT中所有整数的平均值。 FUNCTION DOSUM(VAR FPOINT:MYFILE):REAL; VAR NUM,A,SUM:INTEGER; BEGIN RESET(FPOINT); SUM:=0;NUM:=0; WHILE NOT ____________DO BEGIN READ(_________); SUM:=SUMA;NUM:=NUM1 END; CLOSE(FPOINT); DOSUM:=SUM/NUM END; (6)下面程序输出下面的图形(每行之间无空行,每个'*'之间无空格) * ** *** **** *** ** * PROGRAM PRO1(OUTPUT); VAR I,J:INTEGER; BEGIN FOR I:=1 TO 4 DO BEGIN FOR J:=1 TO_____________ DO WRITE('':1);{引号内是一个空格符} FOR J:=1 TO___________ DO WRITE('*':1); WRITELN END; FOR I:=1 TO 3 DO BEGIN |
|
FOR J:=1 TO I DO WRITE('':1);{引号内是一个空格符} FOR J:=1 TO_____________ DO WRITE('*':1); WRITELN END END (8)类型ARR为:TYPE ARR=ARRAY[1.。16]OF INTEGER; 已知数组A中有15个整数已按从小到大的顺序排列,过程INSERTONE把任意整数B填入A中并使A中数据仍然有序。 PROCEDURE INSERTONE(VAR A:ARR;B:INTEGER); VAR K:INTEGER; BEGIN K:;_____________ WHILE (K》1)AND(__________)DO BEGIN A[K]:=A[K——1]; K:=K——1 END; A[K]:=____________ END (9)已知E 11/1!1/2!1/3-…1/N! 用上述公式求E的近似值,要求累加所有小于10**——6的项值 PROGRAM SJ22(INPUT,OUTPUT); VAR P,T,E:REAL N:INTEGER; BEGIN E:=1; N:=1; T:=1; _______________ WHILE______________DO BEGIN E:=E=T; N:=N1; P:=P*N; T:=___________ END; WRITELN(E:10:7) END (10)过程ARRAYSORT对于ARR型数组A中矩阵按每行(第1个下标代表行)的最大值从小到大对矩阵的行进行排序。即:排序后第一行的最大值是各行最大值中最小的,最后一行的最大值是各行最大值中最大的 例如:若原矩阵为 1 3 7 9 2 0 1 1 2 3 4 3 8 1 6 4 0 2 0 1 0 1 1 2 3 4 3 8 1 6 4 0 2 0 1 1 3 7 9 2 其类型ARR为:TYPE T1=ARRAY[1.。5]OF INTEGER; ARR=ARRAY[1.。4]OF T1; 请填空完成 PROCEDURE ARRAYSORT(VAR A:ARR); VAR I,J,K:INTEGER; FUNCTION MAXONE(B:___________):INTEGER; VAR A,K:INTEGER; BEGIN A:=B[1]; |
|
FOR K:=2 TO 5 DO IF A___________THEN SWAP(____________) END 1997年9月全国计算机等级考试二级笔试试卷 基础知识和PASCAL语言程序设计 答案及评分标准 一。选择题(1~40题,每题1分;41~50题;每题2分,共60分) 1.D 2.D 3.A 4,B 5,B 6.A 7.D 8.B 9.C 10.C 11.D 12.B 13.B 14.D 15.C 16.B 17.C 18.B 19.B 20.A 21.B 22.D 23.A 24.D 25.D 26.B 27.C 28.B 29.A 30.B 二。填空题(1~20,每空2分,共40分) 6)EOF(FPOINT) FPOINT,A 7)4——I或——i4 I 4——I或——I4 8)16写成16;不扣分 A[K——1]》B或A[K——1]》=B或NOT(A[K——1]=1E——6或NOT(T《1E——6)(1E——6也可写成0.000001) 1/P或1/P; 10)T1 3 MAXONE(A[J]) A[J],A[I]或A[I],A[J] |
|
·1994年4月全国计算机等级考试二级笔试Pascal语言
·1995年全国计算机等级考试二级笔试Pascal语言 ·1996年4月全国计算机等级考试二级笔试Pascal语言 ·1996年9月全国计算机等级考试二级笔试Pascal语言 |
| 【关闭窗口】 | |