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

2018年江苏省培养单位紫金山天文台866计算机原理之数据结构考研基础五套测试题

  摘要

一、单项选择题

1. 假定编译器将赋值语句“x=x+3; ”转换为指令”add xaddt, 3”, 其中xaddt 是x 对应的存储单元地址, 若执行该指令的计算机采用页式虚拟存储管理方式, 并配有相应的TLB , 且Cache 使用直写(Write Through)方式, 则完成该指令功能需要访问主存的次数至少是( )。

A.0

B.1

C.2

D.3

【答案】C

【解析】采用页式虚拟存储管理方式时, 若页表全部放在内存中, 则存取一个数据最少要访问两次内存:第一次是访问页表, 得到所存取的数据或指令的物理地址; 第二次根据该地址存取数据或指令。在配有TLB 的页式虚拟管理方式中, 如果给出的地址在TLB 中, 则直接根据该地址取数据或指令, 仅需要一次访问内存。Cache 使用直写方式时, 计算完需要将数据写回到内存中, 因此完成整个指令功能至少需要访问主存2次。

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

B.O(n) C. 2D.O(n)

【答案】B

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

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

A.2h

B.2h ﹣1

C.2h +l

D.h +1

【答案】B

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

4. 若无向图

是( )。

A.6

B.15

C.16

D.21

【答案】C 中含7个顶点, 则保证图G 在任何情况下都是连通的, 则需要的边数最少

【解析】要保证无向图G 在任何情况下都是连通的, 即任意变动图G 中的边, G 始终保持连通。首先需要图G 的任意6个结点构成完全连通子图

再添加一条边将第7个结点与, 需条边, 然后连接起来, 共需16条边。本题非常容易错误地选择选项A , 主要原因是对“保证图G 在任何情况下都是连通的”的理解, 分析选项A , 在图G 中, 具有7个顶点6条边并不能保证其一定是连通图, 即有n-1条边的图不一定是连通图。分析选项D , 图G 有7个顶点21条边, 那么图G 一定是无向完全图, 无向完全图能保证其在任何情况下都是连通的, 但是这不符合题目中所需边数最少的要求。

5. 下列选项中, 描述浮点数操作速度指标的是( )。

A.MIPS

B.CPI

C.IPC

D.MFLOPS

【答案】D

【解析】MFLOPS(Million Floating-point Operations per Second)表示每秒执行多少百万次浮点运算, 用来描述计算机的浮点运算速度, 适用于衡量处理机的性能。

MIPS(Million Instructions per Second) 表示每秒执行多少百万条指令。对于一个给定的程序, MIPS 定义为

这里所说的指令一般是指加、减运算这类短指令。

CPI(Cycles per Instruction) 就是每条指令执行所用的时钟周期数。由于不同指令的功能不同, 造成指令执行时间不同, 也即指令执行所用的时钟数不同, 所以CPI 是一个平均值。

IPC(Instructions per Cycle)每个时钟周期执行的指令数。

6. 分别以下列序列构造二叉排序树,与用其他三个序列所构造的结果不同的是( )。

A.(100, 80, 90, 60, 120, 110, 130)

B.(100, 120, 110, 130, 80, 60,90)

C.(100, 60, 80, 90, 20, 110, 130)

D.(100, 80, 60, 90, 120, 130, 110)

【答案】C

【解析】二叉排序树:左右子树都是二叉排序树,且保证右子树都比根结点大,左子树都比根结点小。据以上两点建立二叉排序树。

7. 采用递归方式对顺序表进行快速排序。下列关于递归次数的叙述中, 正确的是( )。

A. 递归次数与初始数据的排列次序无关

B. 每次划分后, 先处理较长的分区可以减少递归次数

C. 每次划分后, 先处理较短的分区可以减少递归次数

D. 递归次数与每次划分后得到的分区的处理顺序无关

【答案】D

【解析】快速排序是递归的, 递归过程可用一棵二叉树给出, 递归调用层次数与二叉树的深度一致。例如:待排序列{48, 62, 35, 77, 55, 14, 35, 98) , 采用快速排序方法, 其对应递归调用过程的二叉树如下图所示。

在最坏情况下, 若初始序列按关键码有序或基本有序时, 快速排序反而蜕化为冒泡排序。即其对应递归调用过程的二叉树是一棵单支树。因此快速排序的递归次数与初始数据的排列次序有关。但快速排序的递归次数与每次划分后得到的分区处理顺序无关, 即先处理较长的分区或先处理较短的分区都不影响递归次数。

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

A.13

B.14

C.15

D.16

【答案】B

【解析】二叉树的先序遍历定义为:若二叉树为空, 则空操作; 否则, 访问根节点, 然后先序遍历左子树, 最后先序遍历右子树。本题中, 结点a 为二叉树的根节点, 左右子树的先序遍历可能存在下面四种情况:

①左子树为空, bcd 为右子树; ②b 为左子树, cd 为右子树; ③bc 为左子树, d 为右子树; ④bcd 为左子树, 右子树为空。

然后将左右子树继续分解, 如第①种情况的右子树先序遍历(bcd)可能有:

A. 左子树为空, 右子树为cd ;

b. 左子树为c , 右子树为d ;

c. 左子树为cd , 右子树为空。