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

一、单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选  项)

1. 计算机中的数有浮点数与定点数两种,其中浮点数表示的数,通常由_______这两部分组成。

  • A.指数与基数
  • B.尾数与小数
  • C.阶码与尾数
  • D.整数与小数

2. 计算机的存储量通常以能存储多少个二进制位或多少个字节来表示,1个字节是指_____个二进制位,1MB的含义是______个字节。

  • A.1024; 1024
  • B.8; 1024*1024
  • C.8; 1000*1000
  • D.16; 1000

3. 以下数据结构中___是线性结构。

  • A.有向图
  • B.栈
  • C.二叉树
  • D.B树

4. 与十进制数1770.625对应的八进制数是

  • A.3350.5
  • B.3352.65
  • C.3352.1161
  • D.前 3 个答案都不对

5. 十进制数-103的补码是

  • A.10011001
  • B.11100111
  • C.10110011
  • D.00011001

6. 下列关于计算机系统硬件的说法中,正确的是

  • A.内存可以长期保存信息
  • B.键盘是计算机输入数据的唯一手段
  • C.计算机硬件由中央处理器和存储器组成
  • D.显示器和打印机都是输出设备

7. CPU处理数据的基本单位是字,一个字的字长____________

  • A.为8个二进制位
  • B.为16个二进制位
  • C.为32个二进制位
  • D.与芯片的型号有关

8. 设循环队列中数组的下标范围是l..n,其头尾指针分别为f和r,则其元素个数为

  • A.f+r
  • B.(r-f+n) mod n
  • C.f+r+n
  • D.(r-f) mod n

9. 插入排序是一种简单实用的工具,在对数组排序时,我们可以用二分査找,对要插入的元素快速找到它在己经排好的元素序列中的位置。下面的描述中正确的是

  • A.二分查找的时间复杂度为O(logN),因此排序的时间复杂度为O(N*logN)
  • B.二分査找的时间杂度为O(N),因此排序的时间复杂度为O(N*logN)
  • C.二分查找的时间复杂度为O(logN),排序的时间复杂度不变,为O(N*N)
  • D.二分查找的时间复杂度为O(N),排序的时间复杂度不变,为O(N*N)

10. 数组A[0.. 5, 0.. 6]的每个元素占5个单元,将其按列优先次序存储在起始地址为1000的连续的内存单元中,则元素A[5, 5]的地址为

  • A.1175
  • B.1180
  • C.1205
  • D.1210

11. (2070)16 + (34)8 的结果是

  • A.(208A)16
  • B.(8332)10
  • C.(100000000110)2
  • D.(20212)8

12. 下面关于算法的说法中不正确是

  • A.算法不一定有输入
  • B.算法一定有输出
  • C.算法必须在计算树上用某种语言实现
  • D.算法必须在有限步执行后能结束

13. 递归过程或函数调用时,处理参数和返回地址,通常使用一种称为______的数据结构。

  • A.队列
  • B.多维数组
  • C.线性表
  • D.栈

14. 高度为n的均衡的二叉树是指:如果去掉叶结点及相应的树枝,它应该是高度为n-1的满二叉树。在这里,树高等于叶结点的最大深度,根结点的深度 为0,如果某个均衡的二叉树共有4032个结点,则该树的树高为

  • A.10
  • B.11
  • C.12
  • D.13

15. 设A=true, B=false, C=true, D=false,以下逻辑运算表达式值为真的是

  • A.(A∧B)∨(C∧D∨ A)
  • B. (( A∧B)∨C)∧ D
  • C. (B∨C∨D)∧D∧A
  • D. A∧(D∨ C)∧B

16. 在Pascal语言中,表送式 (23 or 2 xor 5)的值是

  • A.18
  • B.1
  • C.23
  • D.32

17. 以下软件中,______ 不是Internet上网专用的软件。

  • A.IE (Internet Explorer)
  • B.Navigator
  • C.PowerPoint
  • D.Outlook Express

18. _____是用来在计算机之间进行文件传输。利用该服务不仅可以从远程计算机上获取文件,而且还可以将文件从本地机器传送到远程计算机上。

  • A.DNS
  • B.NFS
  • C.WWW
  • D.FTP

19. 二叉树T,己知其前序遍历序列为1 2 4 3 5 7 6,中序遍历序列为4 2 1 5 7 3 6,则其后序適历序列为

  • A.4 2 5 7 6 3 1
  • B.4 2 7 5 6 3 1
  • C.4 2 7 5 3 6 1
  • D.4 7 2 3 5 6 1

20. CCF N0IP复赛全国统一评测时使用的系统软件是

  • A.NOI Windows
  • B.NOI Linux
  • C.NOI Mac OS
  • D.NOI DOS

二.问题求解(共2题,每题5分,共计10分)

1. 10名划船运动员中,3人只会划左舷,2人只会划右舷,5人左右舷都会划。从中选6人,平均安排到左、右舷,共有多少种不同的安排方式?
答案:675

2. 一位银矿勘探员无力预付3月份的房租。他有一根长31英寸的纯银条,因此他和女房东达成如下协议。他说,他将把银条切成小段。3月份的第一天,他给女房东1英寸长的一段,然后每天给她增加1英寸,以此作为抵押。勘探员预期到3月份的最后一天,他能全数付清租金,而届时女房东将把银条小段全部还给他。 3月份有31天,一种办法是把银条切成31段,每段长1英寸。可是这得花很多功夫。勘探员希望既履行协议,又能使银条的分段数目尽量减少。例如,他可以第一天给女房东1英寸的一段,第二天再给1英寸的一段,第三天他取回这两段1英寸的而给她3英寸的一段。 假设银条的各段是按照这种方式来回倒换的,勘探员至少需要把他的银条切成________段?
答案:5

