2018年河南科技学院911计算机技术综合(C程序设计、数据结构)[专业硕士]之数据结构考研核心题库
● 摘要
一、单项选择题
1. 为提高散列(Hash)表的查找效率, 可以采用的正确措施是( )。
Ⅰ. 增大装填(载) 因子
Ⅱ. 设计冲突(碰撞) 少的散列函数
Ⅲ. 处理冲突(碰撞) 时避免产生聚集(堆积) 现象
A. 仅Ⅰ
B. 仅Ⅱ
C. 仅Ⅰ、Ⅱ
D. 仅Ⅱ、Ⅲ
【答案】D
【解析】散列表的查找效率(比较次数) 取决于:散列函数、处理冲突的方法和散列表的装填因子α。α标志着散列表的装满程度, 通常情况下, α越小, 发生冲突的可能性越小; 反之, α越大, 表示已填入的记录越多, 再填入记录时, 发生冲突的可能性越大。因此选项Ⅰ错误, 越是增大装填因子, 发生冲突的可能性就越大, 查找效率也越低。选项Ⅱ正确。选项Ⅲ正确。采用合适的处理冲突的方法避免产生聚集现象, 也将提高查找效率。例如, 用拉链法解决冲突时不存在聚集现象, 用线性探测法解决冲突时易引起聚集现象。
2. 一个C 语言程序在一台32位机器上运行. 程序中定义了3个变量x 、Y 和z ,其中x 和z 为int
Y 为short 型. 当x =127,Y =-9时,x 、Y 和z 的值分别是. 型,执行赋值语句z =x +Y 后,( )
A.x =0000007FH , Y =FFF9H , z =00000076H
B.x =0000007FH , Y =FFF9H , z =FFFF0076H
C.x =0000007FH , Y =FFF7H , z =FFFF0076H
D.x =0000007FH , Y =FFF7H , z =00000076H
【答案】D
【解析】当两个不同长度的数据,要想通过算术运算得到正确的结果,必须将短字长数据转换成长字长数据,这被称为“符号扩展”.例如,x 和z 为int 型,数据长32位,Y 为short 型,数据长16位,因此首先应将y 转换成32位的数据,然后再进行加法运算.
运算采用补码的形式,而x 的补码是0000007FH ,Y 的补码是FFFFFFF7H ,所以x +Y =00000076H.
3. 在下面的排序方法中,辅助空间为O(n)的是( )。
A. 希尔排序
B. 堆排序
C. 选择排序
D. 归并排序
【答案】D
4. 基于比较方法的n 个数据的内部排序。 最坏情况下的时间复杂度能达到的最好下界是( )。
A. B.
C. O (n) D.
【答案】A
【解析】在内部排序中,最坏情况下的时间复杂度为。
5. 若一棵完全二叉树有768个结点, 则该二叉树中叶结点的个数是( )。
A.257
B.258
C.384
D.385
【答案】C
【解析】由
和可知, , 即, 显然
则384, 所以二叉树的叶结点个数是384。
还可以根据完全二叉树的另一个性质:
最后一个分支结点的序号为, 故非叶子结点数为384, 而叶子结点的个数为) 。 。(表示不大于x 的最大整数, 比如
6. 某文件占10个磁盘块, 现要把该文件磁盘块逐个读入主存缓冲区, 并送用户区进行分析。假设一个缓冲区与一个磁盘块大小相同,
把一个磁盘块读人缓冲区的时间为
送到用户区的时间是, CPU
对一块数据进行分析的时间为
下, 读人并分析完该文件的时间分别是( )。 A. B. C. D.
【答案】B
【解析】这是一个简单的缓冲区的问题。由于缓冲区的访问是互斥的, 所以对单一缓冲区, 从磁盘写入和读出到用户区的操作必须串行执行, 也就是要保证互斥操作。而CPU 对数据的分析与从用户区读数据也是需要互斥操作, 但是CPU 分析与从磁盘写入缓冲区的操作可以并行。从本题看, 由于分析所用的时间小于从磁盘写入缓冲区的时间, 因此, CPU 会空闲。
单缓冲区的总时间=(磁盘写入缓冲区时间+缓冲区读出时间)
, 将缓冲区的数据传
。在单缓冲区和双缓冲区结构处理最后一块数据的时
间=(100+50)X10+50=1550ns。
当采用双缓冲区时, 每块缓冲区的操作也必须满足互斥操作, 但是, 对两块缓冲区的操作却可以并行, 所以, 当第一个缓冲区写满以后, 磁盘紧接着写另一个缓冲区, 同时, 前一个已经满了的缓冲区被读出到用户区, 并立即进行CPU 的数据分析。读出操作和数据分析必须互斥进行, 故从时间上看, 当数据被读出并分析后, 恰好另一个缓冲区也写满了, 可以立即进行读出数据到用户区并进行数据分析。两块缓冲区交替进行读写, 直到数据分析完毕, 因此,
总时间=(磁盘写入缓冲区时间)X10+读出最后一块数据时间+CPU
分析最后一块数据时间
。
7. 由3个结点可以构造出多少种不同的有向树?( )
A.2
B.3
C.4
D.5
【答案】A
【解析】满足以下条件的有向图称为有向树:①有且仅有一个结点的入度为0;②除树根外结点的入度为1;③从树根到任一结点有一有向通路。
8. 线性表是具有n 个( )的有限序列(n>0) 。
A. 表元素
B. 字符
C. 数据元素
D. 数据项
E. 信息项
【答案】C
【解析】一个线性表是n 个数据元素的有限序列。至于每个数据元素的具体含义,在不同的情况下各不相同。
9. 用海明码对长度为8位的数据进行检/纠错时, 若能纠正一位错, 则校验位数至少为( )
A.2
B.3
C.4
D.5
【答案】C
【解析】设校验位的位数为k , 数据位的位数为n , 根据海明码编码k 和n 应满足下述关系。
。
n=8, 当k=4时,
, 符合要求, 校验位至少是4位, 故答案为C 。