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

2017年齐鲁工业大学理学院872数据结构考研题库

  摘要

一、选择题

1. 以下与数据的存储结构无关的术语是( )。

A. 循环队列

B. 链表

C. 哈希表

D. 栈

【答案】D

【解析】循环队列体现线性表是以顺序存储。用散列法存储的线性表称散列表。链表说明线性表是以链式结构存储的。栈不能体现出是顺序还是链式存储结构。

2. 一棵3阶B-树中含有2047个关键字,包括叶结点层,该树的最大深度为( )。

A.11

B.12

C.13

D.14

【答案】B

3. 下列选项中,操作系统提供的给应用程序的接口是( )。

A. 系统调用

B. 中断

C. 库函数

D. 原语

【答案】A

【解析】操作系统提供给用户应用程序的接口只有两种:命令输入和系统调用。其中,命令输入又有不同的形式,例如常规的命令行、图形化人机交互接口复杂调用(例如多种,

以及包含在)自然命令用户接口等,而系统调用中除了常规的一些传统的系统调用(例如read ( ))以外,还有经过扩展的库中的各种封装好的过程调用(最终都是通过系统调用陷入到操作系统中去的)等。

4. 为提高散列(Hash )表的查找效率,可以采用的正确措施是( )。

I .增大装填(载)因子

II. 设计冲突(碰撞)少的散列函数

III. 处理冲突(碰撞)时避免产生聚集(堆积)现象

A. 仅I B. 仅 II C. 仅 I 、II D. 仅 II 、III

【答案】D

【解析】散列表的查找效率(比较次数)取决于:散列函数、处理冲突的方法和散列表的装填因子a 。CX 标 志着散列表的装满程度,通常情况下,(X 越小,发生冲突的可能性越小;反之,a 越大,表示已填入的记录越多, 再填入记录时,发生冲突的可能性越大。因此选项I 错误,越是增大装填因子,发生冲突的可能性就越大,查找 效率也越低。选项II 正确。选项III 正确。采用合适的处理冲突的方法避免产生聚集现象,也将提高查找效率。例如,用拉链法解决冲突时不存在聚集现象,用线性探测法解决冲突时易引起聚集现象。

5. 在有向图G 的拓扑序列中,若顶点V i 在顶点V j 之前,则下列情形不可能出现的是( ) 。

A.G 中有弧 B.G 中有一条从V i 到V j 的路径

C.G 中没有弧

【答案】D

【解析】若想实现图的一个拓扑排序,需要满足的一个条件为:若顶点A 在序列中排在顶点B 的前面,则在图中不存在从顶点B 到顶点A 的路径。又因为若G 中有一条从V j 到V i 的路径,则在拓扑序列中V i 不可能在V j 前。

6. 下列选项中,不会引起指令流水线阻塞的是( )。

A. 数据旁路(转发)

B. 数据相关

C. 条件转移

D. 资源冲突

【答案】A

【解析】由于采用流水线方式,相邻或相近的两条指令可能会因为存在某种关联,后一条指令不能按照原指定的时钟周期运行,从而使流水线断流。有三种相关可能引起指令流水线阻塞:

①结构相关,又称资源相关;

②数据相关;

③控制相关,又称指令相关,主要由转移指令引起。

7.

用户程序发出磁盘请求后,系统的处理系统的处理流程是:用户程序一系统调用处理程序一设备骆动程序一中断处理程序。其中,计算数据所在磁盘的柱面号、磁头号、扇区号的程序是( )

A. 用户程序

B. 系统调用处理程序

C. 设备驱动程序

D. 中断处理程序

【答案】C

【解析】计算磁盘号、磁头号和扇区号的工作是由设备驱动程序完成的,所以答案选C 。

8. 在有向图的邻接表存储结构中,顶点V 在链表中出现的次数是( )。

A. 顶点V 的度 B. 顶点V 的出度 C. 顶点V 的入度 D. 依附于顶点V 的边数

【答案】B

【解析】在有向图中,第j 个链表中的结点个数只是顶点Vi 的出度,为求入度,必须遍历整个邻接表。因此顶点V 在链表中出现的次数是顶点V 的出度。

9. 用数组r 存储静态链表,结点的next 域指向后继,工作指针j 指向链中结点,使j 沿链移动的操作为( )。

【答案】A

【解析】因为是用数组存储,这里所说的工作指针j 相当于数组的下标,结点是存储一个值域和next 域,next 域就是存放下一个结点的下表,所以只要将next 域中的值赋给j 就可以实现j 沿链移动。

10.当在一个有序的顺序存储表上查找一个数据时,既可用折半查找,也可用顺序查找,但前者比后者的查找速度( )。

A. 必定快

B. 不一定

C. 在大部分情况下要快

D. 取决于表递增还是递减

【答案】C

【解析】对于有序顺序存储表折半查找的效率较高,但是不是所有情况下都是如此,比如要查找的元素就是第一个时,用顺序查找比它就快的多了。这类情况外折半都高于顺序查找。

11.静态链表中指针表示的是( )。

A. 下一元素的地址

B. 内存储器的地址

C. 下一元素在数组中的位置

D. 左链或右链指向的元素的地址

【答案】C

【解析】静态链表的一般结构为:

这种结构是预先分配一个较大的空间,类似于一次申请一个较大的数组,但是元素的增删操作都不会移动元素,只需要移动next 成员就行。因此,静态链表中的指针实际上表示的就是下一个元素在数组中的位置。