三.阅读程序写结果(共4题,每题8分,共计32分)

1.

var
  p,q:array[0..5] of integer;
  i,x,y:integer; 
begin
  y:=20;
  for i:=0 to 4 do read(p[i]);
  q[0]:= (p[0]+p[1]) + (p[2]+p[3]+p[4]) div 7;
  q[1]:=p[0]+p[1] div ((p[2]+p[3]) div p[4]);
  q[2]:=p[0]*p[1] div p[2];
  q[3]:=q[0]*q[1];
  q[4]:=q[1]+q[2]+q[3];
  x:=(q[0]+q[4]+2)-p[(q[3]+3) mod 4];
  if (x>10) then y:=y+(q[1]*100-q[3]) div (p[p[4] mod 3]*5)
  else y:=y+20+(q[2]*100-q[3]) div (p[p[4] mod 3]*5); 
  writeln(x,',',y); 
end.
输入:6 6 5 5 3 
输出:143,29

2.

function fun(x:integer):integer; 
begin
  if(x=1)or(x=2)then fun:=3 
  else fun:=x-fun(x-2); 
end;
begin
  writeln(fun(19)); 
end.
输出:8

3.

var
  i,j,L,n,k,s,t:integer; 
  b:array[1..10] of 0..9; 
begin
  readln(L,n); 
  s:= L; k:=1; t:=L;
  while s<n do 
  begin
    k:=k+1; t:=t*L; s:=s+t; 
  end;
  s:=s-t; n:=n-s-1; 
  for i:=1 to 10 do 
    b[i]:=0; 
  j:=11;
  while n>0 do 
  begin
    j:=j-1;
    b[j]:=n mod L; 
    n:=n div L; 
  end;
  for i:=10-k+1 to 10 do
    write(chr(ord('a')+b[i]));
end.
输入:4 167 
输出:bbac

4.

var
  a,b:integer; 
  x,y:^integer;
procedure fun(a:integer; var b:integer); 
var
  k: integer; 
begin
  k:=a; a:=b; b:=k; 
end;
begin
  a:=-3; b:=6; 
  x:=@a; y:=@b;
  fun(x^,y^);
  write('No.1:',a,',',b,' '); 
  fun(a,b);
  writeln('No.2:',a,',',b);
end.
输出:No.1:-3,-3 No.2:-3,-3

四.完善程序(前8空,每空3分,后2空,每空2分,共28分)

1. 奇数幻方
对于输入的奇数m, 将 1 到m*m这些自然数填入 m行m列格子中,使每行、每列及对角线的和相等。输出一种填法及这个相等的和。下面的程序中限制m为不超过15的奇数,当输入0时结束程序。如输入3时,程序输出:
8 1 6
3 5 7
4 9 2
Sum=15

const max=15;
var a:array[1..max,1..max] of integer;
   m:integer;
procedure GetAnOddNumberOrZero; 
begin
  repeat
     writeln ('Enter an odd number, no more than 15 ',max,'(0 to stop)');
     readln(m);
   until (m=0) or odd(m) and (m<=max); 
end;
procedure ArrangeMagicMatrix(m:integer);
var row,col,num:integer;
begin
  row:=1; col:= (m+1) div 2 ;
  a[row,col]:=1;
  for num:=2 to m*m do 
  begin
    if (num-1) mod m=0 then row:=row+1 
    else
    begin
      if row=1 then row:=m
	  else dec(row) ;
	  if col=m then col:=1
	  else  inc(col)  ;
    end;
     a[row,col]:=num ;
  end;
end;
procedure Print(m:integer); 
var row,col:integer; 
begin
  for row:=1 to m do
  begin
     for col:=1 to m do write( a[row, col]:5);
  writeln; 
  end;
  writeln ('Sum=', (m*m+1)*m div 2  );
end;
begin
   repeat
      GetAnOddNumberOrZero;
      if m<>0 then
	  begin
	    ArrangeMagicMatrix(m);
		Print(m);
      end;
   until m=0;
end.

2. 最大和子矩阵
求元素之和最大的子方阵:在m×n (m,n ≤20)的正整数数字方阵中,找出一个p × q 的子 阵(1≤p≤m, 1≤q≤n )使其元素之和最大。例如,下面5 × 4 的数字阵中,元素之和最大的一个2 × 3子阵。

var a:array[1..20,1..20] of integer;
    m,n,p,q,i,j,max,p1,q1,s,i1,j1:integer;
begin
    for i:=1 to 20 do
        for j:=1 to 20 do
            a[i,j]:=0;
    readln(m,n);
    for i:=1 to m do
    begin
        for j:=1 to n do read(a[i,j]);
        readln;
    end;
    readln(p,q);
    max:=0;
    for i:=1 to m-p+1 do
        for j:=1 to n-q+1 do
        begin
                s:=0   ;
            for i1:=i to p+i-1 do
                for j1:=j to q+j-1 do
                        s:=s+a[i1,j1]   ;
            if s>max then
            begin
                    max:=s   ;
                p1:=i;
                q1:=j;
            end;
        end;
    for i:=p1 to    p1+p-1   do
    begin
        for j:=q1 to    q1+q-1    do
        write(a[i,j]:3);
        writeln;
    end;
end.