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

2018年佳木斯大学教育科学学院829网络与软件技术[专业硕士]之数据结构考研仿真模拟五套题

  摘要

一、单项选择题

1. 设系统缓冲区和用户工作均采单, 从外读入1个数据块到系统缓冲区的时间为100, 从系统缓冲区读入1个数据块到用户工作区的时间为5, 对用户工作区中的1个数据块行分析的时间为90(如下图所示) 。进程从外设读入并分析2个数据块的最短时间是( )

A.200

B.295

C.300

D.390

【答案】C

【解析】数据块1从外设到用户工作区的总时间为105, 在这段时间中数据块2没有进行操作。在数据块1进行分析处理时, 数据块2从外设到用户工作区的总时间为105, 这段时间是并行的。再加上数据块2进行处理的时间90, 总共是300, 故答案为C 。

2. 内部异常(内中断) 可分为故障(fault)、陷阱(trap)和终止(abort)三类。下列有关内部异常的叙述中, 错误的( )。

A. 内部异常的产生与当前执行指令相关

B. 内部异常的检测由CPU 内部逻辑实现

C. 内部异常的响应发生在指令执行过程中

D. 内部异常处理后返回到发生异常的指令继续执行

【答案】D

【解析】内中断分为:

①由软中断指令启动的中断; ②在一定条件下由CPU 自身启动的中断。

D 项错误, 如突然掉电引发的内中断经处理后不会继续执行。

3. 进程P0和P1的共享变量定义及若进程P0和P1访问临界资源的类C 伪代码实现如下:

则并发执行进程P0和PI 时产生的情况是( ).

A. 不能保证进程互斥进入临界区,会出现“饥饿”现象

B. 不能保证进程互斥进入临界区,不会出现“饥饿”现象

C. 能保证进程互斥进入临界区,会出现“饥饿”现象

D. 能保证进程互斥进入临界区,不会出现“饥饿”现象

【答案】D

【解析】这是皮特森算法(Peterson’SAlgorithm)的实现,保证进入临界区的进程合理安全. 该算法为了防止两个进程为进入临界区而无限期等待,设置变量tum ,表示不允许进入临界区的编号,每个进程在先设置自己标志后再设置turn 标志,不允许另一个进程进入,这时,再同时检测另一个进程状态标志和不允许进入标志,这样可以保证当两个进程同时要求进入临界区时只允许一个进程进入临界区. 保存的是较晚的一次赋值,则较晚的进程等待,较早的进程进入. 先到先人,后到等待,从而完成临界区访问的要求.

4. 循环队列存储在数组A[0..m]中,则入队时的操作为( )。

A.rear =rear +l

B.rear =(rear+1)mod(m﹣1)

C.rear =(rear+1)modm

D.rear =(rear+1)mod(m+1)

【答案】D

5. 已知关键字序列5,8,12,19,28,20,15,22是小根堆(最小堆) ,插入关键字3,调整后的小根堆是( ).

A.3, 5, 12, 8, 28, 20, 15, 22, 19

B.3, 5, 12, 19, 20, 15, 22, 8, 28

C.3, 8, 12, 5, 20, 15, 22, 28, 19

D.3, 12, 5, 8, 28, 20, 15, 22, 19

【答案】A

【解析】在堆中插入或删除一个元素后,将不再满足堆的性质. 为了使其成为新堆,在输出堆顶元素后,需要调整剩余元素. 具体过程如图(1)〜(5)所示,(1)为原堆,(2)为插入3后,(3)、(4)为调整过程,(5)为调整后的小根堆

.

(3)

(4)

(5)