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

2017年兰州大学信息科学与工程学院810计算机专业基础之数据结构考研强化模拟题

  摘要

一、选择题

1. 下列调整中,不可能导致饥饿现象的是( )

A. 时间片转移 B. 静态优先及调度 C. 非抢占式作业优先 D. 抢占式短作业优先 【答案】A

【解析】时间片转移方法能在一个周期内使每个进程都得到一个时间片的CPU 使用时间,不会产生饥饿的现象,其余三个都会产生饥饿。

2. 某磁盘的转速为10, 000转/分,平均寻道时间是为

磁盘传输速率是磁盘控制器延迟

读取一个4KB 的扇区所需平均时间约为( ) A.9ms B.9.4ms C.12ms D.12.4ms 【答案】B

【解析】磁盘转速是10 000转/分钟,平均转一转的时间是6ms ,因此平均查询扇区的时间是

3ms ,平均寻道时间是6ms ,读取4KB 扇区信息的时间为0.2ms ,信息延迟的时间为0.2ms ,总时 间为

3. 直接插入排序在最好情况下的时间复杂度为( )。

【答案】B

【解析】当序列是按照直接插入排序的顺序有序时,此时进行插入时,每次都只需要和末尾 的一个元素进行比较,此时的时间复杂度最好,为

4. 进程P0和P1的共享变量定义及若进程P0和P1访问临界资源的类C 伪代码实现如下:

则并发执行进程

时产生的情况是( )。

A. 不能保证进程互斥进入临界区,会出现“饥饿”现象 B. 不能保证进程互斥进入临界区,不会出现“饥饿”现象 C. 能保证进程互斥进入临界区,会出现“饥饿”现象 D. 能保证进程互斥进入临界区,不会出现“饥饿”现象 【答案】D

【解析】这是皮特森算法(Peterson ’S Algorithm )的实现,保证进入临界区的进程合理安全。该算法为了防止两个进程为进入临界区而无限期等待,设置变量turn , 表示不允许进入临界区的编号,每个进程在先设置自己标志后再设置turn 标志,不允许另一个进程进入,这时,再同时检测另一个进程状态标志和不允许进入标志,这样可以保证当两个进程同时要求进入临界区时只允许一个进程进入临界区。保存的是较晚的一次赋值,则较晚的进程等待,较早的进程进入。先到先人,后到等待,从而完成临界区访问的要求。

5. 稀疏矩阵一般的压缩存储方法有两种,即( )。

A. 二维数组和三维数组 B. 三元组和散列 C. 三元组和十字链表 D. 散列和十字链表 【答案】C

【解析】稀疏矩阵一般的压缩方法为三元组表和十字链表。三元组表就是将非零元素及其对应的行和列构成一个三元组(行标,列标,值)。十字链表相比三元组表而言,主要是对每个结点增加了两个链域。如果数组经常运算时,会产生大量数据元素的移动,此时,采用链表存储结构更为恰当。

6. 设X 是树T 中的一个非根结点,B 是T 所对应的二叉树。在B 中,X 是其双亲的右孩子,下列结论正确的是( )。

A. 在树T 中,X 是其双亲的第一个孩子 B. 在树T 中,X —定无右兄弟 C. 在树T 中,X —定是叶结点 D. 在树T 中,X —定有左兄弟 【答案】D

【解析】由树和二叉树的转换关系可知,X 一定有左兄弟,X 是其双亲的第二个孩子,不能确定在树T 中,X 是否有右兄弟,是否是叶结点。

7. 设被排序的结点序列共有N 个结点,在该序列中的结点已十分接近排序的情况下,用直接插入法、归并法和一般的快速排序法对其排序,这些算法的时间复杂性应为( )。

【答案】C

【解析】因为该序列中的结点已经十分接近排序的情况,对于直接插入法,大部分结点只需要直接插入后面即可,因此时间复杂度为的时间复杂度为

对于采用归并法,它是一种稳定的排序方法,它

对于一般的快速排序法,序列越接近有序,所需要的比较次数越多,

此时的时间复杂度为

8. 由3个结点可以构造出多少种不同的有向树?( )

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

【答案】A

【解析】满足以下条件的有向图称为有向树:①有且仅有一个结点的入度为0; ②除树根外结点的入度为1; ③从树根到任一结点有一有向通路。

9. 在采用中断I/O方式控制打印输出的情况下,CPU 和打印控制接口中的I/O端口之间交换的信息不可能是( )。

A. 打印字符 B. 主存地址 C. 设备状态 D. 控制命令 【答案】B

【解析】I/O接口的功能包括:①选址功能;②传送命令功能;③传送数据功能;④反映I/O设备工作状态功能。A 项为数据,C 项为设备状态,D 项为命令。B 项,主存地址在中断方式控制下是不需要的,因此,它不可能是CPU 和打印控制接口中的I/O端口之间交换的信息。

10.在请求分页系统中,页面分配策略与页面置换策略不能组合使用的是( )。

A. 可变分配,全局置换 B. 可变分配,局部置换 C. 固定分配,全局置换 D. 固定分配,局部置换 【答案】

【解析】分配和置换策略有下面三个组合:①固定分配、局部置换;②可变分配、全局置换;,或根据程序员、③可变分配、局部置换。固定分配是指基于进程的类型(交互型或批处理型等)