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

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

1. 下列叙述正确的是( )

  • A.计算机中所存储处理的信息是模拟信号
  • B.数字信息易受外界条件的影响而造成失真
  • C.光盘中所存储的信息是数字信息
  • D.模拟信息将逐步取代数字信息

2. 下列属于计算机在人工智能方面的典型应用是( )

  • A.图书管理
  • B.服装设计
  • C.人机博弈
  • D.视频播放

3. 记录在光盘中的数据属于( )

  • A.模拟信息
  • B.数字信息
  • C.仿真信息
  • D.广播信息

4. 关于数字技术,下列叙述正确的是( )

  • A.计算机与电视机都是用模拟技术处理信息的
  • B.数字信息容易受外界条件的影响而造成失真
  • C.模拟技术将逐步取代数字技术
  • D.数字技术采用0或1表示的二进制代码来存储信息

5. 目前我们使用的计算机仍遵循着一位科学家提出的基本原理,他是( )

  • A.摩尔
  • B.申农
  • C.比尔·盖茨
  • D.冯·诺依曼

6. 冯·诺依曼理论体系下的计算机五大逻辑部件是( )

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

7. 完整的计算机系统组成是( )

  • A.计算机及其外部设备
  • B.主机、显示器、软件
  • C.系统软件与应用软件
  • D.硬件系统与软件系统

8. 完整的计算机硬件系统的组成是 ( )

  • A.主机、键盘、显示器
  • B.控制器、运算器、存储器
  • C.CPU 和外部设备
  • D.运算器、控制器、存储器、输入与输出设备

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

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

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

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

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

  • A.线性表的线性存贮结构优于链表存贮结构
  • B.队列的操作方式是先进后出
  • C.栈的操作方式是先进先出

12. 电线上停着两种鸟(A,B),可以看出两只相邻的鸟就将电线分为了一个线段。已知:电 线两个顶点上正好停着相同的小鸟,试问两端为不同小鸟的线段数目一定是( )。

  • A.奇数
  • B.偶数
  • C.可奇可偶
  • D.数目固定

13. 下列( )不是描述算法的方法。

  • A.自然语言
  • B.高级语言
  • C.流程图
  • D.结构化语言流程图

14. 顺序结构、分支结构、循环结构有着共同的特点,即( )。

  • A.只有一个入口,只有一个出口
  • B.可以有多个入口,只有一个出口
  • C.只有一个入口,可以有多个出口
  • D.既可以有多个入口,又可以有多个出口

15. 一个向量第一个元素的存储地址是100,每个元素的长度是2,则第5个元素的地址是( )

  • A.110
  • B.108
  • C.100
  • D.109

16. 在所有排序方法中,关键字比较的次数与记录的初始排列次序无关的是( ) 。

  • A.希尔排序
  • B.起泡排序
  • C.插入排序
  • D.选择排序

17. 下面关于算法的错误说法是( )。

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

18. 若已知一个栈的入栈顺序是1,2,3,…,n,其输出序列为P1,P2,P3,…,Pn,若P1是n,则Pi是( )。

  • A.i
  • B.n-1
  • C.n-i+1
  • D.不确定

19. 以下哪一个不是栈的基本运算( )。

  • A.删除栈顶元素
  • B.删除栈底的元素
  • C.判断栈是否为空
  • D.将栈置为空栈

20. 在顺序表(2,5,7,10,14,15,18,23,35,41,52)中,用二分法查找12,所需的关键码比较的次数为( )。

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

二、问题解答 (每题5分,共20分)

1. 一棵二叉树的高度为h,所有结点的度为0,或为2,则此树最少有几个结点?
答案:2*h-1

2. 无向图G=(V,E),其中V={a,b,c,d,e,f} E={(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)}对该图进行深度优先遍历,得到的顶点序列正确的是什么?
答案:abedfc

3. 设有一个含有13个元素的Hash表(O~12),Hash函数是:H(key)=key % 13,其中%是求余数运算。用线性探查法解决冲突,则对于序列(2、8、31、20、19、18、53、27),18应放在第几号格中?
答案:6

4. 一个文本屏幕有25列及80行,屏幕的左上角以(1,1)表示,而右下角则以(80,25)表示,屏幕上每一个字符占用两字节(byte),整个屏幕则以线性方式存储在电脑的存储器内,内屏幕左上角开始,位移为0,然后逐列逐列存储。求位於屏幕(X,Y)的一个字节的位移是多少?
答案:160(y-1)+2(x-1)

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

1.

program t1; 
  const n=3; 
  type matrix=array[1..n,1..n]of integer; 
  var a:matrix; 
   i,j:1..n; 
  begin 
   for i:=1 to n do 
   begin 
    for j:=1 to n do 
     read(a[i,j]); 
    readln; 
   end; 
  for i:=1 to n do 
  begin 
