当前位置:问答库>考研试题

2017年北京信息科技大学计算机学院816《软件技术基础》综合(数据结构+面向对象技术)之数据结构考研题库

  摘要

一、选择题

1. 下列有关浮点数加减运算的叙述中,正确的是( )。

对阶操作不会引起阶码上溢或下溢

右规和尾数舍入都可能引起价码上溢

左规时可能引起阶码下溢

尾数溢出时结果不一定溢出

A. 仅

B. 仅

C. 仅

D.

【答案】D

【解析】浮点数的加减运算步骤包括:①对阶,使两个操作数的小数点位置对齐,阶码小的尾数右移,可能产生溢出,但是阶码不会溢出;②尾数求和,将对阶后的尾数按定点数加(减)运算规则运算;③规格化,包括左规和右规,左规时阶码减少,可能出现阶码下溢,而右规时,阶码増加可能出现阶码上溢;④舍入,该过程可能需要右规调整,因此可能出现阶码上溢;⑤溢出判断,浮点数的溢出与否是由阶码的符号决定的,而不是由尾数溢出判断的,因此尾数溢出时结果不一定溢出。因此均正确。

2. 计算机算法指的是解决问题的步骤序列,它必须具备( )三个特性。

A. 可执行性、可移植性、可扩充性

B. 可执行性、确定性、有穷性

C. 确定性、有穷性、稳定性

D. 易读性、稳定性、安全性

【答案】B

【解析】计算机算法是以一步接一步的方式来详细描述计算机如何将输入转化为所要求的输出的过程,或者说,算法是对计算机上执行的计算过程的具体描述,也就是解决问题的步骤序列。一个算法通常需要具备五大特性:有穷性;确定性;可执行性;输入一个算法有零个或多个输入;输出一个算法有零个或者多个输出。

3. 在用邻接表表示图时,拓扑排序算法时间复杂度为( )。

A.0(n ) B.0(n+e) C.0(n*n) D.0(n*n*n)

【答案】B

【解析】由于输出每个顶点的同时还要删除以它为起点的边,故拓扑排序的时间复杂度为0(n+e)

4. 在对n 个元素的序列进行排序时,堆排序所需要的附加存储空间是( )。

【答案】B

【解析】堆排序需要一个空间用于交换,因此堆排序所需要的附加存储空间为

5. 在一棵度为4的树T 中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T 的叶结点个数是( )。

A.41

B.82

C.113

D.122

【答案】B

【解析】根据二叉树的性质3的推广公式:

入公式,

即可直接在将数据带树T 的叶子结点的个数是82。如果考生不能熟练掌握二叉树的性质3的推广公式,得到本题的正确答案将费时费力。因此,需要熟练掌握二叉树的性质及推广。

6. 下列选项给出的是从根分别到达两个叶节点路径上的权值序列,能属于同一棵哈夫曼树的是( )。

A.24,10,5 和24,10,7

B.24,10,5 和24,12,7

C.24,10,10和24,14,11

D.24,10,10和 24,14,6

【答案】D

【解析】哈夫曼树是带权路径长度最短的二叉树。由根节点出发到两个叶子节路径中,第二个被访问的两个结点的权值要么相等,要么和为根节点的权值,故B 项错误。同理,通过第三个被访问的节点排除A 项。C 项,由两条路径可推出三个叶子节点的权值分别是:3、10和11,而根据哈夫曼树的定义可知,权值为3的节点应该和权值为10的结点结合,故C 项错误。D 项,反推出有四个叶子节点,权值分别为:5、5、6和8,满足哈夫曼树的条件。

7. 下列选项中,不能构成折半查找中关键字比较序列的是( )。

A.500,200,450,180

B.500,450,200,180

C.180,500,200,450

D.180,200,500,450

【答案】A

【解析】折半查找的过程是:先确定待查找记录所在的范围,然后逐步缩小范围直到找到或找不到该记录为止。折半查找的关键字序列满足:对每一个关键字,其后面的所有关键字序列或者都小于等于该关键字或者都大于等于该关键字。A 项错误,第三次比较的关键字为450,说明待查关键字位于200〜450间,所以第四次比较时不会遇到关键字180。

8. 下列排序算法中,占用辅助空间最多的是( )。

A. 归并排序

B. 快速排序

C. 希尔排序

D. 堆排序

【答案】A

【解析】

归并排序的辅助空间为

快速排序所占用的辅助空间为堆排序所占 用的辅助空间为

9. 设无向图的顶点个数为m 则该图最多有( )条边。

A.n-1

B.n (n-l )/2

C.n (n+l)/2

D.0

E.n2

【答案】B

【解析】在数据结构中仅讨论简单图,在计算无向图的最多边时,不考虑顶点与顶点的边。因此边数最多时,构成的是无向完全图。此时的边数为n (n-l )/2。

10.已知字符串S 为“abaabaabacacaabaabcc ”,模式串t 为“abaabc ”,采用KMP 算法进行匹配,第一次出现“失配” (

A.i=l,j=0

B.i=5,j=0

C.i=5,j=2

D.i=6,j=2

【答案】C

【解析】模式匹配(KMP )算法对普通的暴力匹配的改进在于:每当匹配过程中匹配失败时,主串(本题为S )的指针(i )不需要回溯,而是利用已经得到的“部分匹配”的结果将模式串(t )向右“滑动”尽可能远的一段距离后,继续进行比较。模式串“滑动”的距离是由模式串(t )本身决定的,即t

的子串中前缀串和后缀串相等的最长长度。本题中第一次失配i=5, 字串为“abaab”,其相等且最长的前后缀为“ab”,一次下一个j = 2。

,i=j = 5,则下次开始匹配时,i 和j 的值分别是( ))。