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

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

1. 下列无符号数中,最小的数是( ).

  • A.(11011001)2
  • B.(75)10
  • C.(37)8
  • D.(2A)16

2. 在外部设备中,绘图仪属于( ).

  • A.输入设备
  • B.输出设备
  • C.辅(外)存储器
  • D.主(内)存储器

3. GB2312-80 规定了一级汉字3755个,二级汉字3008个,其中二级汉字字库中的汉字是以( )为序排列的.

  • A.以笔划多少
  • B.以部首
  • C.以ASCII码
  • D.以机内码

4. 算法是指( ).

  • A.为解决问题而编制的计算机程序
  • B.为解决问题而采取的方法与步骤
  • C.为解决问题而需要采用的计算机语言
  • D.为解决问题而采用的计算方法

5. RAM 中的信息是( ).

  • A.生产厂家预先写入的
  • B.计算机工作时随机写入的
  • C.防止计算机病毒侵入所使用的
  • D.专门用于计算机开机时自检用的

6. 计算机主机是由CPU 与( )构成的.

  • A.控制器
  • B.运算器
  • C.输入、输出设备
  • D.内存储器

7. 计算机病毒的特点是( ).

  • A.传播性、潜伏性、易读性与隐蔽性
  • B.破坏性、传播性、潜伏性与安全性
  • C.传播性、潜伏性、破坏性与隐蔽性
  • D.传播性、潜伏性、破坏性与易读性

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

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

9. 在待排序的数据表已经为有序时,下列排序算法中花费时间反而多的是( ).

  • A.堆排序
  • B.希尔排序
  • C.冒泡排序
  • D.快速排序

10. Internet 的规范译名应为( ).

  • A.英特尔网
  • B.因特网
  • C.万维网
  • D.以太网

11. WINDOWS 9X 是一种( )操作系统.

  • A.单任务字符方式
  • B.单任务图形方式
  • C.多任务字符方式
  • D.多任务图形方式

12. 某种计算机的内存容量是640K, 这里的640K 容量是指( ) 个字节.

  • A.640
  • B.640*1000
  • C.640 * 1024
  • D.640*1024*1024

13. 在Windows 9X中,菜单项后带有符号“…”,表示该菜单项( ) .

  • A.可以进行开关选择
  • B.执行时有对话框
  • C.有若干子命令
  • D.不能执行

14. 某数列有1000个各不相同的单元,由低至高按序排列;现要对该数列进行二分法检索(binary search),在最坏的情況下,需检视( )个单元.

  • A.1000
  • B.10
  • C.100
  • D.500

15. 已知数组A中,每个元素A[I,J]在存贮时要占3个字节,设I从1变化到8,J从1变化到10,分配内存时是从地址SA开始连续按行存贮分配的。 试问:A[5,8]的起始地址为( ).

  • A.SA+141
  • B.SA+180
  • C.SA+222
  • D.SA+225

16. 大家知道,不同类型的存储器组成了多层次结构的存储器体系,按存取速度从快到慢的排列是( ).

  • A.快存/辅存/主存
  • B.外存/主存/辅存
  • C.快存/主存/辅存
  • D.主存/辅存/外存

17. 线性表若采用链表存贮结构,要求内存中可用存贮单元地址( ).

  • A.必须连续
  • B.部分地址必须连续
  • C.一定不连续
  • D.连续不连续均可

18. 下列叙述中,正确的是( ).

  • A.线性表的线性存贮结构优于链表存贮结构
  • B.队列的操作方式是先进后出
  • C.栈的操作方式是先进先出
  • D.二维数组是指它的每个数据元素为一个线性表的线性表

19. 纯文本文件格式常用于保存( )文件。

  • A.声音
  • B.位图
  • C.网页
  • D.源程序

20. 请仔细阅读下列程序段: PASCAL语言 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,2]); end. 上列程序段的正确輸出是( ).

  • A.-1
  • B.-2
  • C.-3
  • D.-4

二、阅读程序,并写出程序正确的运行结果(每小题 10分,共40分)

1.

Program t1; 
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. 
 程序运行的结果是:
输出:13

2.

Program t2; 
var n,i,j:Longint; 
      s:Array [1..100] of integer; 
begin 
     readln(n);i:=0; 
     Repeat 
       inc(i); if odd(n) then s[i]:=1 else s[i]:=0; 
       n:=n SHR 1; 
     Until n=0; 
     for j:=i downto 1 do write(s[j]);writeln; 
end. 
输入:2004 程序运行的结果是:
输出:11111010100

3.

program t3; 
var a,b,f:integer; 
  function gd(m,n:integer):integer; 
begin 
if n=0 then gd:=m 
else gd:=gd(n,m mod n); 
end; 
begin 
  readln(a,b); 
  write(‘(‘,a,’,’,b,’)=’); 
