2003年信息学奥赛NOIP普及组
剩余时间 --:--:--
单选题 共 20 题
1.

十进制数2003等值于二进制数( )。 

2.

下列哪个软件不是操作系统软件的名字( )。

3.

已知队列(13,2,11,34,41,77,5,7,18,26,15),第一个进入队列的元素是13,则第五个出队列的元素是( )。 

4.

下列计算机设备中,既是输入设备,又是输出设备的是( )。 

5.

下列哪个不是个人计算机的硬件组成部分( )。 

6.

第一个给计算机写程序的人是( )。

7.

IP地址是一个( )位二进制码。

8.

下列分辨率的显示器所显示出的图像,最清晰的是( )。 

9.

假设A=true,B=false,C=true,D=true,逻辑运算表达式A∧B∨C∧D的值是( )。 

10.

下列关于文件的叙述,不正确的是( )。 

11.

图灵(Alan Turing)是( )。

12.

下列电子邮件地址,正确的是( )。 

13.

下列说法中,正确的是( )。 

14.

一个高度为h的二叉树最小元素数目是( )。 

15.

下列关于程序语言的叙述,不正确的是( )。 

16.

CPU访问内存的速度比访问下列哪个存储设备要慢( )。 

17.

下列说法中,错误的是( )。

18.

运算式

的结果是( )。

19.

数字图像文件可以用下列哪个软件来编辑( )。 

20.

活动硬盘的容量比固定硬盘的容量( )。

判断题 共 2 题
1.

program program4;

  var

  a: array[0..5] of integer;

  sum,n,max,i,j,k:integer;

  cover:array[0..22000]of boolean;

  begin

   read (a[5],a[4],a[3],a[2],a[1],a[0]);

   if ((a[5]=0) and (a[3]=0) and (a[1]=0)) then

   begin

   a[5]:=a[4];a[4]:=a[2]; a[3]:=a[0]; a[2]:=0 a[0]:=0;

   end:

   for i:=0 to 5 do

   if (a[i]>10) then a[i]:=10+(a[i] mod 2);

   sum:=0:

   for i:=0 to 5 do sum:=sum+a[i]*(6-i);

   if ((sum mod 2) <>0) then  begin

                  writeln(`Can``t be divided.`);

                  Exit;

                End;

   sum:=sum div 2; max:=0; cover[0]:=True;

   for i:=1 to sum*2 do cover[i]:=False;

   for i:=0 to 5 do

   begin

    j:=0;

    while (j<a[i])do

     begin

      for k:=max downto 0 do

       begin if (cover[k]) then cover[k+6-i]:=True;end;

     max:=max+6-i: j:=j+1;

     end;

   end;

   if (cover[sum]) then writeln (`Can be divided.`)

           else writeln(`can``t be divided.`);

  end. 

输入:4 7 9 20 56 48 输入:1000 7 101 20 55 1 输入:2000 5 l 1 0 0

输出:        输出:          输出:         

2.

翻硬币

题目描述: 

  一摞硬币共有m枚,每一枚都是正面朝上。取下最上面的一枚硬币,将它翻面后放回原处。然后取下最上面的2枚硬币,将他们一起翻面后再放回原处。再取3枚,取4枚……直至m枚。然后再从这摞硬币最上面的一枚开始,重复刚才的做法。这样一直做下去,直到这摞硬币中的每一枚又都是正面朝上为止。例如,m为1时,翻两次即可。m为2时,翻3次即可;m为3时,翻9次即可;m为4时,翻11次即可;m为5时,翻24次即可;…;m为30时,翻899次即可;… 

输 入: 

  仅有的一个数字是这摞硬币的枚数m,0<m<1000。 

  输 出: 

  为了使这摞硬币中的每一枚又都是正面朝上所必需翻的次数。 

  输入样例: 

      30 

  输出样例: 

      899 

  程 序: 

    program Programl;

    var m:integer;

     function solve (m:integer):integer;

     vat i,t,d:integer;

       flag:boolean;

     begin

      if (m=1)then

       so1ve:= ① 

      else begin

         d:=2*m+1;

         t:= 2;

         i:= 1;

         flag:=False;

         repeat

          if (t=1)then

           begin

            solve:= ② 

            flag:=True;

           end

          else if ( ③ )then

              begin

               solve:=i*m-1;

               flag:=True;

              end

             else

              t:= ④ ;

          i:=i+1;

         until flag;

        end

      end;

    begin

     read (m);

     if ((m>0) and (m<1000)) then

      writeln ( ⑤ );

    end.

填空题 共 1 题
1.

无向图G有16条边,有3个4度顶点、4个3度顶点,其余顶点的度均小于3,则G至少有()个顶点。 

编程题 共 5 题
1.

program Program2;

  var

  a,t:string;

  i,j:integer;

  begin

  a:=`morning`;

  j:= l;


   for i:=2 to 7 do

    if (a[j]<a[i])then

     j:= i;

   j:= j-1;

   for i:=1 to j do

    write (a[i]);

  end. 

输出:     

2.

program Program3;

  Var

   a,b,c,d,sum:longint;

  begin

   read (a,b,c,d);

   a:=a mod 23:

   b:=b mod 28;

   c:=c mod 33;

   sum:=a*5544+b* 14421+c*1288-d;

   sum:=sum+21252;

   sum:=sum mod 21252;

   if (sum=0)then

    sum:=21252;

   writeln(sum);

  end. 

输入:283 102 23 320 输出: 

3.

program Program1;

  var

   a,x,y,okl,ok2:integer;

  begin

   a :=100:

   x:=l0;

   y:=20;

   okl:=5:

   ok2:=0;

   if ((x>y) or ((y<>20) and (okl=0)) and (ok2<>0)) then

    a:=1

   else if ((okl<>0) and (ok2=、0)) then

      a:=-1

     else

      a:=0;

   writeln(a);

  end. 

输出:     

4.

现在市场上有一款汽车A很热销,售价是2万美元。汽车A每加仑汽油可以行驶20英里。普通汽车每年大约行驶12000英里。油价是每加仑1美元。不久我公司就要推出新款节油汽车B,汽车B每加仑汽油可以行驶30英里。现在我们要为B制定价格(它的价格略高于A):我们预计如果用户能够在两年内通过节省油钱把B高出A的价钱弥补回来,则他们就会购买B,否则就不会购买B。那么B的最高价格应为()万美元。

5.

一元二次方程 

题目描述: 

    方程ax^2+bx+c=0,要求给出它的实数解. 

  输 入: 

    三个实数:a,b,c,是方程的三个系数(a≠0). 

  输 出: 

    如果无实数解,则输出"No solution";

    如果有两个相等的实数解,则输出其中一个,四舍五入到小数点后面3位;

    如果有两个不等的实数解,则解与解之间用逗号隔开,同样要四舍五入到小数点后3位。 

  输入样例: 

      l 2 1 

  输出样例: 

      -1.000 

  程 序: 

    program Program41;

    var

     a,b,c,m:real;

    begin

     read (a,b,c);

     m:=b*b -4*a*c;

     if ( ① )then

      begin

       write ( ② :0:3);

       write( ` , ` );

       write ((-1*b-sqrt(m))/(2*a):0: ③ );

      end

      else if ( ④ )then

       write( ⑤ )

       else begin

          write (`No solution`);

          end

    end. 

C++ 编辑器
输入
输出