国家二级MS Office高级应用机试(数据结构与算法)模拟试卷34
选择题
1.下列叙述中正确的是( )。(A)
A. 算法的复杂度包括时间复杂度与空间复杂度
B. 算法的复杂度是指算法控制结构的复杂程度
C. 算法的复杂度是指算法程序中指令的数量
D. 算法的复杂度是指算法所处理的数据量
解析:算法复杂度是指算法在编写成可执行程序后,运行时所需要的资源,资源包括时间资源和内存资源。算法的复杂度包括时间复杂度与空间复杂度。算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度是指算法在执行过程中所需要的内存空间。
2.下列叙述中正确的是( )。(C)
A. 算法的空间复杂度是指算法程序中指令的条数
B. 压缩数据存储空间不会降低算法的空间复杂度
C. 算法的空间复杂度与算法所处理的数据存储空间有关
D. 算法的空间复杂度是指算法程序控制结构的复杂程度
解析:算法的空间复杂度是指算法在执行过程中所需要的内存空间。算法执行期间所需的存储空间包括3个部分:输入数据所占的存储空间;程序本身所占的存储空间;算法执行过程中所需要的额外空间。在许多实际问题中,为了减少算法所占的存储空间,通产采用压缩存储技术,以便尽量减少不必要的额外空间。
3.下列叙述中正确的是( )。(A)
A. 非线性结构可以为空
B. 只有一个根节点和一个叶子节点的必定是线性结构
C. 只有一个根节点的必定是线性结构或二叉树
D. 没有根节点的一定是非线性结构
解析:如果一个非空的数据结构满足下列两个条件:①有且只有一个根节点;②每一个节点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构。如果一个数据结构不是线性结构,则称之为非线性结构。线性结构和非线性结构都可以是空的数据结构。树只有一个根节点,但不论有几个叶子节点,树都是非线性结构。
4.下列叙述中正确的是( )。(B)
A. 矩阵是非线性结构
B. 数组是长度固定的线性表
C. 对线性表只能作插入与删除运算
D. 线性表中各元素的数据类型可以不同
解析:矩阵也是线性表,只不过是比较复杂的线性表。线性表中各元素的数据类型必须相同。在线性表中,不仅可以做插入与删除运算,还可以进行查找或对线性表进行排序等操作。
5.下列叙述中正确的是( )。(B)
A. 能采用顺序存储的必定是线性结构
B. 所有的线性结构都可以采用顺序存储结构
C. 具有两个以上指针的链表必定是非线性结构
D. 循环队列是队列的链式存储结构
解析:所有的线性结构都可以用数组保存,即都可以采用顺序存储结构。而反过来不可以,完全二叉树也能用数组保存(按层次依次存放到数据元素中),但完全二叉树属于非线性结构。双向链表具有两个以上的指针,但属于线性结构。循环队列是队列的顺序存储结构。
6.设栈的顺序存储空间为s(1:m),初始状态为top=0。现经过一系列正常的入栈与退栈操作后,top=m+1,则栈中的元素个数为( )。(C)
A. 0
B. m
C. 不可能
D. m+1
解析:栈为空时,栈顶指针top=0,经过入栈和退栈运算,指针始终指向栈顶元素。初始状态为top=0,当栈满top=m,无法继续入栈,top值不可能为m+1。
7.设栈的存储空间为S(1:50),初始状态为top=51。现经过一系列正常的入栈与退栈操作后,top=20,则栈中的元素个数为( )。(A)
A. 31
B. 30
C. 21
D. 20
解析:栈的初始状态top=51,故本栈是5l在栈底,入栈时栈顶指针是减操作(top=top-1),退栈时栈顶指针是加操作(top=top+1)。当top=20时,元素存储在(20:50)空间中,因此共有50-20+1=31个元素。
8.设有栈S和队列Q,初始状态均为空。首先依次将A,B,C,D,E,F入栈,然后从栈中退出三个元素依次人队,再将X,Y,Z入栈后,将栈中所有元素退出并依次入队,最后将队列中所有元素退出,则退队元素的顺序为( )。(B)
A. DEFXYZABC
B. FEDZYXCBA
C. FEDXYZCBA
D. DEFZYXABC
解析:栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。队列是指允许在一端进行插入,而在另一端进行删除的线性表。将A,B,C,D,E,F入栈后,栈中元素为ABCDEF,退出三个元素入队,队列元素为FED,将X,Y,Z入栈后栈中元素为ABCXYz,退栈全部入队后,队列元素为FEDZYXCBA。
9.设循环队列的存储空间为Q(1:50),初始状态为:front=rear=50。现经过一系列入队与退队操作后,front=rear=1,此后又正常地插入了两个元素。最后该队列中的元素个数为( )。(C)
A. 3
B. 1
C. 2
D. 52
解析:由初始状态为front=teal\\
10.设循环队列的存储空间为Q(1:m),初始状态为空。现经过一系列正常的入队与退队操作后,front=m,rear=m-1,此后从该循环队列中删除一个元素,则队列中的元素个数为( )。(B)
A. m-1
B. m-2
C. 0
D. 1
解析:在循环队列中,如果rear-front>0,则队列中的元素个数为rear-front个;如果rear-front<0,则队列中的元素个数为rear-front+m。该题中m-1<m,即rear-front<0,则该循环队列中的元素个数为(m-1)-m+m=m-1。此后从该循环队列中删除一个元素,则队列中的元素个数为m-1-1=m-2。
11.在线性表的链式存储结构中,其存储空间一般是不连续的,并且( )。(C)
A. 前件节点的存储序号小于后件节点的存储序号
B. 前件节点的存储序号大于后件节点的存储序号
C. 前件节点的存储序号可以小于也可以大于后件节点的存储序号
D. 以上三种说法均不正确
解析:在线性表的链式存储结构中,各数据节点的存储序号是不连续的,并且各节点在存储空间中的位置关系与逻辑关系也不一致,因此前件节点的存储序号与后件节点的存储序号之间不存在大小关系。
12.带链的栈与顺序存储的栈相比,其优点是( )。(C)
A. 入栈与退栈操作方便
B. 可以省略栈底指针
C. 入栈操作时不会受栈存储空间的限制而发生溢出
D. 所占存储空间相同
解析:带链的栈就是用一个线性链表来表示的栈,线性链表不受存储空间大小的限制,因此入栈操作时不会受栈存储空间的限制而发生溢出(不需考虑栈满的问题)。
13.某带链栈的初始状态为top=bottom=NULL,经过一系列正常的入栈与退栈操作后,top=bottom=200该栈中的元素个数为( )。(B)
A. 0
B. 1
C. 20
D. 不确定
解析:带链的栈就是用一个单链表来表示的栈,栈中的每一个元素对应链表中的一个节点。栈为空时,头指针和尾指针都为NULL;栈中只有一个元素时,头指针和尾指针都指向这个元素。
14.某带链的队列初始状态为front=rear=NULL。经过一系列正常的人队与退队操作后,front=rear=10。该队列中的元素个数为( )。(B
本文档预览:3600字符,共7839字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载