f:=gd(a,b); 
writeln(f) 
end. 
输入: 172 16 
程序运行的结果是:
输出:(172,16)=4

4.

program t4;    
const n=6;m=3;
var       i,j,k:integer;
begin 
       for i:=-n to n do
       begin          
	     k:=n-abs(i);          
	      write(' ': 39-k);          
	   for j:=-k to k do            
	     if abs(j)>k-m              
	       then write(n-(i+n)div 2)
	     else write(' ');          
	     writeln;       
	    end;    
	   end. 
程序运行的结果是:
输出: 6 666 55555 555 555 444 444 333 333 22222 111 0

三、完善程序(每空4分,共40分)

1. 【问题描述】方阵填数:在一个N×N的方阵中,填入1,2,.....N×N个数,并要构成如下的格式:
如 N=4 N=5
10 11 12 1 13 14 15 16 1
9 16 13 2 12 23 24 17 2
8 15 14 3 11 22 25 18 3
7 6 5 4 10 21 20 19 4
9 8 7 6 5
【参考程序】

     Var 
          j:Integer; 
          n,i,k,x,y,Number:Byte; 
          Result:Array[1..25,1..25] of Byte; 
       Begin 
            Write('N='); Readln(n); 
            For x:=1 to n do for y:=1 to n do Result[x,y]:=0;  
            X:=0; Y:=N; i:=0; k:=N; j:=1; 
              While i<    n*n   do
 
                  Begin 
                       For i:=i+1 to i+k do     
                           Begin 
                                   x:=x+j     ;
 
                                Result[x,y]:=i; 
                           End; 
                       Dec(k);  
                       If j=1 then     j:=-1    else j:=1;  
 
                       For i:=i+1 to i+k do           
                           Begin 
                                y:=y+j; 
                                Result[x,y]:=i; 
                           End; 
                  End; For x=1 to n   do    
                Begin 
                     For y:=1 to n do Write(Result[x,y]:3); 
                     Writeln; 
                End; 
       End.

2. 【问题描述】数学上定义:
n!=1×2×3×...×(n-1)×n (N>0)
0!=1 若用integer型数据表示阶乘,最多可到7!,用Longint类型也只能到12!
要求输入正整数n,求 n! 的精确表示
【参考程序】

const max=1000; 
var n,i,j,jinwei,weishu:integer; 
    result:array[1..max] of integer;        
begin 
     writeln('input n:');readln(n);         
     fillchar(result,sizeof(result),0); 
     result[1]:=1;                          
     jinwei:=0;                             
     weishu:=     1      ;                            
 
     for i:=2 to n do begin                 
          jinwei:=0;                        
          for j:=1 to weishu do begin             
               result[j]:=     result[j]*i+jinwei     ;     
 
               jinwei:=result[j] div 10;           
               result[j]:=result[j] mod 10;        
          end; 
          while jinwei<>0 do begin                 
                  weishu:=weishu+1;                
                  result[weishu]:=jinwei mod 10;   
                  jinwei:=    jinwei div 10      ;          
 
          end; 
         if weishu>max then begin writeln('error!');halt;end; 
     end; 
     write(n,'!='); 
     for i:=    weishu downto 1     do write(result[i]);readln; 
end. 

3. 【问题描述】01串统计。给定一个01串,请你找出长度介于a,b之间,重复出现次数最多的01串。
输入:a,b(0<a<=b<=12)以及
由0,1组成的数串,由‘.’结尾。
输出:要求的串。 提示:本程序中将01序列转换为2进制数存取。
【参考程序】

program shuchuan; 
var i,j,s,k,a,b,max:integer; 
   m:array[1..8192] of integer; 
   two,v:array[1..20] of integer; 
   c:char; 
begin 
  for i:=1 to 13 do 
       two[i]:=1 shl i     ; 
readln(a,b); 
read(c); 
s:=1;k:=1; 
while c<>’.’ do begin 
  s:=s shl 1+ord(c)-48; 
  if k>b then 
    s:=((s-two[b+1]) mod two[b])+two[b]; 
  inc(m[s]); 
  if k<b then 
   for i:=a to k-1 do 
         inc(m[s mod two[i]+two[i]])      ; 
 inc(k); 
 read(c); 
end; 
for i:=two[b] to two[b+1] do 
  if m[i]>0 then 
    for j:=a to b-1 do 
      m[(i mod two[j])+two[j]]:=      m[i mod two[j]+two[j]]+m[i]     ; 
max:=0; 
for i:=two[a] to two[b+1] do 
  if m[i]>max then max:=m[i]; 
for i:=two[a] to two[b+1] do 
  if m[i]=max then begin 
    j:=0;k:=i; 
    repeat 
    inc(j);v[j]:=k mod 2; k:=k div 2; 
  until        k=1    ; 
  while j>0 do begin write(v[j]);dec(j) end; 
  writeln; 
end; 
end.