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

请给我们来信

我要发言

计考之友
  
  其他科目  
 

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


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

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

    (1)下面是对PASCAL程序组成结构的四条描述,其中错误的是

    A)PASCAL程序必须有程序首部

    B)程序的注释部分只能写在程序中一条语句的最后

    C)程序首部的参数部分可有可无

    D)一个完整的PASCAL程序的主程序只能有一个

    (2)设A,B,C为整型变量,且有A:=5;B:=2;下面能使C的值为1的正确语句是

    A)C:=(A——2)/B;B)C:=A MOD (B2.0);

    C)C:=A DIV (B1);D)C:=(A——2)DIV (B/1);

    (3)设有常量定义:CONST A=0;B=22768;下面对常量引用正确的是

    A)READLN(A);B)A:=A=1;

    C)PROCEDURE P(C:B.。1);D)VAR C:A.。B;

    (4)下面函数值等于FALSE 的

    A)ODD(TRUNC(——7.49))B)ROUND((ABS(——9.5)))《10

    C)NOT (TRUE=7

    (5)设有说明VAR COLOR;(RED,GREEN,YELLOW,BLUE);

    A:BOOLEAN;

    下面语句正确的是

    A)COLOR:='GREEN';B)WRITELN(GREEN);

    C)WRITELN(COLOR);D)IF RED30 AND 70》15 C)15《30《50 D)70 NOT 70》20

    (8)标准PASCAL程序说明部分的正确顺序是

    A)LABEL——》CONST ——》VAR ——》TYPE B)VAR——》CONST——》LABEL——》TYPE

    C)LABEL——》CONST——》TYPE——》VAR D)CONST——》VAR——》TYPE——》LABEL

    (9)下列说法中正确的是

    A)一个没有压缩的数组所占存储单元是压缩数组的4倍

    B)使用压缩数组的程序比使用未经压缩数组的程序执行起来要慢

    C)只有字符数组才可以压缩

    D)压缩数组中的元素是不可单独存取的

    (10)设有如下说明:TYPE PTR=^REC;

    REC=RECORD

    X:INTEGER;

    CH:CHAR

    END

    VAR P:PTR;

    下面正确的赋值语句是(设已执行了NEW(P))

    A)P^。X:=3;B)P.X^:=3;C)(P.X)^:=3;D)P.X:=3;

    (11)下面满足当(a《=b)and (c=d)时U:=W否则X:=Y的IF语句是

    A)IF A表示回车符):

    1 2 3

    4 5 6

    7 8 9

    下列语句组中不能使A=1,B=7的是

    A)READLN(A,B,B,B,B,B,B,C,C);

    B)READLN(A);C)READLN(A,C,C,C);D)READLN(A,C,C);

    READLN;READ(B);READLN(B,C,C);

    READLN(B);

    (15)下面程序段,能正确输出5行“HELLO”的信息是

    A)X:=1;B)X:=0;

    WHILE X《5 DO WHILE X《5 DO

    BEGIN BEGIN

    WRITELN('HELLO');WRITCLN('HELLO');

    X:=X1 X:=X1

    END;END;

    C)X:=0;D)X:=1;

    WHILE 《=10 DO WHILE ODD(X)DO

    BEGIN WHILE X《10 DO

    WRITELN('HELLO');BEGIN

    X:=X2 WRITELN('HELLO');

    END X:=X1

    END;

    (16)设有集合运算[5,7,9.。11]——[3,11,7],正确的结果是

    A)[5,3,9.。10]B)[5,9.。10]C)[5,3,9,10]D)[3,5,9.。10]

    (17)设有下面过程P1的说明(仅给出过程的主要部分)

    PROCEDURE P1(A,B:INTEGER;VAR C:REAL);

    ……

    BEGIN

    ……

    {调用P1}

    ……

    END;

    下面给出的可以替换{调用P1}的正确语句是

    A)P1(A,TRUE,C);B)P1(A/B,B,C);

    C)P1(A,B,4.5)D)P1(A DIV B,CB,C);

    (18)程序PROGRAM P1(OUTPUT);

    TYPE T1=(ONE,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN);

    VAR X:T1;K:INTEGER;

    BEGIN

    X:=THREE;

    FOR K:=1 TO 5 DO

    X:=SUCC(X);

    WRITELN(ORD(X))

    END

    执行后的输出是

    A)3 B)5 C)7 D)8

    (19)要求程序的功能是:依次读入数据,当输入数据的范围在50——100(含50和100)的数满5个时计算这5个数的和并输出。下面程序段能实现此功能的是

    A)SUM:=0;N:=0;

    REPEAT

    READLN(A);

    IF (A《=100 AND A》=50)THEN

    BEGIN

    SUM:=SUMA;

    N:=N1

    END;

    UNTIL N》=5;

    WRITELN(SUM)

    B)SUM:=0;N:=0;

    REPEAT

    READLN(A);

    IF(A《=100)AND (A》=50)THEN

    BEGIN

    SUM:=SUM=A

    N:=N=1

    END;

    UNTIL N》=5;

    WRITELN(SUM)

    C)SUM:=0;N:=0;

    REPEAT

    READLN(A);

    IF (A《=100)AND (A》=50)THEN

    SUM:=SUMA;

    N:=N=1

    UNTIL N》=5;

    WRITELN(SUM)

    D)SUM:=0;N:=0;

    REPEAT

    READLN(A);

    IF (A《=100)AND (A》=50)THEN

    BEGIN

    SUM:=SUMA;

    N:=N1

    END

    UNTIL N》6;

    WRITELN(SUM)

    (20)设有下面程序:

    PROGRAM P1(OUTPUT);

    VAR J,K,Z:INTEGER;

    BEGIN

    Z:=0;

    FOR J:=1 TO 10 DO

    BEGIN

    Z:=Z1;

    FOR K:=1 TO 10 DO Z:=Z1

    END

    WRITELN(Z)

    END

    执行此程序后的输出是

    A)10 B)20 C)100 D)110

    (21)欲输出被2,3,5除余数均为1的最小的10个正整数,下列不能实现此功能的程序是

    A)PROGRAM X1(INPUT,OUTPUT);

    VAR COUNTER,NUMBER:INTEGER;

    BEGIN

    COUNTER:=0;

    NUMBER:=0;

    REPEAT

    NUMBER:=NUMBER1;

    IF (NUMBER MOD 2=1)AND (NUMBER MOD 3=1)AND (NUMBER MOD 5=1)

    THEN BEGIN

    WRITELN(NUMBER);

    COUNTER:=COUNTER1

    END

    UNTIL COUNTER=10;

    END

    b)PROGRAM X2(INPUT,OUTPUT);

    VAR COUNTER,NUMBER:INTEGER;

    BEGIN

    COUNTER:=0;

    NUMBER:=0;

    WHILE COUNTER《10 DO

    BEGIN

    NUMBER:=NUMBER1;

    IF (NUMBER MOD 2=1)AND (NUMBER MOD 3=1)

    AND (NUMBER MOD 5=1)

    THEN BEGIN

    WRITELN(NUMBER);

    COUNTER:=COUNTER1

    END

    END

    END

    C)PROGRAM X3(INPUT,OUTPUT);

    VAAR COUNTER,NUMBER:INTEGER;

    BEGIN

    NUMBER:=1;

    FOR COUNTER:=1 TO 9 DO

    BEGIN

    WRITELN(NUMBER);

    NUMBER:=NUMBER2*3*5

    END;

    WRITELN(NUMBER)

    END

    D)PROGRAM X4(INPUT,OUTPUT);

    VAR COUNTER,NUMBER:INTEGER;

    BEGIN

    NUMBER:=1;

    FOR COUNTER:=1 TO 10 DO

    BEGIN

    NUMBER:=NUMBER2*3*5

    VRITELN(NUMBER);

    END;

    WRITELN(NUMBER)

    END

    (22)设有如下过程P1的说明(仅给出过程的主要部分)

    PROCEDURE P1;

    VAR A,B:INTEGER;{**1**}

    C,D:CHAR;

    PROCEDURE P2(VAR E:INTEGER);

    VAR B,F:REAL;

    BEGIN

    ……

    END;

    PROCEDURE P3(G:CHAR);

    VAR B,C:INTEGER;

    BEGIN

    ……

    END;

    BEGIN

    ……

    END

    在过程P1中,在标有{**1**}的程序行中对变量B的作用域最适当的描述是

    A)在P1中不在P3中B)中P1中不在P2中

    C)在P1中也在P2和P3中草药D)在P1中不在P2和P3中

    (23)已知有下面程序段:……

    REPEAT

    Readln(a);

    IF a=0 THEN f:=True

    ELSE f:=False

    UNTIL f;

    其中a为整型变量,f为布尔型变量,下面哪个程序段与上面的程序段完全等价?

    A)Readln(a);B)Readln(a);

    IF a=0 THEN f:=True WHILE NOT f DO

    ELSE f:=False;BEGIN

    WHILE f DO IF a=0 THEN f:=True

    BEGIN ELSE f:=False;

    Readln(a);Readln(a)

    IF a=0 THEN f:=True END;

    ELSE f:=False

    END;

    C)f:=True;D)Readln(a);

    WHILE f DO IF a=0 THEN f:=True

    BEGIN ELSE f:=False;

    Readln(a);WHILE NOT f DO

    IF a=0 THEN f:=True BEGIN

    ELSE f:=False Readln(a);

    END;IF a=0 THEN f:=True

    ELSE f:=False

    END;

    (24)已知有如下说明:VAR a:ARRAY[——3.。3]OF Integer;

    k,i:Integer;

    程序段:

    k:=0;

    FOR i:=——3 TO 3 DO

    IFi《0 THEN a[i]:=k1

    ELSE a[i]:=k2;

    Writeln(a[3]——a[——3]);

    输出的是

    A)10 B)7 C)2 D)1

    (25)设有说明

    TYPE

    byte=0.。7;

    word=0.。15;

    num=Real;

    VAR

    a:byte;b,c:word;d:Integer;c:num;f:Char;

    下面哪一组变量的类型是相容的而不是同一的?

    A)a和c B)c和f C)c和d D)c和d

    (26)已知有变量说明:VAR a:ARRAY[1.。5]OF Real;

    i:Integer;

    且数组a的内容如下图所示:

    a[1]a[2]a[3]a[4]a[5]

    则程序段:i:=3;

    a[i]:=a[Trunc(a[i——1]);

    Writeln(a[i]:3:1,'和',a[i2])

    输出的是

    A)5.9和0 B)5.7和5.9 C)5.9和5.9 D)6.0和5.9

    (27)已知函数f1如下:

    FUNCTION f1(a,b:Integer):Integer;

    BEGIN

    IF a=0 THEN

    f1:=b

    ELSE

    f1:=f1(Pred(a),Succ(b))

    END;

    函数f1返回的是

    A)a——b的值B)b——a的值C)a*b的值D)ab的值

    (28)设有如下函数说明

    FUNCTION ack(m,n:Integer):Integer;

    BEGIN

    IF m=0 THEN ack :=n1

    ELSE IF (m《》0)AND (n=0)THEN ack:=ack(m——1,1)

    ELSE ack:=ack(m——1,ack(m,n——1))

    END;

    若在主程序中执行Writeln(ack(2,1)),则输出结果是

    A)1 B)2 C)4 D)5

    (29)设有如下图所示的单链表

    info next info next info next info next

    head →→……

    ↑

    p

    则p^。next^。info的值是

    A)19 B)47 C)64 D)93

    (30)设有说明VAR infile,outfile:Text;

    ch:Char;

    和程序段

    WHILE NOT Eof(infile)DO

    BEGIN

    WHILE NOT Eoln(infile)DO

    BEGIN

    Read(infile,ch);

    Write(outfile,ch);

    END;

    Writeln(outfile)

    END;

    对该程序段是否正确进行判断,并简要说明其功能,下面描述正确的是

    A)错误,无限循环。B)正确。拷贝并显示文件infile.

    C)错误。仅能读入一行文件D)正确。拷贝文件infile到outfile.

    二。填空题(每空2 分,共40 分)

    请将每空的正确答案写在答题卡1——20序号的横线上,答在试卷上不得分。

    (1)与十进制数101等值的二进制数为1

    _____.

    (2)DOS命令为内部命令与外部命令,XCOPY命令属于2 命令

    _____

    (1)设当前盘为A盘,当前系统提示符为“》”,在不改变当前盘的情况下,显示C盘的当前目录路径,应使用命令3

    ______

    (2)自动批处理文件名必须是4

    _____

    (5)设在当前盘当前目录下有两个文件W.TXT 与P.TXT,现要将文件P 。TXT连接到文件W.TXT的后面,若使用COPY命令,则完整的命令为5

    _____

    (6)下面程序可从键盘输入一个大于0且小于1000的整数,然后输出此数的所有整数因子。

    例如:输入12,则输出:quotient of 12:1 2 3 4 6 12

    PROGRAM pp(Input,Output);

    VAR a,k:Integer;

    BEGIN

    Readln(a);

    IF(a》0)AND (a《1000)THEN

    BEGIN

    Write('quotient of',a:3,':');

    FOR k:=1 TO 6 DO

    _____

    IF 7 THEN

    ____

    Write(k:3)

    END;

    Writeln

    END.

    (7)函数mutsym 可判断方阵a 是否关于主对角线对称,若对称则返回True;否则返回False.其中类型arr为:arr=ARRAY[1.。10,1.。10]

    OF Integer;

    FUNCTION mutsym(a:arr):Boolean;

    VAR k,j:Integer;

    flag:Boolean;

    BEGIN

    flag:=True;

    FOR k:=1 TO 8 DO

    ______

    FOR j:=1 TO 9 DO

    ____

    flag:=10 AND (a[k,j=a[j,k]);

    mutsym:=flag

    END;

    (8)由键盘输入一个正整数,找出大于或等于该的第一个质数。

    PROGRAM sj52(Output);

    VAR k,a:Integer;

    f:Boolean;

    BEGIN

    f:=False;

    Read(a);

    WHILE NOT f DO

    BEGIN

    k:=2;f:=11

    ____

    WHILE f AND (k《(a DIV 2))DO

    IF (a MOD k)=0 THEN f:=12

    _____

    ELSE 13

    _______

    IF NOT f THEN

    a:=a1;

    END;

    Writeln(a);

    END.

    (9)下面程序可输出如下结果,请填空完成该程序。

    1

    ——1 ——12

    1 12 123

    ——1 ——12 ——123 ——1234

    1 12 123 1234 ——12345

    PROGRAM t2(Output);

    VAR m,n,k,s:Integer;

    BEGIN

    FOR m:=1 TO 5 DO

    BEGIN

    s:=14

    ______

    FOR n:=1 TO 15 DO

    _____

    BEGIN

    s:s*10n;

    IF 16 THEN

    ____

    Write(s:6)

    ELSE

    Write(——s:6)

    END;

    Writeln

    END

    END.

    (10)函数func返回数组a中与所有数的平均值最接近的那个数(此数可能大于也可能小于平均值)。若有多个数最接近平均值,则只返回其中之一类型arr为:TYPE arr =ARRAY[1.。10]OF Integer;

    FUNCTION func(a:arr):Integer;

    VAR n,k:Integer;b,s:Real;

    BEGIN

    17

    ______;

    FOR k:=2 TO 10 DO

    s:=s/10;

    n:=1;

    FOR k:=2 TO 10 DO

    IF 18 《19 THEN

    ____ ____

    n:=k;

    func:=20

    _____

    END;

    全国计算机等级考试二级笔试试卷

    基础知识和Pascal语言程序设计

    答案及评分标准

    一。选择题(1——40题每题1 分,41——50题每题2 分,共60 分)

    (1)C (2)D (1)A (2)D (5)D (6)C (7)B

    (8)A (9)C (10)A (11)B (12)C (13)A (14)B

    (15)A (16)C (17)D (18)C (19)D (20)C (21)B

    (22)C (23)D (24)B (25)D (26)B (27)A (28)C

    (29)B (30)A

    二。填空题(1——20共20空,每空2分)

    ①1.1100101或(1100101)2

    ②2.外部(答外部命令不扣分)

    ③3.CD C:(CD与C:中间至少要有一个空格)

    ④4.AUTOEXEC.BAT

    ⑤5.COPY W.TXTP.TXT或COPY W.TXTP.TXT W.TXT

    ⑥6.a

    7.a mod k=0 或a——(a div k)*k=0或a=(a DIV k)*k

    ⑦8.10 9.k——1 10.flag

    ⑧11.True 12.False 13.k:=k1

    ⑨14.0 15.m

    16.Odd(m)或m MOD 2《》0或m——(m DIV 2)*2《》0或m《》(m DIV 2)*2或其它当m为奇数时则为真的布尔表达式

    ⑩17.s:=a[1]

    18.Abs(a[k]——s)

    19.Abs(a[n]——s)

    20.a[n]或a[n];



【关闭窗口】