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

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

1. 在计算机内部,一切信息存取、处理和传递的形式是(   )

  • A.ASCII码
  • B.BCD码
  • C.二进制
  • D.十六进制
  • E.八进制

2. 微型计算机的内存储器比外存储器( ).

  • A.存储容量大
  • B.价格便宜
  • C.存储可靠性高
  • D.读写速度快
  • E.便于携带

3. 一台计算机的字长是( )位.

  • A.16
  • B.8
  • C.32
  • D.64
  • E.与CPU型号有关

4. 下面有关进制中的式子,正确的是( ).

  • A.(11)10=(13)9
  • B.(32)8÷(15)8=(2.14)8
  • C.(21)10×(128)10=(1080)16
  • D.(52)5-(70)3=(110)2
  • E.(11.5)10=(1011.101)2

5. 计算机系统由硬件系统和软件系统组成,平常我们所说的计算机软件是由程序和( )组成.

  • A.相关文档
  • B.相关资料
  • C.相关工具
  • D.相关说明
  • E.相关平台

6. 人们使用高级语言编写出来的程序,一般先要翻译成为( ).

  • A.标准程序
  • B.翻译程序
  • C.执行程序
  • D.编译程序
  • E.目标程序

7. 关于计算机病毒,正确的说法是( ).

  • A.病毒是计算机被黑客攻击后造成的
  • B.病毒只传染给可执行文件
  • C.如果某台电脑感染了病毒,那么它将会传染给附近的电脑
  • D.计算机病毒的特点是:传播性、潜伏性、破坏性、通用性等
  • E.计算机“千年虫”不是计算机病毒。

8. 用计算机进行图形制作时,正在绘制的图形是存放在(   )

  • A.CPU
  • B.ROM
  • C.内存
  • D.外存储器
  • E.光盘

9. 在资源管理器中用鼠标选中非连续多个文件的方法是( ).

  • A.单击文件
  • B.SHIFT+单击文件
  • C.CTRL+单击文件
  • D. ALT+单击文件
  • E.双击文件

10. 既是输入设备又是输出设备的是( ).

  • A.磁盘驱动器
  • B.键盘
  • C.显示器
  • D.鼠标
  • E.数字化仪

11. 因特网起源于( ).

  • A.美国科学基金会
  • B.美国国防部
  • C.欧洲粒子物理实验室
  • D.英国剑桥大学
  • E.英特公司

12. 指出以下统一资源定位器各部分的名称(从左到右), http://home.microsoft.com/main/index.html 以下哪个正确?( ). 1 2 3 4

  • A.1主机域名 2服务标志 3目录名 4文件名
  • B.1服务标志 2目录名 3主机域名 4文件名
  • C.1服务标志 2主机域名 3目录名 4文件名
  • D.1目录名 2主机域名 3服务标志 4文件名
  • E.1目录名 2服务标志 3目录名 4文件名

13. TCP/IP有( )层协议.

  • A.3
  • B.4
  • C.5
  • D.6
  • E.7

14. 请从逻辑的角度在后面的括号中填入后续数字;8, 6, 7, 5, 6, 4, ( ).

  • A.1
  • B.2
  • C.3
  • D.4
  • E.5

15. 下面程序段的时间复杂度为( ). For I:=2 to n do For j:=2 to I-1 do X:=x+1;

  • A.O(n)
  • B.O(log2n)
  • C.O(i*log2n)
  • D.sqrt(n)
  • E.O(n*n)

16. 一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是( )

  • A.2 3 4 1 5
  • B.5 4 1 3 2
  • C.2 3 1 4 5
  • D.1 5 4 3 2
  • E.2 3 4 5 1

17. 设数据A[10..100,20..100]以行优先的方式顺序存储,每个元素占4个字节,且已知A[10,20]的地址为1000,则A[50,90]的地址是( ).

  • A.14350
  • B.14240
  • C.15340
  • D.15350
  • E.15200

18. 将一棵有100个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为( ).

  • A.50
  • B.51
  • C.70
  • D.71
  • E.98

19. 对序列(45,36,18,53,72,30,48,93,15,36)进行快速排序,( )是执行第一趟快速排序后得到的序列.

  • A.[36,36,18,15,30]45[48,93,72,53]
  • B.[36,36,18, 30,15]45[48, 72,93,53]
  • C.[36,36,18,15,45]30[48,93,72,53]
  • D.[36,36,18,15,30] 53[48,93,72, 45]
  • E.[36,36 ,18,15,30] 53[48,93,72, 45]

20. 一个有n个顶点的无向图最多有( )边.

  • A.n-1
  • B.n
  • C.n(n-1)/2
  • D.2n
  • E.(n-1)^2

二、问题求解(每题4分,共8分)

1. 某校有1807个学生。这些学生中有453人参加过信息学竞赛,567人参加过数学竞赛,299人同时参加过信息学竞赛和数学竞赛。那么,有 个学生既没有参加过信息学竞赛也没有参加过数学竞赛。
答案:1086

2. 设t(n,i)表示数列:1,2,3,…,n,2,3,4,…,n+1,3,4,5,…,n+2,4,…的第i项,而s(n,i)表示该数列的前i项之和。例如:t(4,6)是数列:1,2,3,4,2,3,4,5,3,…的第6项,所以t(4,6)=3,而s(4,6)=1+2+3+4+2+3=15。 请算出:s(8,35)= t(13,350)=
答案:210|38

三、读程序写结果(每题8分,共32分)四、程序填空(每空3分,共30分)

1.

program t1;
var a,b,c,d,e:integer;
begin
 a:=1;
 b:=a+2;
 c:=b+3;
 d:=c+4; 
