2018年常州大学信息学院、数理学院858数据结构考研核心题库
● 摘要
一、单项选择题
1. 假定有4个整数用8位补码分别表示为
放在一个8位寄存器中, 则下列运算会发生溢出的是( )。 A. B. C. D.
【答案】B
【解析】用补码表示时8位寄存器所能表示的整数范围为
数
, , 在4个选项中, 只有。现在4个整数都是负, 结果溢出, 其余3个算式结果。若将运算结果存都未超过127, 不发生溢出
2. 假定不采用Cache 和指令预取技术, 且机器处于“开中断”状态, 则在下列有关指令执行的叙述中, 错误的是( )。.
A. 每个指令周期中CPU 都至少访问内存一次
B. 每个指令周期一定大于或等于一个CPU 时钟周期
C. 空操作指令的指令周期中任何寄存器的内容都不会被改变
D. 当前程序在每条指令执行结束时都可能被外部中断打断
【答案】C
【解析】本题涉及的概念比较多。首先, 如果不采用Cache 和指令预取技术, 每个指令周期中至少要访问内存一次, 即从内存中取指令。其次, 指令有的简单有的复杂, 每个指令周期总大于或等于一个CPU 时钟周期。第三, 即使是空操作指令, 在指令周期中程序计数器PC 的内容也会改变(PC值加“1”) , 为取下一条指令做准备。第四, 如果机器处于“开中断”状态, 在每条指令执行结束时都可能被新的更高级的中断请求所打断。所以应选择选项C 。
3. 下列给出的指令系统特点中, 有利于实现指令流水线的是( )。
Ⅰ. 指令格式规整且长度一致
Ⅱ. 指令和数据按边界对齐存放
Ⅲ. 只有Load/Store指令才能对操作数进行存储访问
A. 仅Ⅰ、Ⅱ
B. 仅Ⅱ、Ⅲ
C. 仅Ⅰ、Ⅲ
D. Ⅰ、Ⅱ、Ⅲ
【答案】D
【解析】特点Ⅰ和Ⅲ都是RISC 机的特征, 而特点Ⅱ则有利于指令和数据的存放, 所以以上三个特点都有利于实现指令流水线。
4. 下列选项中, 不能构成折半查找中关键字比较序列的是( )。
A.500, 200, 450, 180
B.500, 450, 200, 180
C.180, 500, 200, 450
D.180, 200, 500, 450
【答案】A
【解析】折半查找的过程是:先确定待查找记录所在的范围, 然后逐步缩小范围直到找到或找不到该记录为止。折半查找的关键字序列满足:对每一个关键字, 其后面的所有关键字序列或者都小于等于该关键字或者都大于等于该关键字。A 项错误, 第三次比较的关键字为450, 说明待查关键字位于200〜450间, 所以第四次比较时不会遇到关键字180。
5. —个进程的读磁区操作完成后, 操作系统针对该进程必做的是( )
A. 修改进程状态为就绪态
B. 降低进程优先级
C. 进程分配用户内存空间
D. 增加进程的时间片大小
【答案】A
【解析】进程等待的操作完成便会从等待状态转移到就绪状态。
6. 已知三叉树T 中6个叶结点的权分别是2, 3, 4, 5, 6, 7, T 的带权(外部) 路径长度最小是 ( )
A.27
B.46
C.54
D.56
【答案】B
【解析】利用三叉树的6个叶子结点的权构建最小带权生成树, 最小的带权路径长度为
7. 下列关于图的叙述中, 正确的是( )。
Ⅰ. 回路是简单路径
Ⅱ. 存储稀疏图, 用邻接矩阵比邻接表更省空间
Ⅲ. 若有向图中存在拓扑序列, 则该图不存在回路
A. 仅Ⅱ
B. 仅Ⅰ、Ⅱ
C. 仅Ⅲ
D. 仅Ⅰ、Ⅲ
【答案】C
【解析】第一个顶点和最后一个顶点相同的路径称为回路; 序列中顶点不重复出现的路径称为简单路径; 回路显然不是简单路径, 所以选项Ⅰ错误。稀疏图用邻接表表示比邻接矩阵节省存储空间, 稠密图适合用邻接矩阵的存储表示, 所以选项Ⅱ错误。利用拓扑排序算法可以判断图中是否存在回路, 即在拓扑排序输出结束后所余下的顶点都有前驱, 则说明了只得到了部分顶点的拓扑有序序列, 图中存在回路。所以选项Ⅲ正确。
8. 若一棵二叉树的前序遍历序列为a , e , b , d , c , 后序遍历序列为b , c , d , e , a , 则根结点的孩子结点( )。
A. 只有e
B. 有e 、b
C. 有e 、c
D. 无法确定
【答案】A 。
【解析】由题目可知, 若一棵二叉树的前序遍历序列为a , e , b , d , c , 后序遍历序列为b , c , d , e , a , 其中a 为这棵二叉树的根结点, 接下来, 在前序遍历的第二个结点为e , 而后序遍历的倒数第二个结点为e , 说明a 的孩子结点只有e 。
9. 下列选项中, 不可能在用户态发生的事件是( )。
A. 系统调用
B. 外部中断
C. 进程切换
D. 缺页
【答案】C 。
【解析】我们在学习操作系统中知道, 任何一个进程在现代操作系统中为了共享和保护, 设定了用户态和内核态(可以通过设置软、硬件标志位来实现) , 在用户态运行用户的程序, 在内核运行系统的程序。所以, 从选项来看, 系统调用可以在任何态发生, 用户可以发起系统调用, 系统也可以; 外部中断是不可控的, 也会在任何时刻发生, 缺页的发生也是不可控的, 可以发生在用户代码之间; 而进程切换却不会在用户态发生。我们可以考虑一下情形, 进程切换是在什么时候发生的, 进程切换前必定运行的是进程调度, 只有进程调度选择了下一次被调度的进程, 进程切换才可以进行。进程调度是scheduler , 进程切换是dispather , 这体现了现代操作系统策略与机制分离的设计思想。所以, 进程切换必定不会在用户态发生(所谓发生指其起始的源头时刻) , 必定是在内核态(进程调度) 发生的。
相关内容
相关标签