计算机二级公共试题 下载本文

内容发布更新时间 : 2024/5/22 4:34:33星期一 下面是文章的全部内容请认真阅读。

21.设栈的顺序存储空间为S(1:m),初始状态为top=m+1,则栈中的数据元素个数为 A)top-m+1 B)m-top+1 C)m-top D)top-m

B【解析】栈的初始状态top=m+1,说明栈空时top=m+1(m在栈底,1是开口向上的),入栈时栈顶指针是减操作(top=top-1),退栈时栈顶指针是加操作(top=top+1)。本题可以假设栈中有x个元素,当x=0时,也就是栈中没有元素,则top=m+1;当x=m时,也就是栈满,则top=1,由此可以得出top=m+1-x,继而得出x=m-top+1。

22.设栈的顺序存储空间为S(1:m),初始状态为top=m+1。现经过一系列正常的入栈与退栈操作后,top=0,则栈中的元素个数为 A)1 B)m C)m+1 D)不可能

D【解析】栈的初始状态为top=m+1,说明栈空时top=m+1,入栈时栈顶指针是减操作(top=top-1),退栈时栈顶指针是加操作(top=top+1)。栈满时top=1,说明栈中不能再进行入栈操作,top=0的情况不会出现。

23.设栈的存储空间为S(1:m),初始状态为top=m+1。经过一系列入栈与退栈操作后,top=1。现又要将一个元素进栈,栈顶指针top值变为 A)0

B)发生栈满的错误 C)m D)2

B【解析】栈的初始状态为top=m+1,说明栈空时top=m+1,入栈时栈顶指针是减操作(top=top-1),退栈时栈顶指针是加操作(top=top+1)。栈满时top=1,说明栈中不能再进行入栈操作(“上溢”错误)。

24.设栈的存储空间为S(1:m),初始状态为top=m+1。经过一系列入栈与退栈操作后,top=m。现又在栈中退出一个元素后,栈顶指针top值为 A)0 B)m-1 C)m+1 D)产生栈空错误

C【解析】栈的顺序存储空间为S(1:m),初始状态top=m+1,所以这个栈是m在栈底,1是开口向上的。经过一系列入栈与退栈操作后top=m,则栈中有1个元素,若现在又退出一个元素,那么栈顶指针下移一位,回到m+1的位置。

25.设栈的存储空间为S(1:50),初始状态为top=51。现经过一系列正常的入栈与退栈操作后,top=20,则栈中的元素个数为 A)31 B)30 C)21 D)20

A【解析】栈的初始状态top=51,故本栈是51在栈底,入栈时栈顶指针是减操作(top=top-1),退栈时栈顶指针是加操作(top=top+1)。当top=20时,元素存储在(20:50)空间中,因此共有50-20+1=31个元素。

26.下列处理中与队列有关的是 A)二叉树的遍历 B)操作系统中的作业调度 C)执行程序中的过程调用 D)执行程序中的循环控制

B【解析】队列是指允许在一端进行插入,而在另一端进行删除的线性表。由于最先进入队列的元素将最先出队,所以队列具有“先进先出”的特性,体现了“先来先服务”的原则。操作系统中的作业调度是指根据一定信息,按照一定的算法,从外存的后备队列中选取某些作业调入内存分配资源并将新创建的进程插入就绪队列的过程。执行程序中的过程调用一般指函数调用,需要调用时候转入被调用函数地址执行程序,与队列无关。执行程序中的循环控制是指算法的基本控制结构,包括对循环条件的判定与执行循环体,与队列无关。二叉树是一个有限的结点集合,二叉树的遍历是指不重复地访问二叉树中的所有结点,与队列无关。

27.设有栈S和队列Q,初始状态均为空。首先依次将A,B,C,D,E,F入栈,然后从栈中退出三个元素依次入队,再将X,Y,Z入栈后,将栈中所有元素退出并依次入队,最后将队列中所有元素退出,则退队元素的顺序为 A)DEFXYZABC B)FEDZYXCBA C)FEDXYZCBA D)DEFZYXABC

B【解析】栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。队列是指允许在一端进行插入,而在另一端进行删除的线性表。将A,B,C,D,E,F入栈后,栈中元素为ABCDEF,退出三个元素入队,队列元素为FED,将X,Y,Z入栈后栈中元素为ABCXYZ,退栈全部入队后,队列元素为FEDZYXCBA。

28.下列叙述中正确的是 A)循环队列是顺序存储结构 B)循环队列是链式存储结构

C)循环队列空的条件是队头指针与队尾指针相同 D)循环队列的插入运算不会发生溢出现象

A【解析】循环队列是队列的一种顺序存储结构。在循环队列中,在队列满和队列为空时,队头指针与队尾指针均相同;当需要插入的数据大于循环队列的存储长度,入队运算会覆盖前面的数据,发生溢出现象。

29.下列叙述中正确的是

A)在循环队列中,队尾指针的动态变化决定队列的长度 B)在循环队列中,队头指针和队尾指针的动态变化决定队列的长度 C)在带链的队列中,队头指针与队尾指针的动态变化决定队列的长度 D)在带链的栈中,栈顶指针的动态变化决定栈中元素的个数

