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

2017年西安电子科技大学软件学院902数据结构与C语言程序设计[专业硕士]之数据结构考研冲刺密押题

  摘要

一、选择题

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

【答案】B

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

2. 某时刻进程的资源使用情况如下表所示

此时的安全序列是( )。 A.P1, P2, P3, P4 B.P1, P3, P2, P4 C.P1, P4, P3, P2 D 不存在 【答案】D

【解析】典型的死锁避免算法,银行家算法的应用。银行家算法是操作系统中的一个重点知识单元,考生对此应该非常熟悉,本题并无难点。分析一下下表,可以看到,经过P1, P4的运行以后,可用资源是2, 2,1,而 P2, P3所需资源分别是1,3, 2和1,3,1。所以剩余资源已经不够P2或P3的分配,亦即找不到能够安全运行的序 列,因此此时是处于不安全状态,所以不存在这样的安全序列。

3. 已知程序如下:

{

} {

}

程序运行时使用栈来保存调用过程的信息,自栈底到栈顶保存的信息依次对应的是( )。

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

【解析】函数S (intn )是一个递归函数:①当实际参数小于等于零时则返回0, 并终止递归;,并将S (n-1)的结果加上n 作为返回值。程序从②当实际参数大于零时则递归调用S (n-1)

main ( )函数开始,首先调用main ( )函数;在main ( )函数中调用S (1);由于函数S (1)的函数时,将main ( )函数的上下文保存到栈中,并进入函数S (1)

;在S 实际参数大于零,需要调用S (0), 故将S (1)函数的上下文保存到栈中,进入S (0)(0)中,实际参数小于等于零,递归终止。

4. 下列序列中,( )是执行第一趟快速排序后所得的序列。

【答案】C

【解析】快速排序将数据划分成两部分,其中一部分关键字比另一部分关键字小。

5. 下列选项中,用于提高RAID 可靠性的措施有( )

I. 磁盘镜像 II. 条带化 III. 奇偶校验 IV . 增加Cache 机制 A. 仅 I 、II B. 仅 I 、III C. 仅 I 、III 和IV D. 仅II 、III 和IV

【答案】B

【解析】能够提高RAID 可靠性的措施主要是对磁盘进行镜像处理和进行奇偶校验。其余选项不符合条件。

6. 若数据元素序列11, 12, 13, 7, 8, 9, 23, 4, 5是采用下列排序方法之一得到的第二趟排序后的结果,则该排序算法只能是( )。

A. 起泡排序 B. 插入排序 C. 选择排序 D. 二路归并排序 【答案】B

【解析】经过两趟排序后,A 项起泡排序的结果是两个最小或最大的元素放到了序列的最终位置;B 项插入排序的结果是前三个数有序即可;C 项选择排序结果是两个最小的元素在最前面按顺序排好;D 项二路归并排序的结果是长度为4的子序列有序,即前4个数排好序,接下来的4个数排好序。显然题目中的元素序列只能是插入排序第二趟排序后的结果,因此,B 项正确。

7. 若X 是后序线索二叉树中的叶结点, 且X 存在左兄弟结点Y ,则X 的右线索指向的是( )

A.X 的父结点

B. 以Y 为根的子树的最左下结点 C.X 的左兄弟结点Y

D. 以Y 为根的子树的最右下结点 【答案】A

【解析】根据后续线索二叉树的定义,X 结点为叶子结点且有左兄弟,那么这个结点为右孩子结点,利用后续遍历的方式可知X 结点的后继是其父结点,即其右线索指向的是父结点。

8. 在下面的程序段中,对x 的赋值语句的时间复杂度为( )

【答案】C 【解析】两个循环嵌套,那么语句x :=x+l :

则被执行了次。

9. 下面关于串的叙述中,不正确的是( )。

A. 串是字符的有限序列 B. 空串是由空格构成的串 C. 模式匹配是串的一种重要运算

D. 串既可以采用顺序存储,也可以采用链式存储