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

2017年常州大学商学院858数据结构考研题库

  摘要

一、选择题

1. 排序算法的稳定性是指( )。

A. 经过排序之后,能使值相同的数据保持原顺序中的相对位置不变

B. 经过排序之后,能使值相同的数据保持原顺序中的绝对位置不变

C. 算法的排序性能与被排序元素的数量关系不大

D. 算法的排序性能与被排序元素的数量关系密切

【答案】A

【解析】假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,且在之前,而在排序后的序列中,仍在之前,则称这种排序算法是稳定的;否则称为不稳定的。

2. 下列关于RISC 的叙述中,错误的是( )。

A.RISC 普遍采用微程序控制器

B.RISC 大多数指令在一个时钟周期内完成

C.RISC 的内部通用寄存器数量相对CISC 多

D.RISC 的指令数、寻址方式和指令格式种类相对CISC 少

【答案】A

【解析】B 项、C 项、D 项都是RISC 的特点之一,所以它们都是正确的,只有A 项是CISC 的特点,因为RISC 的速度快,所以普遍采用硬布线控制器,而非微程序控制器。

3. 下列关于进程和线程的叙述中,正确的是( )。

A. 不管系统是否支持线程,进程都是资源分配的基本单位

B. 线程是资源分配的基本单位,进程是调度的基本单位

C. 系统级线程和用户级线程的切换都需要内核的支持

D. 同一进程中的各个线程拥有各自不同的地址空间

【答案】A 。

“线程是资源分配的基本单位,【解析】利用排除法来确定正确答案:进程是调度的基本单位”

这句话说反了,明显错误。“系统级线程和用户级线程的切换都需要内核的支持”也不正确,因为用户级线程的切换由用户编写的RuntimeSystem 执行的,内核并不感知。“同一进程中的各个线程拥有各自不同的地址空间”明显错误,引入线程的目的就是为了同一进程的所有线程能共享进程的地址空间,故“不管系统是否支持线程,进程都是资源分配的基本单位”是正确的。

4. 用直接插入排序方法对下面4个序列进行排序,

(由小到大)元素比较次数最少的是( )。

【答案】C

5. TCP/IP参考模型的网络层提供的是( )。

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

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

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

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

【答案】A

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

6. 下列命中组合情况中,一次访存过程中不可能发生的是( )。

A.TLB 未命中,Cache 未命中,Page 未命中

B.TLB 未命中,Cache 命中,Page 命中

C.TLB 命中,Cache 未命中,Page 命中

D.TLB 命中,Cache 命中,Page 未命中

【答案】D

【解析】TLB (快表)和慢表(页表,Page )构成二级存储系统,若TLB 命中,则Page 必命中。因此不可能发生的是D 选项。

7. —棵二叉树高度为h ,所有结点的度或为0或为2,则这棵二叉树最少有( )个结点。

A.2h

B.

C.

D.

【答案】B

【解析】此树满足哈夫曼树,除根节点外每层有两个节点。

8. 下列叙述中,不符合m 阶B 树定义要求的是( )。

A. 根结点最多有m 棵子树

B. 所有叶结点都在同一层上

C. 各结点内关键字均升序或降序排列

D. 叶结点之间通过指针链接

【答案】D

【解析】B 树就是指B-树。根据B-树的定义,m 阶B-树中每个结点最多有m 个分支,因此,根结点最多有m 棵子树,A 项正确;B-树中所有叶结点都在最底层,位于同一层,B 项正确;结

点内各关键字互不相等且有序排列,C 项正确。但是,所有叶子结点之间通过指针链接,是B+树的定义,而B-树中没有。因此,D 项是错误的。

9. 先序序列为a , b,c , d的不同二叉树的个数是( )。

A.13

B.14

C.15

D.16

【答案】B

【解析】二叉树的先序遍历定义为:若二叉树为空,则空操作;否则,访问根节点,然后先序遍历左子树,最后先序遍历右子树。本题中,结点a 为二叉树的根节点,左右子树的先序遍历可能存在下面四种情况:①左子树为空,bed 为右子树;②b 为左子树,cd 为右子树;③be 为左子树,d 为右子树;④bed 为左子树,右子树为空。然后将左右子树继续分解,如第①种情况的右子树先序遍历(bed )可能有:a. 左子树为空,右子树为cd ;b. 左子树为c ,右子树为d ;c. 左子树为cd ,右子树为空。按照这种方法继续分解左右子树,直到不能再分解为止,可得第①和④种情况各包含5种不同情况,第②和③种情况各包含2种情况,因此总共有14种不同的二 叉树。

10.输入序列为ABC ,可以变为CBA 时,经过的栈操作为( )。

【答案】B

【解析】根据输入序列和输出序列可知,输入序列全部进栈,然后再出栈。从中可以看出,push 的数目始终大于等于pop 的数目。

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

则并发执行进程

和时产生的情况是( )。

A. 不能保证进程互斥进入临界区,会出现“饥饿”现象

B. 不能保证进程互斥进入临界区,不会出现“饥饿”现象

C. 能保证进程互斥进入临界区,会出现“饥饿”现象

D. 能保证进程互斥进入临界区,不会出现“饥饿”现象