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

2016年天津大学软件学院数据结构复试笔试仿真模拟题

  摘要

一、选择题

1. 某计算机系统中有8台打印机,由K 个进程竞争使用,每个进程最多需要3台打印机。该系统可能会发生死锁的K 最小值是( )。

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

【答案】C

【解析】死锁的抽屉原理一般描述是:将5个苹果放进4个抽屉,那么,必然有1个抽屉中至少有2个苹果。计算机系统的资源分配充分体现了这一原理。考察进程运行的特点,只要有一个进程能够运行,则运行结束后必然会归还资源,其余的进程也就会得到满足从而可以执行(这里考虑的资源主要是可重用的资源,不可重用的资源会消失,就不可用上述方法分析)。所以最少需要4个进程竞争使用,每个进程占用2台打印机,此时会产生死锁。

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

A. 直接插入排序 B. 起泡排序 C. 简单选择排序 D. 快速排序 【答案】A

【解析】当待排序列基本有序时,对冒泡排序来说,若最大关键字位于序列首部,则每趟排序仅能使其“下沉”一个位置,要使其下沉到底部仍需

趟排序,也即时间复杂度仍为

而对

简单选择排序来说,其比较次数与待排序列的初始状态无关;归并排序要求待排序列已经部分有序,而部分有序的含义是待排序列由若干有序的子序列组成,即每个子序列必须有序,并且其时;直接插入排序在待排序列基本有序时,每趟的比较次数大为降低,也即间复杂度为0(nlog2n )

n-1趟,

比较的时间复杂度由 降至

3. 组内的所有元素和小于后一组内的所有元素,若采用基于比较的排序,其时间下界应为( )。

A. B. C. D. 【答案】B

【解析】因组与组之间已有序,故将

个组分别排序即可,基于比较的排序方法每组的时

间下界为

0全部时间下界为

4. 从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为( )排序法。

A. 插入 B. 选择 C. 希尔 D. 二路归并 【答案】A

【解析】解此题需要熟知各种排序方法的基本思想。插入排序的基本思想是:假设待排序的

记录存放在数组

中,排序过程的某一中间时刻,R

被划分成两个子区间

插入到有序区

其中:前一个子区间是已排好序的有序区,后一个子区间则是当前未排序的部分,不妨

称其为无序区。将当前无序区的第1

个记录

中适当的位置上。使

变为新的有序区。这种方法通常称为增量法,因为它每次使有序区增加1个记录。

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

A. 起泡 B. 希尔插入 C. 交换 D. 快速 【答案】D

【解析】快速排序的平均时间复杂度是复杂度也是

所需要的辅助存储为

仅仅表示的是一个量级,

比如

所需要的辅助存储为和

的量级都为

虽然堆排序的时间

之所以说快排

看似堆排序比快速排序的性能好,

但是需要注意

最好,是在综合考虑的情况下。

6. 采用开址定址法解决冲突的哈希查找中,发生集聚的原因主要是( )。

A. 数据元素过多 B. 负载因子过大 C. 哈希函数选择不当 D. 解决冲突的算法选择不好 【答案】D

【解析】开放定址法就是从发生冲突的那个单元开始,按照一定的次序,从散列表中查找出一个空闲的存储单元,把发生冲突的待插入元素存入到该单元中的一类处理冲突的方法。

7. 某基于动态分区存储管理的计算机,,其主存容量为55MB (初始为空闲)采用最佳适配(Bestfit )算法,分配和释放的顺序为:分配15MB 、分配30MB 、释放15MB 、分配8MB 、分配6MB , 此时主存中最大空闲分,区的大小是( )。

A.7MB B.9MB C.10MB D.15MB 【答案】B

【解析】对于简单分区内存分配,需要将进程的所有代码和数据装入内存。故55MB 先分配15MB 余40MB , 再分配30MB 后余10MB , 释放15MB 后出现一个15MB 和一个10MB 的空闲空间,分配8MB 时按最佳适配(BestFit )算法应该使用10MB 的空闲块,余2MB 的碎片,分配6MB ,因此最大空闲区为9MB 。 时占用15MB 的空间余9MB 的碎片(空闲空间)

8. 动态存储管理系统中,通常可有( )种不同的分配策略。

【答案】C

【解析】动态存储管理系统中有以下三种:首次拟合法、最佳拟合法、最差拟合法。①首次拟合法,从表头指针开始查找可利用空间表,将找到的第一个大小不小于n 的空闲块的一部分分配给用户。②最佳拟合法,将可利用空间表中一个不小于n 且最接近n 的空闲块的一部分分配给用户。则系统在分配前首先要对可利用空间表从头到尾扫视一遍,然后从中找出一块不小于n 且最接近n 的空闲块进行分配。③最差拟合法,将可利用空间表中不小于n 且是链表中最大的空闲块的一部分分配给用户。

9. 下列排序算法中,其中( )是稳定的。

A. 堆排序,起泡排序 B. 快速排序,堆排序 C. 直接选择排序,归并排序 D. 归并排序,起泡排序 【答案】D

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

A. 通常不会出现找满的情况 B. 通常不会出现栈空的情况 C. 插入操作更容易实现 D. 删除操作更容易实现 【答案】A

二、填空题