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

2018年中原工学院计算机学院815专业基础(含数据结构、操作系统)之数据结构考研基础五套测试题

  摘要

一、单项选择题

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

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

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

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

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

【答案】B

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

2. 在文件“局部有序”或文件长度较小的情况下,最佳内部排序的方法是( )。

A. 直接插入排序

B. 起泡排序

C. 简单选择排序

D. 快速排序

【答案】A

【解析】当待排序列基本有序时,对冒泡排序来说,若最大关键字位于序列首部,则每趟排序仅能使其“下沉”一个位置,要使其下沉到底部仍需n -1趟排序,也即时间复杂度仍为0(n2)。而对简单选择排序来说,其比较次数与待排序列的初始状态无关;归并排序要求待排序列已经部分有序,而部分有序的含义是待排序列由若干有序的子序列组成,即每个子序列必须有序,并且其时间复杂度为;直接插入排序在待排序列基本有序时,每趟的比较次数大为降低,也

2即n -1趟,比较的时间复杂度由O(n) 降至O(n)。

3. 引入二叉线索树的目的是( )。

A. 加快查找结点的前驱或后继的速度

B. 为了能在二叉树中方便地进行插入与删除

C. 为了能方便地找到双亲

D. 使二叉树的遍历结果唯一

【答案】A

【解析】二叉线索树有指向前驱和后继的指针,因此加快了查找前驱和后继结点的速度。

4. 和顺序栈相比,链栈有一个比较明显的优势是( )。

A. 通常不会出现栈满的情况

B. 通常不会出现栈空的情况

C. 插入操作更容易实现

D. 删除操作更容易实现

【答案】A

5. 就平均性能而言,目前最好的内排序方法是( )排序法。

A. 起泡

B. 希尔插入

C. 交换

D. 快速

【答案】D

【解析】快速排序的平均时间复杂度是nlogn 所需要的辅助存储为

间复杂度也是

注意仅仅表示的是一个量级,比如和的量级都为,虽然堆排序的时。之所以说,所需要的辅助存储为O(1),看似堆排序比快速排序的性能好,但是需要快排最好,是在综合考虑的情况下。

6. 计算机开后, 操作系统最终被加载到( )

A.BIOS

B.ROM

C.EPROM

D.RAM

【答案】D

【解析】系统开机后, 操作系统的程序会被自动加载到内存中的系统区, 这段区城是RAM , 故答案选D 。

7.

参考模型的网络层提供的是( )。

A. 无连接不可靠的数据报服务

B. 无连接可靠的数据报服务

C. 有连接不可靠的虚电路服务

D. 有连接可靠的虚电路服务

【答案】A

【解析】TCP/IP的网络层向上只提供简单灵活的、无链接的、尽最大努力交付的数据服务, 因此答案是A 。

8. 若对如下的二叉树进行中序线索化, 则结点x 的左、右线索指向的结点分别是( )

A.e , c

B.e , a

C.d , c

D.b , a

【答案】D

【解析】此二叉树的中序遍历序列为:debxac , 由于节点x 左右孩子都为空, 所有进行中序线索化时, 它的左右孩子指针分别指向它的中序遍历序列的直接前驱结点b 和直接后继结点a , 所以选D

9. 为提高散列(Hash)表的查找效率, 可以采用的正确措施是( )。

Ⅰ. 增大装填(载) 因子

Ⅱ. 设计冲突(碰撞) 少的散列函数

Ⅲ. 处理冲突(碰撞) 时避免产生聚集(堆积) 现象

A. 仅Ⅰ

B. 仅Ⅱ

C. 仅Ⅰ、Ⅱ

D. 仅Ⅱ、Ⅲ

【答案】D

【解析】散列表的查找效率(比较次数) 取决于:散列函数、处理冲突的方法和散列表的装填因子α。α标志着散列表的装满程度, 通常情况下, α越小, 发生冲突的可能性越小; 反之, α越大, 表示已填入的记录越多, 再填入记录时, 发生冲突的可能性越大。因此选项Ⅰ错误, 越是增大装填因子, 发生冲突的可能性就越大, 查找效率也越低。选项Ⅱ正确。选项Ⅲ正确。采用合适的处理冲突的方法避免产生聚集现象, 也将提高查找效率。例如, 用拉链法解决冲突时不存在聚集现象, 用线性探测