2018年北京联合大学数字艺术803软件基础之数据结构考研基础五套测试题
● 摘要
一、填空题
1. 当两个栈共享一存储区时,栈利用一维数组stack(1,,1) 表示,两栈顶指针为top[l]与top[2],则当栈1空时,top[l]为_____,栈2空时,top[2]为_____,栈满时为_____。
【答案】0;n+1;top[l]+l=top[2]
【解析】共享栈的栈底在共享存储区的两端,当栈满时栈顶相邻。
2. 以下程序的功能是实现带附加头结点的单链表数据结点逆序连接,请填空完善之。
h 为附加头结点指针
(_____)
_____;
【答案】(1)p!=NULL //链表未到尾就一直进行
(2)q //将当前结点作为头结点后的第一元素结点插入
3. 在一棵m 阶B-树中,若在某结点中插入一个新关键字而引起该结点分裂,则此结点中原有的关键字的个数是_____; 若在某结点中删除一个关键字而导致结点合并,则该结点中原有的关键字的个数是_____。 【答案】
【解析】m 阶B-树除根结点和叶子结点外,结点中关键字个数最多是m -1,最少
4. 堆是一种有用的数据结构。堆排序是一种_____排序,堆实质上是一棵_____结点的层次序列。对含有N 个元素的序列进行排序时,堆排序的时间复杂度是_____,所需的附加存储结点是_____。关键码序列05, 23, 16, 68, 94, 72, 71, 73是否满足堆的险质_____ 。
【答案】选择;完全二叉树;;O(1);满足堆的性质
5. 在一个无向图的的邻接表中,若表结点的个数是m ,则图中边的条数是_____条。 【答案】
【解析】对于无向图,在邻接表中,如果存在n 条边,则会有2n 个表结点。
二、单项选择题
6. 若某通信链路的数据传输速率为2400bps , 采用4相位调制, 则该链路的波特率是( )。
A.600波特
B.1200波特
C.4800波特
D.9600波特
【答案】B
【解析】注意无噪声下的码元速率极限值B 与信道带宽H 的关系:
特公式一无噪信道传输能力公式是
以得到波特率与数据传输速率的关系, 即, 而奈奎斯, N 为—个码元所取的离散值个数。从而可, 在本题中数据传输速率C=2400, N=4, 因此波特率是1200, 答案是B 。
7. 在文件“局部有序”或文件长度较小的情况下,最佳内部排序的方法是( )。
A. 直接插入排序
B. 起泡排序
C. 简单选择排序
D. 快速排序
【答案】A
【解析】当待排序列基本有序时,对冒泡排序来说,若最大关键字位于序列首部,则每趟排序仅能使其“下沉”一个位置,要使其下沉到底部仍需n -1趟排序,也即时间复杂度仍为0(n2)。而对简单选择排序来说,其比较次数与待排序列的初始状态无关;归并排序要求待排序列已经部分有序,而部分有序的含义是待排序列由若干有序的子序列组成,即每个子序列必须有序,并且其时间复杂度为;直接插入排序在待排序列基本有序时,每趟的比较次数大为降低,也
2即n -1趟,比较的时间复杂度由O(n) 降至O(n)。
8. 对n 个记录的线性表进行快速排序为减少算法的递归深度,以下叙述正确的是( )。
A. 每次分区后,先处理较短的部分
B. 每次分区后,先处理较长的部分
C. 与算法每次分区后的处理顺序无关
D. 以上三者都不对
【答案】A
【解析】令递归函数为f ,第一次进行递归函数认为递归深度为1,以后从深度为n 的递归函数f 中再调用递归函数f ,此时深度为n+1。整个f 的最大深度为递归深度。
9. 在文件的索引节点中存放直接索引指针10个, 一级二级索引指针各1个, 磁盘块大小为1KB 。每个索引指针占4个字节。若某个文件的索引节点已在内存中, 到把该文件的偏移量(按字节编址) 为1234和307400处所在的磁盘块读入内存。需访问的磁盘块个数分别是( )。
A.1, 2
B.1, 3
C.2, 3
D.2, 4
【答案】B
【解析】文件的索引结点的直接索引指针有10个, 因此直接索引的偏移量范围是0〜2559, 一级索引的偏移量范围是2560〜65791, 二级索引访问的偏移量范围是65792〜45183907。偏移量1234可以通过直接索引得到在磁盘块的地址, 因此需要一次访问, 307400需要通过二级索引查找其在磁盘的位置, 需要分别访问存放二级索引的两个索引块以及对应的数据块。
10.若线性表最常用的操作是存取第I 个元素及其前驱和后继元素的值,为节省时间应采用的存储方式( )。
A. 单链表
B. 双向链表
C. 单循环链表
D. 顺序表
【答案】D
【解析】线性表采用顺序表,便于进行存取任一指定序号的元素。
11.对于栈操作数据的原则是( )
A. 先进先出
B. 后进先出
C. 后进后出
D. 不分顺序
【答案】B
【解析】先进先出是队列操作数据的原则。先进后出是栈操作数据的原则,栈限定在表尾进行插入和删除。
12.若用一个大小为6的数组来实现循环队列,且当前rear 和front 的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear ,front 的值分别为多少?( )
A.1和5
B.2和4
C.4和2
D.5和1
相关内容
相关标签