left 您的位置: 洪恩在线 -> 继续教育 -> 计算机考级 right

请给我们来信

我要发言

计考之友
  
  其他科目  
 

1996年9月全国计算机等级考试二级笔试试卷基础知识和PASCAL语言程序设计


    (考试时间120分钟,满分100分)

    一.选择题(1~40每个选项1分,41~50每个选项2分,共60分)

    下列各题A),B),C),D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

    (1)下列常量说明中,合法的是

    A)CONST COLOR=RED。。BLUE;B)CONST CONST=10*5;

    C)CONST X1:=3。9;D)CONST ABC='ABC';

    (2)下列类型的变量中,不能用WRITE语句直接输出的变量是

    A)布尔型变量B)枚举型变量度C)整型变量度D)字符变量

    (1)下列表达式中值为假的是

    A)'AB'《'ABC'B)SUCC(FALSE)=TRUE C)ODD(351)=FALSE D)219《》219

    (2)已知A,B,C,D是类型简单变量,且都已有互不相同的值,执行下列语句

    B:=A;A:=C;D:=A;D:=B;

    后,其值相等的变量是

    A)A,D B)A,C C)C,B D)B,A

    (5)下面合法的PASCAL常量是

    A)。25 B)“RED”C)'%'D)3E——2。5

    (6)设A,B,C,D,E均为整型变量,且A=13,B=2,C=10,D=3,E=2,则表达式:

    A——B*C DIV D MOD E的值是

    A)13 B)——7 C)11 D)0

    (7)有如下说明:CONST S=50;

    VAR A:INTEGER;B:REA;C:CHAR;

    下面哪个语句是错误的?

    A)A:=ROUND(B);B)C:=CHR(S)C)S:=50;D)B:=A;

    (8)下列哪个类型说明是错误的?

    A)TYPE T1=PACKED ARRAY[1。。20]OF CHAR;

    B)TYPE T1=(A,B,C,D,E);

    T2=ARRAY[A。。B]OF CHAR;

    C)TYPE T1='A'。。'Z';

    D)TYPE T1=(1,2,3,4);

    T2=ARRAY[1。。4]OF INTEGER;

    (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



【关闭窗口】