不是VIP会员,不能显示答案,请在后台“我的信息” 在线升级 VIP

一.选择一个正确答案代码(A/B/C/D/E,填入每题的括号内(每题1.5分,共30分)

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

  • A.键盘
  • B.触摸屏
  • C.扫描仪
  • D.投影仪
  • E.数字化仪

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

  • A.800*600
  • B.1024*768
  • C.640*480
  • D.1280*1024
  • E.800*1000

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

  • A.在内存中,可执行程序用二进制码表示,源程序用八进制表示。
  • B.程序和数据在内存中都是用二进制码表示的。
  • C.内存中数据的存取是以二进制位为单位的。
  • D.中央处理器CPU执行的每条指令的长度都不同。
  • E.一般来说,在计算机内部,中文信息用十六进制表示,英文信息用八进制表示。

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

  • A.程序是指令的序列,它有三种结构:顺序、分支和循环。
  • B.地址总线决定了中央处理器CPU所能访问的最大内存空间的大小。
  • C.中央处理器CPU内部有寄存器组,用来存储数据。
  • D.不同厂家生产的CPU所能处理的指令集不一定相同。
  • E.数据传输过程中不可能会出错。

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

  • A.寄存器
  • B.硬盘
  • C.软盘
  • D.磁带
  • E.光盘

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

  • A.wang@hotmail.com
  • B.cai@jcc.pc.tool@rf.edu.jp
  • C.162.105.111.22
  • D.ccf.edu.cn
  • E.http://www.sina.com

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

  • A.画笔(Paintbrush)
  • B.记事簿(Notepad)
  • C.Recorder
  • D.WinRAR
  • E.MidiSoft

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

  • A.Windows XP
  • B.DOS
  • C.Linux
  • D.OS/2
  • E.Arch/Info

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

  • A.主板
  • B.操作系统
  • C.电源
  • D.硬盘
  • E.软驱

10. 图灵(Alan Turing)是( )。

  • A.美国人
  • B.英国人
  • C.德国人
  • D.匈牙利人
  • E.法国人

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

  • A.Alan Mathison Turing
  • B.Ada Lovelace
  • C.John von Neumann
  • D.John McCarthy
  • E.Edsger Wybe Dijkstra

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

  • A.11111010011
  • B.10000011
  • C.110000111
  • D.010000011l
  • E.1111010011

13. 运算式(2008)10-(3723)8的结果是( )。

  • A.(-1715)10
  • B.(5)10
  • C.(-5)16
  • D.(111)2
  • E.(3263)8

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

  • A.编写机器代码不比编写汇编代码容易。
  • B.高级语言需要编译成目标代码或通过解释器解释后才能被CPU执行。 
  • C.同样一段高级语言程序通过不同的编译器可能产生不同的可执行程序。
  • D.汇编代码可被CPU直接运行。
  • E.不同的高级语言语法略有不同。

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

  • A.true
  • B.false
  • C.0
  • D.1
  • E.NULL

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

  • A.2h+l
  • B.h
  • C.2h-1
  • D.2h
  • E.2h-l

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

  • A.5
  • B.41
  • C.77
  • D.13
  • E.18

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

  • A.一个可执行程序其实也是一个文件。
  • B.文件可大可小,大的文件一张软盘装不下。
  • C.一个文件夹下面可以有两个同名的文件,只要它们的大小不同就行了。
  • D.文件的创建日期和最新修改日期可以在资源管理器中看到。
  • E.某些文件的内容可以用记事本(Notepad)看到。

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

  • A.大
  • B.小
  • C.相等
  • D.不一定大
  • E.大致相等

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

  • A.8
  • B.16
  • C.32
  • D.64
  • E.12

二.问题解答(每题5分,共10分)

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

2. 无向图G有16条边,有3个4度顶点、4个3度顶点,其余顶点的度均小于3,则G至少有    个顶点。
答案:11

三.阅读程序,并写出程序的正确运行结果: (每题8分,共32分)

1.

program Programl;
  var
   a,x,y,ok1,ok2:integer;
  begin
   a:=100;
     x:=10;
   y:=20;
   ok1:=5;
   ok2:=0;
   if ((x>y) or ((y<>20) and (ok1=0)) and (ok2<>0)) then
    a:=1
   else if ((ok1<>0) and (ok2=0)) then
      a:=-1
     else
      a:=0;
   writeln(a);
  end.

输出:-1

2.

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.
输出:mo

3.

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
输出:8910

4.

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
输出:Can't be divided. Can be divided. Can't be divided.

四.根据题意,将程序补充完整(第1空2分,其余每空3分 共28分)

1. 一元二次方程
  题目描述:
    方程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 ( m>0 )then
      begin
       write ( (-l*b+sqrt(m))/(2*a) :0:3);
       write( ` , ` );
       write ((-1*b-sqrt(m))/(2*a):0: 3 );
      end
      else if ( ABS(M)<0.0001 )then
       write( -1*b/(2*a):0:3 )
       else begin
          write (`No solution`);
          end
    end.

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:= 2 
      else begin
         d:=2*m+1;
         t:= 2;
         i:= 1;
         flag:=False;
         repeat
          if (t=1)then
           begin
            solve:= i*m 
            flag:=True;
           end
          else if ( t=2*m )then
              begin
               solve:=i*m-1;
               flag:=True;
              end
             else
              t:= (t*2)mod d ;
          i:=i+1;
         until flag;
        end
      end;
    begin
     read (m);
     if ((m>0) and (m<1000)) then
      writeln ( solve(m) );
    end.