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

2018年大连理工大学盘锦校区商学院810数据结构和计算机组成原理之数据结构考研基础五套测试题

  摘要

一、单项选择题

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

A.X 的父结点

B. 以Y 为根的子树的最左下结点

C.X 的左兄弟结点Y

D. 以Y 为根的子树的最右下结点

【答案】A

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

2. 将线性表的数据元素进行扩充,允许带结构的线性表是( )。

A. 串

B. 树

C. 广义表

D. 栈

【答案】C

【解析】串、树、桟中的数据元素都是属于非结构的原子类型,元素的值是不可分解的。数组和广义表都是允许带结构的线性表。

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

把一个磁盘块读人缓冲区的时间为

送到用户区的时间是, CPU

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

下, 读人并分析完该文件的时间分别是( )。 A. B. C. D.

【答案】B

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

, 将缓冲区的数据传

。在单缓冲区和双缓冲区结构

看, 由于分析所用的时间小于从磁盘写入缓冲区的时间, 因此, CPU 会空闲。

单缓冲区的总时间=(磁盘写入缓冲区时间+缓冲区读出时间)

间=(100+50)X10+50=1550ns。

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

总时间=(磁盘写入缓冲区时间)X10+读出最后一块数据时间+CPU

分析最后一块数据时间

4. 元素a , b , c , d , e 依次进入初始为空的栈中, 若元素进栈后可停留、可出栈, 直到所有元素都出栈, 则在所有可能的出栈序列中, 以元素d 开头的序列个数是( )。

A.3

B.4

C.5

D.6

【答案】B

【解析】d 首先出栈后的状态如下图所示。

处理最后一块数据的时

此时可有以下4种操作:

(1)e进栈后出栈, 出栈序列为decba 。

(2)c出栈, e 进栈后出栈, 出栈序列为dceba 。

(3)cb出栈, e 进栈后出栈, 出栈序列为dcbea 。

(4)cba出栈, e 进栈后出栈, 出栈序列为dcbae 。

5. 对于一个线性表既要求能够进行较快速地的插入和删除,又要求存储结构能反映数据之间的逻辑关系,则应该用( )。

A. 顺序存储方式

B. 链式存储方式

C. 散列存储方式

D. 以上均可以

【答案】B

6. 中断处理和子程序调用都需要压桟以保护现场, 中断处理一定会保存而子程序调用不需要保存其内容的是( )。

A. 程序计数器

B. 程序状态字寄存器

C. 通用数据寄存器

D. 通用地址寄存器

【答案】B 。

【解析】中断处理与子程序调用最大的区别是中断处理程序与正在运行的进程可能无关, 而子程序调用与正在运行的进程有关。中断是要打断处理器的正常工作次序, 并要求其去处理某一事件的一种常用手段。因此, 除了要保护当前程序的地址, 计数器(指针) 和数据寄存器以外, 还需要保存程序状态字。子程序调用是与当前进程有关, 是正在运行的程序有意安排执行的, 这一类调用发生的时间以及位置具有确定性, 处于同一个进程内, 因此不需要保存程序状态字。所以中断处理和子程序调用不同的区别是中断处理程序必定会保存程序状态字寄存器。

7. 假定编译器将赋值语句“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次。

8. 连续存储设计时,存储单元的地址( )。

A. 一定连续

B. 一定不连续

C. 不一定连续

D. 部分连续,部分不连续

【答案】A

【解析】连续存储是指数据的物理存储相连,即存储单元的地址是连续的。