for j:=1 to n do 
    write(a[j,i]:5); 
   writeln; 
  end; 
  end. 
且运行程序时的输入为: 
  2□1□3←┘ 
  3□3□1←┘ 
  1□2□1←┘ 
则程序的输出应是:
输出: 2 3 1 1 3 2 3 1 1

2.

program t2; 
   var letter:char; 
   begin 
    for letter:='a' to 'z' do 
    if (ord(letter)-ord('a'))mod 2=0 then write(letter:3); 
    writeln; 
    for letter:='z' downto 'a' do 
    if (ord(letter)-ord('z'))mod 2 =0 then write(letter:3); 
   writeln; 
  end. 
输出: a c e g i k m o q s u w y z x v t r p n l j h f d b

四、根据题意,将程序补充完整(每空4分,共40分)

1. 【问题描述】输入一串字符,字符个数不超过100,且以"."结束。 判断它们是否构成回文。
分析:所谓回文指从左到右和从右到左读一串字符的值是一样的,如12321,ABCBA,AA等。先读入要判断的一串字符(放入数组letter中),并记住这串字符的长度,然后首尾字符比较,并不断向中间靠拢,就可以判断出是否为回文。
【参考程序】:

   var 
    letter  : array[1..100]of char; 
    i,j   : 0..100; 
    ch   : char; 
  begin 
    {读入一个字符串以'.'号结束} 
   write('Input a string:'); 
     i:=0;      
read(ch); 
   while ch<>'.' do 
   begin 
    i:=i+1;letter[i]:=ch; 
     read(ch);     
   end; 
   {判断它是否是回文} 
   j:=1;  while (j<i)and(letter[j]=letter[i])do 
   begin 
    i:=i-1;     
j:=j+1; 
   end; 
   if j>=i then writeln('Yes.') 
   else writeln('No.'); 
  end.  

2. 奇数阶魔阵
【问题描述】魔阵是用自然数1,2,3…,n2填n阶方阵的各个元素位置,使方阵的每行的元素之和、每列元素之和及主对角线元素之和均相等。奇数阶魔阵的一个算法是将自然数数列从方阵的中间一行最后一个位置排起,每次总是向右下角排(即Aij的下一个是i+1,j+1)。但若遇以下四种情形,则应修正排数法。
(1) 列排完(即j=n+1时),则转排第一列;
(2) 行排完(即i=n+1时),则转排第一行;
(3) 对An,n的下一个总是An,n-1;
(4) 若Aij已排进一个自然数,则排Ai-1,j-2。
例如3阶方阵,则按上述算法可排成:
4 3 8
9 5 1
2 7 6
【参考程序】:

var  
   a : array[1..99,1..99]of integer; 
   i,j,k,n : integer; 
  begin 
   fillchar(a,sizeof(a),0); 
   write('n=');readln(n); 
       i:=n div 2+1;     
j:=n; 
   a[i,j]:=1; 
   for k:=2 to n*n do 
    begin 
     if (i=n)and(j=n) then 
       j:=j-1     
     else 
begin 
       i:=i mod n +1; 
       j:=j mod n +1; 
      end; 
      if a[i,j]<>0 then        
      begin 
       i:=i-1; 
       j:=j-2; 
      end; 
     a[i,j]:=k; 
    end; 
   for i:=1 to n do 
    begin 
      for j:=1 to n do     
      write(a[i,j]:5); 
     writeln; 
    end; 
  end.

3. 编制用筛法求1-n(n≤200)以内素数的程序。 分析: 由希腊著名数学家埃拉托色尼提出的所谓"筛法",步骤如下:
①将所有候选数放入筛中;
②找筛中最小数(必为素数)next,放入集合primes中;
③将next的所有倍数从筛中筛去;
④重复②~④直到筛空。
编程时,用集合变量sieve表示筛子,用集合primes存放所有素数。
【参考程序】

 program ex10_3; 
  const n=200; 
  var sieve,primes:set of 2..n; 
    next,j:integer; 
begin 
    sieve:=[2..n];{将所有候选数放入筛中} 
    primes:=[];{素数集合置空} 
    next:=2; 
    repeat 
     {找筛sieve中最小一个数} 
     while not (next in sieve) do   
      next:=succ(next); 
     primes:=primes+[next];{将最小数放入素数集合中} 
     {将这个素数的倍数从筛中删去} 
    j:=next; 
    while j<=n do 
     begin 
      sieve:=sieve-[j];    
      j:=j+next; 
     end 
    until sieve=[]; 
    j:=0; 
    for next:=2 to n do{打印出所有素数} 
     if next in primes then 
begin 
      write(next:5); 
      j:=j+1; 
     primes:=primes-[next];      
     end; 
    writeln; 
  end.