2018年太原科技大学计算机科学与技术学院828数据结构考研强化五套模拟题
● 摘要
一、单项选择题
1. 动态存储管理系统中,通常可有( )种不同的分配策略。
A.1
B.2
C.3
D.4
E.5
【答案】C
【解析】动态存储管理系统中有以下三种:首次拟合法、最佳拟合法、最差拟合法。①首次拟合法,从表头指针开始查找可利用空间表,将找到的第一个大小不小于n 的空闲块的一部分分配给用户。②最佳拟合法,将可利用空间表中一个不小于n 且最接近n 的空闲块的一部分分配给用户。则系统在分配前首先要对可利用空间表从头到尾扫视一遍,然后从中找出一块不小于n 且最接近n 的空闲块进行分配。③最差拟合法,将可利用空间表中不小于n 且是链表中最大的空闲块的一部分分配给用户。
2. 若某文件系统索引结点(inode)中有直接地址项和间接地址项, 则下列选项中, 与单个文件长度无关的因素是( )
A. 索引结点的总数
B. 间接地址索引的级数
C. 地址项的个数
D. 文件块大小
【答案】A
【解析】根据文件长度与索引结构的关系可知, 只有选项A 是与单个文件长度无关的。
3. 若对n 阶对称矩阵A 以行序为主序方式将其下三角形的元素(包括主对角线上所有元素) 依次存放于一维数组B[l...(n(n+1))/2]中,则在B 中确定a ij (i<j) 的位置k 的关系为( )。
A.i*(i﹣1)/2+j
B.j*(j﹣1)/2+i
C.i*(i+1)/2+j
D.j*(j+1)/2+i
【答案】B
【解析】将n 阶对称矩阵存人一维数组中,一维数组的大小需为n(n+1)/2。对n 阶对称矩阵A 以行序为主序方式将其下三角形的元素(包括主对角线上所有元素) 依次存放于一维数组
中,当i <j 时,i 与k 的关系为j*(j﹣1)/2+i 。
4. 若某单处理器多进程系统中有多个就绪态进程, 则下列关于处理机调度的叙述中, 错误的是( )。
A. 在进程结束时能进行处理机调度
B. 创建新进程后能进行处理机调度
C. 在进程处于临界区时不能进行处理机调度
D. 在系统调用完成并返回用户态时能进行处理机调度
【答案】C 。
【解析】对于A 、B 、D 显然是可以进行处理机调度的, 对于C , 当进程处于临界区时, 只要不破坏临界资源的使用规则, 是不会影响处理机调度的, 比如, 通常访问临界资源可能是慢速的外设(如打印机) , 如果在进程访问打印机时, 不能处理机调度, 那么系统的性能将是非常低的。几种不进行处理机调度的情况如下:
①在处理机中断的过程中;
②进程在操作系统内核程序临界区中;
③其他需要完全屏蔽中断的原子操作过程中。
5. 已知一棵完全二叉树的第6层(设根为第1层) 有8个叶结点,则该完全二叉树的结点个数最多是( ).
A.39
B.52
C.111
D.119
【答案】C
【解析】完全二叉树的一个特点是:叶子结点只能出现在最下层和次下层. 题目中没有说明完全二叉树的高度,首先由完全二叉树的特点确定题目中树的高度. 根据题意,一棵完全二叉树的第6层(设根为第1层) 有8个叶结点,可知此二叉树的高度是6或7. 题目中求二叉树的结点数最多的情况,因此此完全二叉树的高度为7. 由于高度为7的完全二叉树的前6层是一棵满二叉树,根据二叉树的性质2可知,高度为6的满二叉树的结点数是
目中二叉树的第6层结点数是. 又根据二叉树的性质1可知,题个结点,已知有8个叶子结点,那么其余32﹣8=24个结点均为分支结点,这些结点在第7层上最多有48个子结点(即叶子结点). 所以此二叉树的结点数最多 可达
6. 下列选项中, 满足短任务优先且不会发生饥饿现象的调度算法是( )。
A. 先来先服务
B. 高响应比优先
C. 时间片轮转
D. 非抢占式短任务优先
【答案】B
【解析】分析该题目可以看到, 本题所提到的问题是涉及短任务调度也就是属于作业调度, 因此首先排除时间片轮转算法; 因为作业调度算法中没有时间片轮转的算法。其次, 因为问题提到短任务, 则先来先服务的算法也可以排除了, 它与短任务无关。剩余高响应比优先算法和非抢占式短任务优先是哪一个?我们可以通过分析得到, 非抢占式短任务优先算法不能解决饥饿问题, 因为当一个系统短任务源源不断到达是, 长任务必然会得不到调度, 产生饥饿。而解决此方法的最好方式就是采用计算响应比的方法, 并以高响应比值优先调度。这样, 无论短任务或长任务, 均可以得到调度, 而且, 较短任务会得到优先的调度。故满足短任务优先且不会发生饥饿现象的调度算法只有高响应比优先算法。
7. 引入二叉线索树的目的是( )。
A. 加快查找结点的前驱或后继的速度
B. 为了能在二叉树中方便地进行插入与删除
C. 为了能方便地找到双亲
D. 使二叉树的遍历结果唯一
【答案】A
【解析】二叉线索树有指向前驱和后继的指针,因此加快了查找前驱和后继结点的速度。
8. 某文件占10个磁盘块, 现要把该文件磁盘块逐个读入主存缓冲区, 并送用户区进行分析。假设一个缓冲区与一个磁盘块大小相同,
把一个磁盘块读人缓冲区的时间为
送到用户区的时间是, CPU
对一块数据进行分析的时间为
下, 读人并分析完该文件的时间分别是( )。 A. B. C. D.
【答案】B
【解析】这是一个简单的缓冲区的问题。由于缓冲区的访问是互斥的, 所以对单一缓冲区, 从磁盘写入和读出到用户区的操作必须串行执行, 也就是要保证互斥操作。而CPU 对数据的分析与从用户区读数据也是需要互斥操作, 但是CPU 分析与从磁盘写入缓冲区的操作可以并行。从本题看, 由于分析所用的时间小于从磁盘写入缓冲区的时间, 因此, CPU 会空闲。
单缓冲区的总时间=(磁盘写入缓冲区时间+缓冲区读出时间)
间=(100+50)X10+50=1550ns。
当采用双缓冲区时, 每块缓冲区的操作也必须满足互斥操作, 但是, 对两块缓冲区的操作却可以并行, 所以, 当第一个缓冲区写满以后, 磁盘紧接着写另一个缓冲区, 同时, 前一个已经满了的缓冲区被读出到用户区, 并立即进行CPU 的数据分析。读出操作和数据分析必须互斥进行, 故从时间
, 将缓冲区的数据传
。在单缓冲区和双缓冲区结构处理最后一块数据的时
相关内容
相关标签