2018年中国海洋大学信息科学与工程学院912数据结构和软件工程之数据结构考研强化五套模拟题
● 摘要
一、单项选择题
1. 现有容量为10GB 的磁盘分区, 磁盘空间以簇(duster)为单位进行分配, 簇的大小为4KB , 若采用位图法管理该分区的空闲空间, 即用一位(bit)标识一个簇是否被分配, 则存放该位图所需簇的个数为( )
A.80
B.320
C.80K
D.320K
【答案】A
【解析】磁盘的簇的个数为:
个
而一个簇的位示图能管理的簇的个数为:
所以需要簇的个数为
个
2. 数据链路层采用后退N 帧(GBN)协议,发送方已经发送了编号为0〜7的帧. 当计时器超时,若发送方只收到0、2、3号帧的确认,则发送方需要重发的帧数是( ).
A.2
B.3
C.4
D.5
【答案】C
【解析】后退N 帧协议,即策略的基本原理是,当接收方检测出失序的信息帧后,要求发送方重发最后一个正确接收的信息帧之后的所有未被确认的帧;或者当发送方发送了N 个帧后,若发现该N 帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重新发送出错帧及其后的N 帧. 本题收到3号帧的确认,说明0,1,2,3号帧已经收到,丢失的是4,5,6,7号帧,共4帧. 因此答案为C 项.
3. 下列选项中,降低进程优先级的合理时机是( ).
A. 进程的时间片用完
B. 进程刚完成I/O,进入就绪队列
C. 进程长期处于就绪队列
D. 进程从就绪状态转为运行态
【答案】A
【解析】进程时间片用完可以降低其优先级,完成I/O的进程应该提升其优先级,处于就绪队列等待调度的进程一般不会改变其优先级. 进行这样的操作主要是为了改善交互式系统的响应时间,并均衡各个作业的公平性. 采用时间片轮转技术主要为改善交互式用户的感受,使其觉得是独享计算机(时间片轮转可以有效地防止计算繁忙型的进程独占计算机) ,时间片用完后降低其优先级是为了改善新进程的响应时间(新进程优先级较高,老进程降低优先级可以保证新进程具有优先权) ,对于刚进入就绪队列的新进程,往往在创建时已经根据其特点和要求确定好优先级,不会随意改变. 而对于从阻塞状态唤醒的进程,由于阻塞带来了较长时间的等待,一般会根据阻塞队列的不同适当地提高优先级,以改善用户响应时间.
4. 在文件“局部有序”或文件长度较小的情况下,最佳内部排序的方法是( )。
A. 直接插入排序
B. 起泡排序
C. 简单选择排序
D. 快速排序
【答案】A
【解析】当待排序列基本有序时,对冒泡排序来说,若最大关键字位于序列首部,则每趟排序仅能使其“下沉”一个位置,要使其下沉到底部仍需n -1趟排序,也即时间复杂度仍为0(n2)。而对简单选择排序来说,其比较次数与待排序列的初始状态无关;归并排序要求待排序列已经部分有序,而部分有序的含义是待排序列由若干有序的子序列组成,即每个子序列必须有序,并且其时间复杂度为;直接插入排序在待排序列基本有序时,每趟的比较次数大为降低,也
2即n -1趟,比较的时间复杂度由O(n) 降至O(n)。
5. 某计算机有16个通用寄存器, 采用32位定长指令字操作码字段(含寻址方式位) 为8位, Store 指令的源操作数和目的操作数分别采用寄存器直接寻址和基址寻址方式, 若基址寄存器可使用任一通用寄存器, 且偏移量用补码表示, 则Store 指令中偏移量的取值范围是( ) A. B. C. D.
【答案】A
【解析】寄存器个数
指令编址方式如下所示:
16位补码取值范围为, 所以偏移量取值范围为
偏移量有32-8-4-4=16位
6. 对关键码序列28,16,32,12,60,2,5,72快速排序,从小到大一次划分结果为( )。
A.(2,5,12,16)26(60,32,72)
B.(5,16,2,12)28(60,32,72)
C.(2,16,12,5)28(60,32,72)
D.(5,16,2,12)28(32,60,72)
【答案】B
【解析】快速排序是将待排记录分割成独立的两部分,其中一部分的关键字均比另一部分记录的关键字小。
第一次比较:28比72小,不交换;
第二次比较:28比5大,交换,此时为(5,16,32,12,60,2,28,72) ;
第三次比较:16比28小,不交换;
第四次比较:32比28大,交换,此时为(5,16,28,12,60,2,32,72) ;
第五次比较:28比2大,交换,此时为(5,16,2,12,60,28,32,72) ;
第六次比较:28比12大,不交换;
第七次比较:28比60小,交换,此时为(5,16,2,12,28,60,32,72) ;
一次划分结束。
7. 已知一算术表达式的中缀表达式为a ﹣(b+c/d)*e,其后缀形式为( )。 A.
B.
C.
D.
【答案】D
【解析】后缀表达式:在程序语言中,运算符位于两个操作数后面的表达式。
8. 下列选项中, 不可能在用户态发生的事件是( )。
A. 系统调用
B. 外部中断
C. 进程切换
D. 缺页
【答案】C 。
【解析】我们在学习操作系统中知道, 任何一个进程在现代操作系统中为了共享和保护, 设定了用户态和内核态(可以通过设置软、硬件标志位来实现) , 在用户态运行用户的程序, 在内核运行系统的程序。所以, 从选项来看, 系统调用可以在任何态发生, 用户可以发起系统调用, 系统也可以; 外部中断是不可控的, 也会在任何时刻发生, 缺页的发生也是不可控的, 可以发生在用户代码之间; 而进程切换却不会在用户态发生。我们可以考虑一下情形, 进程切换是在什么时候发生的, 进程切