2018 年山东大学软件工程专业基础综合考研真题
一、解释概念(共 5 题,每题 3 分)
1、物理格式化(physical formatting)
2、饥饿
3、临界区
4、响应时间
5、磁盘调度
二、叙述题(共 6 题,每题 10 分)
1、三个进程 P1、P2 和 P3,到达 优先权 进程 执行时间 到达时间就绪队列的时间和当前
所需的 CPU 执行时间,以及优先权如图所示,若采用优先权方法进行调度(优先权值大的
进程首先运行),试分别计算抢占和非抢占的情况下,进程的平均周转时间。
2、若 CPU 硬件提供一条指令 TestAndSet,其功能描述如下
设计一种方法,通过 TestAndSet 指令实现两个进程之间的互斥。TestAndSet 是否是原子
操作?为什么?这种方法是否适合多个进程之间的互斥?主要缺点是什么?
3、在实现文件系统时把文件目录的目录项分解成两部分∶索引结点和符号名目录项。请说
明这两部分的主要内容,这样做有什么好处?
4、在一个采用分段管理的系统中,段表如下∶
在将下列逻辑地址∶[0,300]、[1,0]、[2,580]和[3,1240]转换为物理地址时,得到
的结果是什么?
5、解决死锁的方法有哪些类?请比较这些方法的优缺点。
6、关于高速缓存(cache)和缓冲区(buffer)回答下列问题∶
1)高速缓存一般用在什么地方,有什么作用?
2)缓冲区的作用是什么?它和 cache 有什么区别?
三、简答题(共 3 题,共 35 分)
1、(10 分)二叉树的中序序列为 ABC,画出该二叉树所有的可能形态。
2、(12 分)什么是最小堆?对于给定的关键字集合 55,31,11,37,46,73,63,2,7},
画出其初始最小堆;画出堆排序这些数据的中间过程,并进行简要说明。
3、(13 分)考虑下图(邻接点按顶点编号升序排列),画出邻接表,从顶点 A 出发,求它的
深度优先生成树和广度优先生成树;并根据普里姆(Prim)算法,画出从顶点 A 出发的生成
最小生成树的过程。
四、程序设计题(共 3 题,共 40 分)
1、(15 分)已知单链表 A 和 B 分别表示了两个集合,设计算法求集合 B 对于集合 A 的补集
A=A-B,同时返回该集合的元素个数。
2、(15 分)对于给定的单链表,编写算法将奇数序位与偶数序位上的结点进行交换。
3、(10 分)设计非递归算法实现二叉树的中序遍历。