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

2018年兰州理工大学计算机与通信学院892数据结构考研仿真模拟五套题

  摘要

一、单项选择题

1. 下列选项中, 会导致用户进程从态切换到内核的操作是( )

Ⅰ. 整数除以零

Ⅱ.sin ( )函数调用

Ⅲ.read 系统调用

A. 仅Ⅰ、Ⅱ

B. 仅Ⅰ、Ⅲ

C. 仅Ⅱ、Ⅲ

D. Ⅰ、Ⅱ和Ⅲ

【答案】B

【解析】对于Ⅰ, 系统发生异常, 需要进入内核态由操作系统进行处理, 而read 系统调用函数也是在内核态执行, sin ( )就是普通的用户函数, 在用户态执行, 故答案为C 。

2. 某系统有n 台互斥使用的同类设备, 3个并发进程需要3, 4, 5台设备, 可确保系统不发生死锁的设备数n 最小为( )

A.9

B.10

C.11

D.12

【答案】B 【解析】

3. 采用开址定址法解决冲突的哈希查找中,发生集聚的原因主要是( )。

A. 数据元素过多

B. 负载因子过大

C. 哈希函数选择不当

D. 解决冲突的算法选择不好

【答案】D

【解析】开放定址法就是从发生冲突的那个单元开始,按照一定的次序,从散列表中查找出一个空闲的存储单元,把发生冲突的待插入元素存入到该单元中的一类处理冲突的方法。

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

A. 编辑

B. 编译

C. 链接

D. 装载

【答案】B

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

5. 对n 个记录的线性表进行快速排序为减少算法的递归深度,以下叙述正确的是( )。

A. 每次分区后,先处理较短的部分

B. 每次分区后,先处理较长的部分

C. 与算法每次分区后的处理顺序无关

D. 以上三者都不对

【答案】A

【解析】令递归函数为f ,第一次进行递归函数认为递归深度为1,以后从深度为n 的递归函数f 中再调用递归函数f ,此时深度为n+1。整个f 的最大深度为递归深度。

6. 下列选项中, 不可能在用户态发生的事件是( )。

A. 系统调用

B. 外部中断

C. 进程切换

D. 缺页

【答案】C 。

【解析】我们在学习操作系统中知道, 任何一个进程在现代操作系统中为了共享和保护, 设定了用户态和内核态(可以通过设置软、硬件标志位来实现) , 在用户态运行用户的程序, 在内核运行系统的程序。所以, 从选项来看, 系统调用可以在任何态发生, 用户可以发起系统调用, 系统也可以; 外部中断是不可控的, 也会在任何时刻发生, 缺页的发生也是不可控的, 可以发生在用户代码之间; 而进程切换却不会在用户态发生。我们可以考虑一下情形, 进程切换是在什么时候发生的, 进程切换前必定运行的是进程调度, 只有进程调度选择了下一次被调度的进程, 进程切换才可以进行。进程调度是scheduler , 进程切换是dispather , 这体现了现代操作系统策略与机制分离的设计思想。所以, 进程切换必定不会在用户态发生(所谓发生指其起始的源头时刻) , 必定是在内核态(进程调度) 发生的。

7. 下列调整中, 不可能导致饥饿现象的是( )

A. 时间片转移

B. 静态优先及调度

C. 非抢占式作业优先

D. 抢占式短作业优先

【答案】A

【解析】时间片转移方法能在一个周期内使每个进程都得到一个时间片的CPU 使用时间, 不会产生饥饿的现象, 其余三个都会产生饥饿。

8. 在一棵三元树中度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,则度为0的结点数为( )个。

A.4

B.5

C.6

D.7

【答案】C

【解析】设度为0的结点数为x ,则度为3的树总结点数n =度为0的结点数+度为1的结点数+度为2的结点数+度为3的结点数=x +2+l +2=x +5;从每个结点所指向的结点数的和的角度来计算度为3的树总结点数n =2×3+1×2+2×1+1=11。两种方法所计算出来的n 相等,所以x =6。

9. 下列程常段的时间复杂度是( )

A.O()

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

【答案】C

【解析】外部循环的退出条件是k>n, 而对于k , 每次循环都执行

内部循环的退出条件是j>n, 对于j , 每次循环都执行

) , 即选C 。 段的时间复杂度为O(

10.下列选项中,降低进程优先级的合理时机是( ).

A. 进程的时间片用完

B. 进程刚完成I/O,进入就绪队列

C. 进程长期处于就绪队列

, 所以循环次数为; , 所以每次循环次数为n 次。所以此程序

相关内容

相关标签