2016 年重庆理工大学计算机学科专业基础综合考研真题 A
卷
一.单选题(每题 2 分,共 50 分)
1.数据元素之间有 4 种逻辑结构,下列不属于数据元素的逻辑结构是(
)
A.线性结构 B.树形结构
C.图形结构
D.队列
2.数据结构的二元组结构 B=(D,R),其中 D 是数据元素的集合,R 是(
)
A.关系的集合
B.线性的集合 C.树形的集合 D.图形的集合
3.算法有 5 个特性,下列不属于算法特性的是(
)
A.输入 B.输出 C.可行性 D.方法
4.单链表中每个结点的指针域的个数为(
)
A.1
B.2
C.3
D.4
5.完全二叉树,按层次序列对每个结点编号(根结点编号为 1),则编号为 3 的结点的双亲
编号为(
)
A.1
B.2
C.3
D.4
6.下列不属于线性结构的是(
)
A.线性表 B.栈 C.队列 D.图
7.顺序表的第 1 个元素存储地址是 2000,每个元素占用 2 个存储单元,则该顺序表的第 3
个元素地址是(
)
A.2002
B.2004
C.2006
D.2008
8.n 个顶点连通图的生成树中边的数目是(
)
A.n
B.n+1
C.n-1
D.2n
9.深度为 1(根的层次号为 1)的满二叉树结点个数为(
)
A.1
B.3
C.7
D.8
10.在一个无向图中,边的数目为 4,则所有顶点的度数之和为(
)
A.4
B.8
C.16
D.32
11.有一个有序表为{1,2,3},当折半查找到 2 时,需要的比较次数为(
)
A.1
B.2
C.3
D.4
12.一个栈的入栈顺序是 BCD,则该栈的不可能的输出序列是(
)
A.BCD
B.DCB
C.CBD
D.DBC
13.完全二叉树共有 15 个结点,按层次序列对每个结点编号(根结点编号为 1),则编号为
3 的结点的右孩子编号为(
)
A.6
B.7
C.8
D.9
14.设先序遍历某二叉树的序列为 AB,中序遍历该二叉树的序列为 BA,则后序遍历该二叉
树的序列为(
)
A.AB
B.BA
C.AC
D.CA
15.下列是图的存储结构的是(
)
A.数组
B.邻接表 C.线性表
D.栈
16.在普通用户看来,操作系统是(
)
A.用户与计算机之间的接口 B.控制和管理计算机的接口
C.合理地组织计算机工作流程的软件 D.计算机资源的管理者
17.并发和下面哪个是操作系统的基本特征,两者之间互为存在条件?( )
A.虚拟 B.异步 C.共享 D.可扩展性
18.通道是一种(
)
A.I/O 中断口 B.共享文件 C.I/O 专用处理机 D.数据通道
19.作业从进入后备队列到被调度程序选中的时间称为( )
A.周转时间 B.响应时间 C.触发时间 D.等待时间
20.临界区是指(
)
A.公共数据区 B.临时工作区 C.系统管理区 D.与共享变量有关的程序段
21.进程调度的关键问题是(
)
A.时间片大小 B.进程调度算法 C.CPU 速度 D.内存空间的大小
22.下列哪种存储方式不能实现虚拟存储( )
A.分区 B.页式 C.段式 D.段页式
23.操作系统处理缺页中断时,选择一种好的调度算法对内存和外存中的信息进行高效调
度,必须尽可能避免(
)
A.碎片 B.CPU 空闲 C.多重中断 D.抖动
24.对随机存取的文件,在磁盘上必须组织成(
)
A.有序文件 B.索引文件 C.连续文件 D.链接文件
25.在多级文件结构中,要访问一个文件时,必须指出文件的(
)
A.父目录 B.当前目录 C.路径名 D.根目录
二.简答题(每题 5 分,共 50 分)
26.数据结构的定义是什么?(5 分)
27.设给定权集 W={1,3,5,9},试构造关于 W 的一棵赫夫曼树,并求其带权路径长度 WPL。
(5 分)
28.设有一序列 25,18,6,44,请按该序列构成一棵二叉排序树,并求其查找成功时的平均
查找长度 ASL。(5 分)
29.写出下图所示二叉树的先序,中序和后序遍历序列。(5 分)
C
A
D
30.已知待散列的线性表为(7,12,13,17,10),散列用的一维地址空间为[0..5],假
定选用的散列函数是 H(K)= K mod 6,若发生冲突采用线性探查法处理,计算出每一个元
素的散列地址并在下图中填写出散列表。(5 分)
0
1
2
3
4
5
31.什么是进程,进程和程序有哪些不同?(5 分)
32.说明进程的三种基本状态以及各状态之间的转换。(5 分)
33.什么是死锁,产生死锁有哪几个条件?(5 分)
34.什么是虚拟存储器,虚拟存储器有什么特点,如何实现虚拟存储地址的转换?(5 分)
35.中断和 DMA 有什么异同?(5 分)
三.综合题(共 50 分)
36.编写函数,实现对二叉树的后序遍历(postorder)的递归算法。(10 分)
二叉树结点的结构体为
data;
struct BiTreeNode{
int
struct BiTreeNode * leftChild;
struct BiTreeNode * rightChild;
};
typedef struct BiTreeNode Node;
void postorder (Node * t)
/*t 为指向二叉树的根结点的指针*/
37.编写两个函数,分别实现对数组 a(元素个数为 n)中元素进行冒泡排序和简单选择排序
的算法。(15 分)
void maopaosort(int a[], int n)
void xuanzhesort(int a[], int n)
38.在微信操作的程序中,假设有一个邮箱,有 4 个程序 A、B、C、D 对该邮箱进行操作,
A 写入的数据 X 只能被 C 使用,B 写入的数据 Y 只能被 B 使用,A、B 写入数据后 C、D 才能
使用,C、D 使用一次数据后不能再重复使用,只有等到 A、B 再次写入后才能使用。规定邮
箱中一次只能存放一个数据。请用信号量的方式实现这几个进程之间的同步和互斥关系。
(10 分)
39.(本题共 15 分)在一个多道作业批处理系统中,作业调度采用短作业优先的调度算法,
设有下列作业序列:
作业名
到达时间
预估运行时间
优先级
1
2
3
4
8:00
8:20
8:20
8:30
30
40
20
10
8
5
7
6
其中给出的作业优先级即为进程的优先级,其数值越小,优先级越高。要求:
(1)如果进程调度采用抢占式优先调度算法。列出所有作业进入内存的时间及结束时间。
并计算周转时间和平均周转时间。(5 分)
(2)如果进程采用非抢占式调度,结果又如何?(5 分)
(3)分析哪种调度方式更好?(5 分)