| 您的位置: 洪恩在线 -> 继续教育 -> 计算机考级 |
|
我要发言
|
1996年9月全国计算机等级考试二级笔试试卷基础知识和PASCAL语言程序设计
|
|||||||||||||
|
(9)设有说明VAR F:FILE OF INTEGER;则F所代表的文件是 A)ASCII码文件B)二进制文件C)文本文件D)存放整数的文本文件 (10)下列哪个表达式无错误且结果是空集? A)[5]——[1。。4]B)[5][1。。4]C)[5]*[1。。4]D)[5]IN [1。。4] (11)设三个字符组成的集合是['A','B''C'],其子集共有多少个? A)9个B)8个别C)7个D)6个 (12)算式的正确PASCAL表达式是 A)B/A/A*(N——1)*SQRT(EXP(LN(3*A——B)*N)) B)B/A/(A*(N——1))*SQRT(EXP(LN(3*A——B)*N)) C)B/A/A*(N——1)*SQRT((3*A——B)**N) D)B/A/A/(1/(N——1))*SQRT(EXP(LN(3*A——B)*N)) (13)设A,B,C,D均为整型变量,有下面的程序段 A:=0;B;=0; READ(A,B); READLN(C); READLN(D); 若从键盘输入:1 2 3 4 5 6 7 (注:表示回车) 则A,B,C,D中的数是 A)1,0,2,5 B)1,2,3,5 C)1,2,5,6 D)1,2,3,4 (14)有变量说明如下:VAR P,Q:^INTEGER; A:ARRAY[1.。10 OF INTEGER; 以下哪些语句是正确的? A)P^:=4;Q^:=5;A[P^]:=Q^;B)P^:=4;Q^:=5;A[P]:=Q^; C)P^:=4;Q^:=5 ;A[P^]:=Q;D)P^:=4;Q^=5;A[P]:=Q; (35)要用一个数组元素存放某班30人3门课的考试成绩(考试成绩保留1位小数),下面哪个说明中的数组可以存放这些数据? A)VAR S:ARRAY[1。。3,1。。30]OF INTEGER; B)VAR S:ARRAY['A'。。'C',1。。30]OF REAL; C)VAR S:ARRAY[1。。30,BOOLEAN]OF REAL; D)VAR S:ARRAY[1。。30,'A'。。'C']OF INTEGER; |
|
(16)如果用T1类型的变量存放某人的姓名(最多4个汉字)。出和日期和式资,则T1应是下面哪种类型? A)T1=RECORD B)T1=RECORD NAME:INTEGER;NAME:ARRAY['A'。。'H']OF CHAR; YEAR,MONTH,DAY:INTEGER;YEAR,MONTH,DAY:CHAR; WAGE:REAL;WAGE:BOOLEAN; END;END; C)T1=RECORD D)T1=ARRAY[1。。8,1。。4]OF INTEGER; NAME:ARRAY[1。。8]OF CHAR; YEAR,MONTH,DAY:INTEGER; WAGE:REAL; END; (17)设有如下说明: CONST A=1;B=2;C=3; VAR X:ARRAY[1。。15]OF INTEGER; 且已知X[1]=1;X[2]=7;X[3]=9;X[4]=1;X[5]=6; 则表达式:(X[B]——1》x[5])and (x[c]/c《》0 )or not(x[ab]》(ab))的值是 A)TRUE B)FALSE C)0 D)1 (18)设CH是字符型变量,有表达式如下: (ch《》'a')and (ch《》'c')and (ch《》'h') 下面哪个表达式与该表在式完全等价(即当CH为任何值时,两表达式的值均为相同)? A)NOT(CH IN['A'。。'H']) B)NOT(CH IN['H','C','A']) C)NOT(CH IN['A'。。'B'])AND NOT(CH IN['C'。。'G'])AND NOT(CH IN['H']) D)CH NOT IN['A','C','H'] (19)有如下说明:VAR A:INTEGER;B:1。。100;C:REAL; PROCEDURE P1(X:REAL;VAR Y:REAL); 下面的过程调用中哪个是正确的? A)P1(A,B);B)P1(C,D);C)P1(C,A);D)P1(B,C); (20)已知有数组说明:VAR A:ARRAY[1。。10]OF INTEGER; A中的值如下图示: 执行语句WRITELN(A[A[7]DIV A[3]])后的输出是 A)4 B)6 C)3 D)14 (21)程序FOR I:=1 TO 5 DO FOR J:=2 TO I DO WRITELN('*'); |
|
输出'*'号的个数是 A)5 B)10 C)15 D)25 (22)已知:CH1,CH2都是字符型变量,设有程序段如下: READ(CH1,CH2); IF CH2《》'A'THEN BEGIN CASE CH1 OF 'A':CASE CH2 OF 'C':WRITE('AC'); 'B':WRITE('AB') END; END ELSE WRITE('BA'); 若执行此程序段时输入的数据是AB,则输出是 A)AC B)BB C)BA D)AB (23)下面程序段不能实现求阶乘8!(结果在P中,P是实型变量)的是 A)P:=1;B)P:=2; FOR N:=2 TO 8 DO FOR N:=8 DOWNTO 3 DO P:=P*N;P:=P*N; C)P:=1;N:=1;D)P:=1;N:=2; WHILE N《=8 DO REPEAT BEGIN P:=P*N; N:=N1;N:=N1 P:=P*N UNTIL N》8; END; (24)已知有如下说明: VAR A:ARRAY[1。。4,2。。5]OF INTEGER; B:ARRAY[2。。5,1。。4]OF INTEGER; I,J:INTEGER; 有A已赋值,若将A的所有元素送给B,下面的程序段运行时无错误的是 A)FOR I:=1 TO 4 DO B)FOR I:=1 TO 4 DO FOR J:=1 TO 4 DO FOR J:=2 TO 5 DO B[J,I]:=A[I,J];B[I,J]:=A[I,J]; C)FOR I:=1 TO 4 DO D)FOR I:=1 TO 4 DO FOR J:=2 TO 5 DO B[I,I1]:=A[I,I1]; B[I1,J——1]:=A[I,J]; (25)已知A,B,C,W是同类型变量,A,B均已赋值,且满足A=60 THEN WRITELN('FAIL');WRITELN('PASS'); C)IF (A》=60)AND (B》=60)THEN D)IF B》=60 THEN WRITELN('PASS')IF A》=60 THEN ELSE WRITELN('PASS') IF B《60 THEN ELSE WRITELN('FAIL');WRITELN('FAIL'); (27)PROGRAM PROG1(INPUT,OUTPUT); VAR A,B:INTEGER; |
|
PROCEDURE P1(X:INTEGER;VAR Y:INTEGER); BEGIN Y:=XY; WRITELN(X:3,Y:3) END; BEGIN A:=5;B:=8; P1(A,B); P1(AB,A); P1(A DIV B,B) END 执行上面程序的输出是 A)5 13 B)5 13 C)5 13 D)5 13 18 5 18 23 18 5 18 23 1 13 1 14 1 14 1 13 (28)设N,K为整型变量,要求当常量A为1~100内(含1和100)任意整数时都能把小于A*A的最大整数放入变量N中,下列哪个程序可以实现上述要求? A)N:=1;B)N:=0; REPEAT REPEAT N:=N1 N:=N1 UNTIL N》=A*A;NUTIL N》=A*A; N:=N——1; C)K:=0;D)N:=0; WHILE K=A DO BEGIN D:=D DIV 3;N:=N1 END; F1:=N END; (29)设A,B,C均为整型变量,下面的程序段均调用函数F1,请挑出执行是会出现死循环的程序段。 A)B:=100;C:=2*(F1(B)5);B)FOR B:=1 TO 5 DO WRITELN(A:5,C:5);IF F1(B)》3 THEN WRITELN(F1(B));C:=F1(B*B); C)B:=1;D)B:=1; REPEAT WHILE F1(B)》3 DO B:=B1 B:=F1(B*B)F1(B); UNTIL F1(B)》3; (30)设有以下函数说明: FUNCTION P(N,X:INTEGER):INTEGER; BEGIN IF N=0 THEN P:=1 ELSE IF N=1 THEN P:=X ELSE P:=TRUNC(((*N)*P(N——1,X)——(N——1)*P(N——2,X))/N); END 执行语句Y:=P(1,5)后,Y的值是 A)30 B)14 C)21 D)34 二.填空题: 请将每空的正确答案写在答题卡1~20序号的横线上,答在试卷上不得分。 (6)下面的程序从键盘接收任意6个数放入数组A中,8 1 4 2 5 6 假设这6个数为:8 1 4 2 5 6 ,则要输出一个具有6 8 1 4 2 5 如右内容的方阵。5 6 8 1 4 2 2 5 6 8 1 4 4 2 5 6 8 1 |
|
1 4 2 5 6 8 PROGRAM EXAM(INPUT,OUTPUT); VAR A:ARRAY[1。。6]OF INTEGER; I,J,K:INTEGER; BEGIN FOR I:=1 TO 6 DO READ(__________); READLN; FOR I:=1 TO 6 DO BEGIN IF I=1 THEN K:=1 ELSE K:=____________; FOR J:=1 TO_____________DO BEGIN WRITE(A[K]:2); IF K=6 THEN K:=1 ELSE K:=______________ END; WRITELN END END (7)下面的程序最多可输入100位学生的姓名,姓名全由大写英文字母组成,输入'?'后则停止输入,然后按字典打印这些姓名。 PROGRAM SORT(INPUT,OUTPUT); CONST MAX=100;LENGTH=20; TYPE STRING=PACKED ARRAY[1。。LENGTH]OF CHAR; VAR NAME:ARRAY[1。。MAX]OF STRING; T:STRING; I,J,COUNT:INTEGER; BEGIN I:=1; READLN(NAME[I]); WHILE NAME[I]《》'?'DO BEGIN _____________; READLN(NAME[I]) END; COUNT:=______________; FOR I:=1 TO____________DO BEGIN FOR J:=I1 TO COUNT DO IF NAME[I]_____________NAME[J]THEN BEGIN T:=NAME[I]; NAME[I]:=NAME[J]; NAME[J]:=T END; WRITELN(___________) END END (8)已知有类型说明: TYPE LINK=^NODE; NODE=RECORD DATA:INTEGER; NEXT:LINK END; 设HEAD为LINK类型变量,并指向一个不少于2个结点的单链表,如下图所示,设该链表已经建立,下面的过程要遍历链表,并从HEAD所指的结点开始依次打印出各结点数值。 PROCEDURE PNODE(HEAD:___________); VAR P:LINK; BEGIN P:=HEAD; WHILE P《》____________DO BEGIN WRITE(P^。DATA); p:=_____________ |
|
END; WRITELN END (9)在下列程序中,当输入一个定的数N后,能输出所有不超过N的,其平方由左右对称(1位数也认为是左右对称)的数字组友成的数。例如:若输入23,则应输出:1,2,3,11,22,因为它们的平方依次是:1,4,9,121,484,都是左右对称的数字组成的数 PROGRAM PALINDROME(INPUT,QUTPUT); CONST MAX=1000; VAR M,N,I,J,S:INTEGER; D:ARRAY[0。。MAX]OF INTEGER; BEGIN READLN(N); FOR M:=1 TO N DO BEGIN {计算M的平方且存放于S} _______________ {把组成数S每位数字存放于数组D中} J:=0; WHILE S》0 DO BEGIN J:=J1; D[J]:S MOD 10; —— END; {判断组成数S 的数字是否左右对称} I:=1; WHILE(D[I]=D[J])AND (I〈J〉DO BEGIN I:=I1;J:=J——1 END; {若对称则输出} IF I〉=J THEN WRITELN (——) END END 1996年9月全国计算机等级考试二级笔试试卷基础知识和PASCAL 语言程序设计答案及评分标准 一,选择((1)~(20)题每题1分,(21)~(50)题第题2分,共和制60分) 1,C 2,B 3,C 4,B 5,B 6,D 7,C 8,D 9,D 10,B 11,C 12,B 13,D 14,C 15,D 16,B 17,C 18,C 19,D 20,A 21,D 22,B 23,D 24,B 25,C 26,A 27,C 28,D 29,B 30,C 二,填空题(每空2分,共同40分) (所有字母都充许大,小写或大小写混合) 1,255 2,——77 3,COMMAND。COM 4,CD C: 5,C;、D1》 6.A[I] 7.8——I (写成8——I;不扣分) 8.6 9.SUCC(K)或K1(答案后面也可加;号) |
|
10.I:=I1 或I:=SUCC(I)(答案后面加;号不扣分) 11.I——1(只写I扣1分,答案后面加;号不扣分) 12.COUNT——1 13.》或》= 14.NAME[I] 15.LINK 16.NIL 17.P^。NEXT或P^。NEXT; 18.S:=M*M;(少写分号扣1分) 19.S:=S DIV 10 或S:=:TRUNC(S/10)(答案后面也可加;号) 20.M |
|
|
| 【关闭窗口】 | |