a:=d+5;
  for e:=1 to 4 do
   begin
    if a mod 2=0
 then a:=a div 2+d
        else a:=a div 2+d+1;
       b:=a+2;
 c:=b+3;
 d:=c+4; 
a:=d+5;
   end;
  writeln(a);
end.
输出:152

2.

program t2;
const max=2000;
var a:array[1..max+2] of byte;
    i,top,w1,w2,t:integer;
procedure do_with(x,y:integer);
var s:integer;
begin
  s:=x*y;
  if s<10 then 
begin inc(t); a[t]:=s; exit; end;
  t:=t+1; a[t]:=s div 10;
  t:=t+1; a[t]:=s mod 10;
end;
begin
  a[1]:=2; a[2]:=3; top:=0; t:=2;
  repeat
    top:=top+1;
    do_with(a[top],a[top+1]);
  until t>=max;
  read(w1,w2);
  for i:=w1 to w2 do write(a[i]:2);
end.
输入:30 40
输出: 8 2 4 3 6 3 6 3 6 3 6

3.

program t3;
	  var s      :string;
        a      :array[1..300] of byte;
        k,i,l  :integer;
begin
      readln(s);
      a[1]:=0; k:=0;
      l:=length(s);
      for i:=2 to l do begin
        while (k>0)and(s[k+1]<>s[i]) do dec(k);
        a[i]:=k;
        k:=i-4;
      end;
      for i:=1 to l do
        if a[i+1]>7 then write(i:3);
      writeln;
end.

输入:cdcabecaddcdcabddbda
输出: 2 3 15 16 18 19

4.

program t4;
var i,k,n  :integer;
    x,w    :array[1..500] of integer;
begin
  readln(n);
  for i:= 1 to n do begin
    x[i]:= 0; w[i]:= 1;
  end;	
  for i:= 2 to trunc(sqrt(n))+1 do
    if x[i]=0 then
    begin
      k:= i*i;
      while k<=n do begin
        x[k]:= i;
        k:= k + i;
      end;
    end;
   for i:= n downto 1 do
   if x[i]<>0 then
   begin
     w[x[i]]:= w[x[i]] + w[i];
     w[i div x[i]]:= w[i div x[i]] + w[i];
     w[i]:= 0;
   end;
   writeln(w[2],w[3]:5,w[5]:5);
end.
    
1、输入:10
2、输入:290
输出: 8 4 2 287 142 71

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

1. 用高精度计算出S=1!+2!+3!+……n!(n≤),其中“ !”表示阶乘。输入正整数N,输出计算结果S

program t5;
const maxlen=100;
var i,j,n:integer;
    sum,fac:array[1..maxlen+1] of integer;
begin
  write('input n:');
  readln(n);
  for i:=1 to maxlen do sum[i]:=0;
  for i:=1 to maxlen do fac[i]:=0;
  fac[1]:=1;
  for i:=1 to n do
  begin
    for j:=1 to maxlen do    fac[j]:=fac[j]*i   ;
    for j:=1 to maxlen do
begin
fac[j+1]:=fac[j+1]+fac[j] div 10;
     fac[j]:= fac[j] mod 10  ;
      end;
    for j:=1 to maxlen do sum[j]:=sum[j]+fac[j] ;
    for j:=1 to maxlen do
      begin
        sum[j+1]:= sum[j+1]:=sum[j+1]+sum[j] div 10  ;
        sum[j]:=sum[j] mod 10
      end;
    end;
    i:=maxlen;
    while sum[i]=0 do i:=i-1;
    write('s=');
    for j:=   i downto 1  do write(sum[j]);
    writeln
  end.

2. 题目描述:在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。
因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。例如有3种果子,数目依次为1,2,9。可以先将1、2堆合并,新堆数目为3,耗费体力为3。接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为12。所以多多总共耗费体力=3+12=15。可以证明15为最小的体力耗费值。
输入:输入包括两行,第一行是一个整数n(1<=n<=10000),表示果子的种类数。第二行包含n个整数,用空格分隔,第i个整数ai(1<=ai<=20000)是第i种果子的数目。
输出:输出包括一行,这一行只包含一个整数,也就是最小的体力耗费值。输入数据保证这个值小于2^31

program t6;
var
 s1,s2:array[0..15000] of longint;
 s1low,s1hi,s2low,s2hi:integer;
 r,l,s,x,i,min1,min2:longint;
function peeksmall:longint;
 begin
  min1:=1000000000;min2:=1000000000;
  if s1low<>s1hi then min1:=s1[s1low];
  if s2low<>s2hi then min2:=s2[s2low];
  if     min1<min2        then begin peeksmall:=s1[s1low];inc(s1low); end
               else begin peeksmall:=s2[s2low];inc(s2low); end;
 end;
procedure swap(l:integer;r:integer);
 var tmp:longint;
 begin
  tmp:=s1[r];
     s1[r]:=s1[l]   ;
  s1[l]:=tmp;
 end;
procedure sort(low:integer; hi:integer);
 var l:longint;
begin
 if low>=hi then  exit  else
 x:=s1[(low+hi)div 2];
 swap(low,      x         );
 l:=low;
 r:=hi;
 while l<r do
  begin
   while ((l<r)and(s1[r]>=x)) do dec(r);
   s1[l]:=s1[r];
   while ((l<r)and(s1[l]<=x)) do inc(l);
   s1[r]:=s1[l];
  end;
       s1[l]:=x        ;
  sort(low,l-1);
  sort(r+1,hi);
 end;
begin
 read(s1hi);
 for i:=0 to s1hi-1 do
  read(s1[i]);
  sort(0,   s1hi-1        );
  s:=0;
  for i:=s1hi-1 downto 1 do
   begin
    s2[s2hi]:=peeksmall+peeksmall ;
    s:=s+s2[s2hi];
    inc(s2hi);
   end;
  write(s);
end.