2017年浙江师范大学数理与信息工程学院885数据结构与程序设计考研仿真模拟题
● 摘要
目录
2017年浙江师范大学数理与信息工程学院885数据结构与程序设计考研仿真模拟题(一).... 2
2017年浙江师范大学数理与信息工程学院885数据结构与程序设计考研仿真模拟题(二).. 18
2017年浙江师范大学数理与信息工程学院885数据结构与程序设计考研仿真模拟题(三).. 33
2017年浙江师范大学数理与信息工程学院885数据结构与程序设计考研仿真模拟题(四).. 47
2017年浙江师范大学数理与信息工程学院885数据结构与程序设计考研仿真模拟题(五).. 59
一、填空题
1. 在单链表L 中,指针P 所指结点有后继结点的条件是_____ 【答案】
【解析】指针所指节点的指针域所指向的元素非空,说明该指针所指节点有后继结点。
2. 有五个数据依次入栈:1,2, 3, 4, 5。在各种出栈的序列中,以3, 4先出栈的序列有_____。(3在4之前出栈)
【答案】3个
【解析】以3, 4先出栈的序列有34521、34215、34251共3个。
3. 设有两个算法在同一机器上运行,其执行时闻分别为要使前者快于后者,n 至少为_____。
【答案】15
【解析】当时,而
,时,
4. 用循环链表表示的队列长度为n ,若只设头指针,则出队和入队的时间复杂度分别是_____和_____;若只设尾指针,则出队和入队的时间复杂度分别是_____和_____。 【答案】
【解析】队列的出队操作即删除队头的元素,队列的入队操作即在队尾添加元素,循环链表只设头指针,出队时,只要把头结点的下一个结点删除就好了,入队时,要把新的结点插入队尾,必须把队列遍历,找到队尾指针,才能插入。循环队列只设尾指针,出队时只要把为指针的下一个结点或者下下个结点删除即可,入队时,只要在尾指针的后面插入新的结点,并更新尾结点即可。
5. 已知链队列的头尾指针分别是f 和r , 则将值x 入队的操作序列是_____。 【答案】
【解析】队列采用链式存储结构,先分配一个节点的内存,然后在队尾添加该节点。
6. 已知二叉排序树的左右子树均不为空,则_____上所有结点的值均小于它的根结点值,_____上所有结点的值均大于它的根结点的值。
【答案】左子树;右子树
【解析】二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:①若它
的左子树不空,则左子树上所有结点的值均小于它的根结点的值;②若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;③它的左、右子树也分别为二叉排序树。
7. 已知如下程序段:
语句1执行的时间复杂度为_____;语句2执行的时间复杂度为_____;语句3执行的时间复杂度为_____;语句4执行的时间复杂度为_____。
【答案】(1)n +1
(2)n
(3)n (n +3)/2
(4)n (n +l )/2
【解析】语s 句1执行到不符合条件情况下,执行了n +1次。当语句1不符合条件了是不会执行语句2的,所以语句2被执行了n 次。语句3每次都要执行到不符合条件,故为2+3+4...... +(n +l )加起来就是n (n +3)/2。语句3不符合条件了是不会执行语句4的。所以语句4被执行了1+2+3...... +n 即n (n +l )/2。
8. 求最短路径的Dijkstra 算法的时间复杂度为_____。 【答案】
9. 高度为4的3阶B-树中,最多有_____个关键字。
【答案】26
【解析】第4层是叶结点,1层至3层每个结点两个关键字,每个节点的关键字达到最大时,关键字最多。
10.在下面的程序段中,对X 的赋值语句的时间复杂度为_____(表示为n 的函数)。
【答案】1+(1+2)+(1+2+3)+"•+(l +2+... +n )=n(n +1)(n +2)/6,即
【解析】当i=l时,赋值语句就被执行了一次。当i=2时,赋值语句被执行了1+2次。当i=3时,赋值语句被执行了1+2+3次。可以推出赋值语句总共被执行了1+(1+2)+(1+2+3)+…+(l +2+... +n )=n(n +1)(n +2)/6次。
二、选择题
11.已知循环队列存储在一维数组
rear 的值分别是( )。
A.0, 0
B.0, n-1
C.n-1, 0
D.n-1, n-1
【答案】B 中,且队列非空时front 和rear 分别指向队头元素和队尾元素。若初始时队列为空,且要求第1个进入队列的元素存储在A[0]处,则初始时front 和
【解析】题目要求队列非空时front 和rear 分别指向队头元素和队尾元素,若初始时队列为空,且要求第1 个进入队列的元素存储在A[0]处,则此时front 和rear 的值都为0。由于进队操作要执行(rear+1) % n,则初始 时front 的值为0、rear 的值为n-1。
12.下列选项中,导致创建新进程的操作是( )。
用户登录成功
设备分配
启动程序执行
A.
仅
和
B.
仅
和
C.
仅
和
D. 和
【答案】C
【解析】进程创建是需要填写PCB 表的,其中唯一不需要的是II 。考察一个进程创建的过程是这样的:当进程被创建,可以是用户创建,例如双击相关图标;也可以由父进程创建,例如lock ( )时,操作系统首先到PCB 表区搜索空闲的表格,若无则直接拒绝创建进程,若有则填
,许多操写PCB 表创建进程。通常填写PCB 表的过程有一段时间(主要涉及资源分配需要协调)
,也有的操作系统不设这个中间状态。此时操作系作系统为此设立了一个中间状态称为“初始化”
统填写进程ID 号、处理机参数、进程参数(状态、特权、优先级)、分配内存(若是虚拟存储就分配虚拟地址)、映射文件等,一切就绪,将控制权交给系统进行下一步调度。设备分配可能引起进程状态的改变,但不会创建新进程,用户登录成功和启动程序执行都会创建新的进程,所以本题答案为C 。
13.若某单处理器多进程系统中有多个就绪态进程,则下列关于处理机调度的叙述中,错误的是( )。
A. 在进程结束时能进行处理机调度
B. 创建新进程后能进行处理机调度
C. 在进程处于临界区时不能进行处理机调度
D. 在系统调用完成并返回用户态时能进行处理机调度