B【解析】在循环队列中,队头指针和队尾指针的动态变化决定队列的长度。带链的栈和带链的队列均采用链式存储结构,而在这种结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致,故头指针和尾指针或栈顶指针无法决定链表长度。

30.循环队列的存储空间为Q(1:50),初始状态为front=rear=50。经过一系列正常的入队与退队操作后,front=rear=25,此后又插入一个元素,则循环队列中的元素个数为 A)1,或50且产生上溢错误 B)51 C)26 D)2

A【解析】在循环队列运转起来后,当front=rear=25时可知队列空或者队列满,此后又插入了一个元素,如果之前队列为空,插入操作之后队列里只有一个元素;如果插入之前队列已满(50个元素),执行插入则会产生溢出错误。

31.循环队列的存储空间为Q(1:40),初始状态为front=rear=40。经过一系列正常的入队与退队操作后,front=rear=15,此后又退出一个元素,则循环队列中的元素个数为 A)14 B)15 C)40

D)39,或0且产生下溢错误

D【解析】在循环队列运转起来后,当front=rear=15时可知队列空或者队列满,此后又退出一个元素,如果之前队列为空,退出操作会产生错误,队列里有0个元素;如果退出之前队列已满(40个元素),执行退出后,队列里还有39个元素。

32.设循环队列的存储空间为Q(1:50),初始状态为front=rear=50。现经过一系列入队与退队操作后,front=rear=1,此后又正常地插入了两个元素。最后该队列中的元素个数为 A)3 B)1 C)2 D)52

C【解析】在循环队列运转起来后,由front=rear=1可知队列空或者队列满,此后又可以正常地插入了两个元素说明插入前队列为空,则插入后队列元素个数为2。

33.设循环队列的存储空间为Q(1:m),初始状态为空。现经过一系列正常的入队与退队操作后,front=m,rear=m-1,此后从该循环队列中删除一个元素,则队列中的元素个数为 A)m-1 B)m-2 C)0 D)1

B【解析】在循环队列运转起来后,如果rear-front>0,则队列中的元素个数为rear-front个;如果rear-front<0,则队列中的元素个数为rear-front+m。该题中m-1

34.设循环队列的存储空间为Q(1:m),初始状态为空。现经过一系列正常的入队与退队操作后,front=m-1,rear=m,此后再向该循环队列中插入一个元素,则队列中的元素个数为 A)m B)m-1 C)1 D)2

D【解析】该题中m-10,则该循环队列中的元素个数为m-(m-1)=1。此后从该循环队列中插入一个元素,则队列中的元素个数为1+1=2。

35.设循环队列为Q(1:m),其初始状态为front=rear=m。经过一系列入队与退队运算后,front=30,rear=10。现要在该循环队列中作顺序查找,最坏情况下需要比较的次数为 A)19 B)20 C)m-19 D)m-20

D【解析】front=30,rear=10,front>rear,则队列中有10-30+m=m-20个元素,在作顺序查找时,最坏情况下(最后一个元素才是要找的元素或没有要查找的元素)比较次数为m-20次。

36.设循环队列的存储空间为Q(1:m),初始状态为front=rear=m。经过一系列正常的操作后,front=1,rear=m。为了在该队列中寻找值最大的元素,在最坏情况下需要的比较次数为 A)0 B)1 C)m-2 D)m-1

C【解析】该题中10,则该循环队列中的元素个数为m-1。此在该队列中寻找值最大的元素,在最坏情况下需要的比较次数为m-1-1=m-2。

37.设循环队列的存储空间为Q(1:50),初始状态为front=rear=50。经过一系列正常的操作后,front-1=rear。为了在该队列中寻找值最大的元素,在最坏情况下需要的比较次数为 A)48

B)49 C)1 D)0

A【解析】该题中rear-front=front-1-front<0,则该循环队列中的元素个数为

rear-front+50=front-1-front+50=49。在该队列中寻找值最大的元素,在最坏情况下需要的比较次数为49-1=48。

38.设循环队列的存储空间为Q(1:50),初始状态为front=rear=50。经过一系列正常的操作后,front=rear-1。为了在该队列中寻找值最大的元素,在最坏情况下需要的比较次数为 A)1 B)0 C)49 D)50

B【解析】该题中rear-front=rear-(rear-1)>0,则该循环队列中的元素个数为rear-front=rear-(rear-1)=1。因队列中只有1个元素,故寻找值最大的元素不需要进行比较,即比较次数为0。

5.线性链表

39.线性表的链式存储结构与顺序存储结构相比,链式存储结构的优点有 A)节省存储空间 B)插入与删除运算效率高 C)便于查找

D)排序时减少元素的比较次数

B【解析】线性表的顺序存储结构称为顺序表,线性表的链式存储结构称为链表,两者的优缺点如下表所示。

40.下列结构中属于线性结构链式存储的是 A)双向链表 B)循环队列 C)二叉链表 D)二维数组

A【解析】双向链表也叫双链表,是链表(采用链式存储结构)的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。循环队列是队列的一种顺序存储结构。二叉链表和二维数组属于非线性结构。

41.在线性表的链式存储结构中,其存储空间一般是不连续的,并且 A)前件结点的存储序号小于后件结点的存储序号 B)前件结点的存储序号大于后件结点的存储序号

C)前件结点的存储序号可以小于也可以大于后件结点的存储序号