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

2017年闽南师范大学计算机学院821计算机学科专业基础综合[专业硕士]之数据结构考研题库

  摘要

一、填空题

1. 已知二叉排序树的左右子树均不为空,则_____上所有结点的值均小于它的根结点值,_____上所有结点的值均大于它的根结点的值。

【答案】左子树;右子树 【解析】二叉排序树

或者是一棵空树,或者是具有下列性质的二叉树:①若它

的左子树不空,则左子树上所有结点的值均小于它的根结点的值;②若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;③它的左、右子树也分别为二叉排序树。

2. 在下面的程序段中,对X 的赋值语句的时间复杂度为_____(表示为n 的函数)。

【答案】1+(1+2)+(1+2+3)+"•+(l +2+... +n )=n(n +1)(n +2)/6,即

【解析】当i=l时,赋值语句就被执行了一次。当i=2时,赋值语句被执行了1+2次。当i=3时,赋值语句被执行了1+2+3次。可以推出赋值语句总共被执行了1+(1+2)+(1+2+3)+…+(l +2+... +n )=n(n +1)(n +2)/6次。 3. 分别采用堆排序,快速排序,起泡排序和归并排序,对初态为有序的表,则最省时间的是_____算法,最费时间的是_____算法。

【答案】起泡;快速

,【解析】当初态为有序表时,冒泡排序只需要进行一趟比较即可,此时时间复杂度为〇(n ) 而快速排序算法需要比较的次数达到最大,时间复杂度为

4. 对于一个具有n 个结点的单链表,在已知的结点半p 后插入一个新结点的时间. 复杂度为_____,在给定值为x 的结点后插入一个新结点的时间复杂度为_____。

【答案】

【解析】第一种情况只需直接修改指针的指向。第二种情况必须从头结点遍历找到x 的结点。

5. VSAM 系统是由_____、_____、_____构成的。

【答案】索引集;顺序集;数据集

6. 高度为h 的堆中,最多有_____元素,最少有_____个元素。

【答案】

当最后一层只有

【解析】当这个堆构成的是满二叉树时,元素的个数最多,元素个数为 一个元素时,此时堆的元素个数最少,元素个数为

7. 在n 个顶点的非空无向图中,最多有_____个连通分量。

【答案】n

【解析】当n 个顶点之间没有边,都是孤立的顶点时,有n 个连通分量。

8. 假设一个15阶的上三角矩阵A 按行优先顺序压缩存储在一维数组B 中,则非零元素中的存储位置k=_____。(注:矩阵元素下标从1开始)

【答案】93

【解析】对于上三角矩阵

9. 实现字符串拷贝的函数strcpy 为:

代入得93。

在B

【答案】

10.表达式

【答案】

的后缀表达式是_____。

二、选择题

11.在虚拟存储管理中,地址变换机构将逻辑地址变换为物理地址,形成该逻辑地址的阶段是( )。

A. 编辑 B. 编译 C. 链接 D. 装载 【答案】B

【解析】程序的编辑阶段一般都是程序员能够识别的高级语言或低级语言的文本,不涉及到任何与计算机运 行相关的事;编译是由编译程序将用户源代码编译成若干个目标模块,源地址编译成目标程序时,会形成逻辑地址;链接是由链接程序将编译后形成的一组目标模块,以及所需库函数链接,形成完整的装入模块;装入是由装入程序将装入模块装入内存。

12.知一棵二叉树的前序遍历结果为ABCDEF ,中序遍历结果为CBAEDF ,则后序遍历结果为( )。

A.CBEFDA B.FEDCBA C.CBEDFA D. 不定

【答案】A

【解析】由前序结果可知A 为根节点,再由中序遍历结果知BC 为A 的左孩子,且C 为B 的左孩子结点,到此可排除B 项,按照这种逻辑依次推理,便可得出结果对于该类型题目,可以先根据前序遍历结果和中序遍历结果画出二叉树,然后后序遍历二叉树得到后序遍历序列。

13.某文件占10个磁盘块,现要把该文件磁盘块逐个读入主存缓冲区,并送用户区进行分析。假设一个缓冲区与一个磁盘块大小相同,

把一个磁盘块读人缓冲区的时间为传送到用户区的时间是

CPU 对一块数据进行分析的时间为

构下,读人并分析完该文件的时间分别是( )。

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

【解析】这是一个简单的缓冲区的问题。由于缓冲区的访问是互斥的,所以对单一缓冲区,从磁盘写入和读 出到用户区的操作必须串行执行,也就是要保证互斥操作。而CPU 对数据的分析与从用户区读数据也是需要互斥操作,但是CPU 分析与从磁盘写入缓冲区的操作可以并行。从本题看,由于分析所用的时间小于从磁盘写入 缓冲区的时间,因此,CPU 会空闲。单缓冲区的总时间=(磁盘写入缓冲区时间+缓冲区读出时间

处理最后一块数据的时

当采用双缓冲区时,每块缓冲区的操作也必须满足互斥操作,但是,

对两块缓冲区的操作却可以并行,所以,当第一个缓冲区写满以后,磁盘紧接着写另一个缓冲区,同时,前一个已经满了的缓冲区被读出到用户区,并立即进行CPU 的数据分析。读出操作和数据分析必须互斥进行,故从时间上看,当数据被读出并分析后,恰好另一个缓冲区也写满了,可以立即进行读出数据到用户区并 进行数据分析。两块缓冲区交替进行读写,直到数据分析完毕,因此,总时间=(磁盘写入缓冲区时间)读出最后一块数据时间+CPU分析最后一块数据时间

=

14.操作系统的子系统通常由四个层次组成,每一层明确定义了与邻近层次的接口。其合理的层次组织排列顺序是( )。

A. 用户级B. 用户级C. 用户级

软件、设备无关软件、设备驱动程序、中断处理程序 软件、设备无关软件、中断处理程序、设备驱动程序 软件、设备驱动程序、设备无关软件、中断处理程序

将缓冲区的数据

,在单缓冲区和双缓冲区结