程序设计初赛试题
文章作者:admin 发布日期:2013-12-3 文章录入:admin 点击:720
    2010年江东区第二届青少年程序设计竞赛笔试试题

    (说明:请将答案填在答题卡上,只交答题卡,时间120分钟。)

     

    1、 选择题:(每题2分,共20分)

    1、小张用十六进制、八进制和十进制写了如下的一个等式:52-19=33,式中三个数是各不相同进位的数,试问52、19、33,分别为(         )。

    A、八进制、十进制、十六进制                 B、十进制、十六进制、八进制

    C、八进制、十六进制、十进制                 D、十进制、八进制、十六进制

    2、运算式(2010)10-(3723)8的结果是(        )。

    A、(-1715)10             B、(1070)8                      C、(-5)10         D、(111)2

    3、PASCAL不允许输入的数据是(       )。

    A、布尔型      B、实型          C、字符型            D、整型

    4、FOR 循环的循环变量(     )。

    A、一定出现在循环体内                   B、不能出现在循环体内

    C、可以出现在循环体内                    D、没有任何限制

    5、以下数组说明错误的是(        )。

    A、var  a:array[Boolean] of integer;                   B、var a:array[i..j] of integer;

    C、var num:array[0..8] of array[‘a’.. ‘f’]of integer;     D、var a:array[‘a’.. ‘z’] of Boolean;

    6、下面函数调用语句含有的实参个数为(      )。

      Y:=fun((a,b),(c,d,e));

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

    7、对嵌套子程序调用说法正确的是(    )。

    A、外层子程序可以调用所有的内层子程序   

    B、内层子程序只可以调用包含本身的外层子程序,不可以隔层调用

    C、外层子程序必须能完全套住内层子程序        

    D、以上说法均不正确

    8、下列程序哪个语句使用前必须关闭输出文件(    )。

    A、close              B、write                 C、赋值语句              D、halt

    9、表达式17 mod 4<>0 的结果是(    )

    A、0                 B、1                    C、true                   D、false

    10、在free pascal中,定义变量m为长整型longint, 那么m在内存中占用的字节数是(     )。

    A、1                B、2                  C、3                    D、4

     

    2、 填空题:(每小格2分,共20分)

    1、(0.5)10=(__________)16。

    2、表达式12 mod 5*ord(succ (‘N’))div 3-ord(true)的值为_____________________。

    3、输出语句writeln(10/3:8:2);的输出结果为_____________;输出语句writeln(‘3=5’);的输出结果为_____________;输出语句writeln(3=5);的输出结果为_____________。

    4、表达式5 div 2 <(5-2) 的结果是_____________。

    5、设数组a[10..100,20..100]以行优先的方式顺序存储,每个元素占4个字节,且己知a[10,20]的地址为1000,则a[50,90]的地址是_________________。

    6、表达式round(5.6) mod trunc (-5.1) 的值为__________________。

    7、在32位计算机上,一个存贮单元占_________个字节。

    8、字符串类型的标识符是_______________。

    3、 写出结果(共30分,每题5分)

    1、program c301;

    var

          i:integer;

          a:array[1..20] of integer;

            begin

              a[1]:=1; a[2]:=1;

             for i:=3 to 20 do

              a[i]:=a[i-2]+a[i-1];

               write (a[10]);

            end.

     

    运行结果是__________________。

      

    2、有下列函数说明:

     Function ff(a,b,c:integer):integer;

       Var t:integer;

    Begin

         a:=3*a;t:=b div c; ff:=a+4*t;

    end;

         则表达式ff(ff(1,ff(1,2,3),3),2,3)的值是__________________。

     

    3、program c303;

    var

        s1,s2,s3:set of 0..9;

    i:0..9;

    begin

    s1:=[0..9];

    s2:=[1,3,5,7];

      s3:=s1-s2;

    for i:=0 to 9 do

      if i in s3 then

        write (i:3);             

    end.

     

    运行结果是__________________。

     

    4、program c304;

       Var I,a,b,c,x,y:integer;

         P:array[0..4] of integer;

    Begin

       y:=20;

       for i:=0 to 4 do read(p[i]);

    readln;

       a:=(p[0]+p[1])+(p[2]+p[3]+p[4]) div 7;

       b:=p[0]+p[1] div ((p[2]+p[3]) div p[4]);

       c:=p[0]*p[1] div p[2];

       x:=a+b-p[(p[3]+3) mod 4];

       if (x>10)

    then y:=y+(b*100-a) div (p[p[3]] mod 4)*5)

    else

      y:=y+20+(b*100+c) div (p[p[4] mod 3]*5);

    writeln(x,’,’,y);

     end.

     

     输入:3   4   5   6   7,  输出结果是:____________________。

     

     5、Program c305;

    var

          a:array[1..3,1..4] of integer;    

          b:array[1..4,1..3] of integer;

         x,y:integer;

          begin

            for x:=1 to 3 do

     for y:=1 to 4 do

                         a[x,y]:=x-y;

    for x:=4 downto 1 do

     for y:=1 to 3 do

                         b[x,y]:=a[y,x];

    writeln(b[3,1]);

         end.

    输出结果是:_________________

     

     6、Program C306;

    function ACK(M,N:integer):integer;

                    begin

                                if M=0 then ACK:=N+1

                                                else if N=0 then ACK:=ACK(M-1,1)

                                                                              else ACK:=ACK(M-1,ACK(M,N-1))

                    end;

                  begin

                    writeln(ACK(2,5));

                  end.

          程序运行结果:                                

     

    四、程序填空:(每空3分,共30分)

    1、下列程序的功能是:用递归方法求两个整数a,b的最大公约数。请将程序补充完善。

    program c1_401;

     var m,n:integer;

     function gcd(a,b:integer):integer;

          var  r:integer;

          begin

            r:=     (1)   ;

            if r=0 then     (2)  

              else

    _______(3)       

                 end;

               begin

                 read(m,n);

                writeln(’gcd(’,m,’,’,n,’)=’,gcd(m,n));

     end.

     

    2、输入正整数,如输入“1234567”,输出“7654321”。递归编程如下:

    program c1_402;

    Var  n:longint;

    Procedure down(n:longint);

      Begin

          ____(4)    ;

        N:= n div 10;

    if    (5)  then down(n)

      end;

    begin

       write(‘n=:’);

       readln(n);

       down(n);

    end.

     

     

       3、求1,2,3,…,n (n<100) 的全排列。

    程序清单:

    Program c1_403;;

      Const maxn=100;

      Var

        i, j, m, t: integer;

       p:array[1..maxn] of integer;

       Count : integer;

    Begin

    Write (‘m:’);

    Readln(m);

    For i:=1 to m do

     Begin

       p[i]:=i;

    write(i)

         end;

         writeln;

         count:=1;

    repeat

      i:=m;

    while(i>1) and (p[i-1]>=p[i]) do

     

    ______(6)_______;

         if i=1 then

          Break;

          J:=m;

         While (j>0) and (____(7)______) do

           Dec(j);

         If j=0 then

          Break;

          t:=p[i-1];

          p[i-1]:=p[j];

         p[j]:=t;

         For  j:=1 to _____(8)_____ do

           Begin

             t:=p[i+j-1];

     

             _________(9)__________;

     

            ________(10)___________;

              end;

          For i:=1 to m do

          Write(p[i]);

          inc(count);

          Writeln;

           Until false;

           Writeln(count);

          End.

     

     

     

     

     

     

     

    2010年江东区第二届青少年程序设计竞赛笔试答题卷

     

    学校                    姓名            年级                  

     

    ------------○-------○--------○----------封装线----------○-----------○----------○----------------

     

     

    总分                评卷者             

     

     

    一、选择题(每题2分,共20分)


    题号


    1


    2


    3


    4


    5


    6


    7


    8


    9


    10


    答案


     


     


     


     


     


     


     


     


     


     


     

    二、填空题(每格2分,共20分)

    1、                                2、                            

    3、                     _____________________   _____________________

    4、                     5、_____________________      6、____________________

    7、_____________________________                      8、_____________________

    三、写出下列程序的运行结果(每题5分,共30分)

    1.          ____________________  __       2.        _____________      

     

    3.   ______________________                4.    _____________          

     

    5. _____________________________________    6. ____________________________

     

    四、程序填空(每空3分,共30分)

     

     (1)                               (2)                           

     

     (3)                               (4)                           

     

     (5)                               (6)                           

     

     (7)                               (8)                           

     

     (9)                               (10)                          

     

     

    2010年江东区第二届青少年程序设计竞赛笔试试题

    (pascal语言试题)参考答案

     

    一、选择题(每题2分,共20分)


    题号


    1


    2


    3


    4


    5


    6


    7


    8


    9


    10


    答案


    B


    D


    A


    C


    B


    B


    C


    D


    C


    D


     

    二:填空题(每格2分,共20分)

    1、 0.8                       2、 51

    3、3.33,  3=5 ,   flase       4、 true

    5、14240                        6、1

    7、 4                            8、 string

    三:填空(每题5分,共30分)

    1、   55          2、  21        3、 0  2  4 6  8  9 

    4、  12,47       5、 -2          6、  13

    四:程序填充(每空3分,共30分)

    (1)  a  mod  b   (2)  gcd:=b          

    (3) gcd:=gcd(b,r)    (4) write(n mod 10)    

    (5) n>0          (6) dec(i)           

    (7) p[i-1]>=p[j]       (8)  (m-i+1) div2      

     (9)  p[i+j-1]:=p[m-j+1]   (10)   p[m-j+1]:=t        

                    

    7