当前位置:问答库>考研试题

2018年青海民族大学计算机学院827计算机综合之数据结构考研核心题库

  摘要

一、单项选择题

1. 循环队列A[0..m﹣1]存放其元素值,用front 和rear 分别表示队头和队尾,则当前队列中的元素数是( )。

A.(rear﹣front +m)%m

B.rear ﹣front +1

C.rear ﹣front ﹣1

D.rear ﹣front

【答案】A

【解析】对于循环队列,需要深刻理解队头(font)和队尾(rear)的概念,在队头进行出队操作,在队尾进行进队操作。rear-front 可能为正也可能为负,为正时元素个数=(rear-front);如果为负则元素的个数=(rear-front+m),所以统一的公式就是(rear-front+m)%m。

2. 某计算机存储器按字节编址, 采用小端方式存放数据。假定编译器规定int 和short 型长度分别为32位和16位, 并且数据按边界对齐存储。某C 语言程序段如下:

若record 变量的首地址为0xC008, 则地址中内容及的地址分别为( )。 A. B. C. D.

【答案】D 。

32位整数a 需要占4个字节, 16位整数c 需要占2个字节, 而字符数据b 占一个字节。【解析】

a=273, 转换成十六进制是111H , 采用小端方式存放数据, 地址

边界对齐存储,

地址

中存放c 。

3. 下列关于银行家算法的叙述中, 正确的是( )

A. 银行家算法可以预防死锁

B. 当系统处于安全状态时, 系统中一定无死锁进程

中的内容为11H 。由于数据按中存放b ,

地址中空闲,

地址中存放a ,

地址

C. 当系统处于不安全状态时, 系统中一定会出现死锁进程

D. 银行家算法破坏了死锁必要条件中的“请求和保持”条件

【答案】B

【解析】银行家算法是避免死锁的方法。利用银行家算法, 系统处于安全状态时没有死锁进程, 故答案选B 。

4. 排序过程中, 对尚未确定最终位置的所有元素进行一遍处理称为一趟排序。下列排序方法中, 每一趟排序结束时都至少能够确定一个元素最终位置的方法是( )。

Ⅰ. 简单选择排序

Ⅱ. 希尔排序

Ⅲ. 快速排序

Ⅳ. 堆排

Ⅴ. 二路归并排序

A. 仅Ⅰ、Ⅲ、Ⅳ

B. 仅Ⅰ、Ⅱ、Ⅲ

C. 仅Ⅱ、Ⅲ、Ⅳ

D. 仅Ⅲ、Ⅳ、Ⅴ

【答案】A 。

【解析】其中简单选择排序、堆排序属于选择类排序, 每一趟排序结束时将确定最大(或最小) 关键字所在的位置。快速排序每一趟排序结束时将确定基准关键字所在的位置。希尔排序、二路归并排序每一趟排序结束时不一定能确定一个元素的最终位置。

5. 下列选项中, 不会引起指令流水线阻塞的是( )。

A. 数据旁路(转发)

B. 数据相关

C. 条件转移

D. 资源冲突

【答案】A

【解析】由于采用流水线方式, 相邻或相近的两条指令可能会因为存在某种关联, 后一条指令不能按照原指定的时钟周期运行, 从而使流水线断流。有三种相关可能引起指令流水线阻塞:

①结构相关, 又称资源相关;

②数据相关;

③控制相关, 又称指令相关, 主要由转移指令引起。

6. 假定基准程序A 在某计算机上的运行时间为100秒, 其中90秒为CPU 时间, 其余为若CPU 速度提高

A.55秒

B.60秒

C.65秒

D.70秒

【答案】D 。

CPU 速度提高50%, 即CPU 性能提高比为【解析】, 改进之后的CPU 运行时间秒。速度不变, 仍维持10秒, 所以运行基准程序A 所耗费的时间为70秒。

7. 程序段

与对换;

其中n 为正整数,则最后一行的语句最坏情况下的时间复杂度是( )。

A.D(n)

B.O(nlogn)

C.O(n3)

D.O(n2)

【答案】D , 速度不变, 则运行基准程序A 所耗费的时间是( )。 时间。

【解析】这个是冒泡排序,最坏的情况下需要进行l +2+... +n ﹣l 次交换,即时间复杂度是0(n2) 。

8. 将两个各有N 个元素的有序表归并成一个有序表,其最少的比较次数是( )。

A.N

B.2N -1

C.2N

D.N -1

【答案】A

【解析】归并排序基本思想:归并排序是多次将两个或两个以上的有序表合并成一个新的有序表。最简单的归并是直接将两个有序的子表合并成一个有序的表。归并排序最好情况下的复杂度为O(n)。

9. 执行( )操作时,需要使用队列做辅助存储空间。

A. 查找哈希(Hash)表

B. 广度优先搜索网

C. 前序(根) 遍历二叉树

D. 深度优先搜索网