胯临溜篓圣黎彼睦碍孔第矫董
惋仍细蠢趁陋嗓秦射删蚕撩怠
第一章 单元测试
1、
若让元素1,2,3,4,5依次进栈,则出栈次序不可能出现在()种情况。
A:5,4,3,2,1
B:2,1,5,4,3
C:4,3,1,2,5
D:2,3,5,4,1
答案: 4,3,1,2,5
2、
若已知一个栈的入栈序列是1,2,3,…,m,其输出序列为p,P2,p,…,pn,若p1=n,则p为()
A:i
B:n-1
C:n-i+1
D:不确定
答案: n-i+1
3、
数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素个数的公式为()
A: r-f
B:(n+f-r)%1
C:n+r-f
D:(n+f-r)%n
答案: (n+f-r)%n
4、
链式栈结点为(data,link),top指向栈顶,若想删除栈顶结点,并将删除结点的值保存到x中,则应执行操作()
A:x-top->data; top=top->link;
B:top=top->link; x-top->link;
C:x=top: top=top->link
D:x=top->link;
答案: x-top->data; top=top->link;
第二章 单元测试
1、
为解决计算机主机与打印机间速度不匹配问题,通常设一个打印数据缓冲区。主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是()
A:队列
B:栈
C:线性表
D:有序表
答案: 队列
2、
设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次进入栈S,一个元素出后即进入Q,若6个元素出队的序列是e2,e4,e3,c6,e5和el,则栈S的容量至少应该是()。
A:2
B:3
C:4
D:6
答案: 3
3、
若一个栈以向量V[1,…,n]存储,初始栈顶指针top设为n+1,则元素x进栈的正确操作是()
A:top++,V[top]=x;
B:V[top]=x;top++;
C:top–,V[top]=x;
D:V[top]=x;top–;
答案: top–,V[top]=x;
4、
设计一个判别表达式中左、右括号是否配对出现的算法,采用()数据结构最佳。
A:线性表的顺序存储结构
B:队列
C:线性表的链式存储结构
D:栈
答案: 栈
5、
用链接方式存储的队列,在进行删除运算时()
A:仅修改头指针
B:仅修改尾指针
C:头、尾指针都要修改
D:头、尾指针可能都要修改
答案: 头、尾指针可能都要修改
6、
循环队列存储在数组A[0,…,m]中,则人队时的操作为()
A:rear=rear+1
B:rear=(rear+1)%(m-1)
C:rear(rear+1)%m
D:rear(rear+1)%(m+1)
答案: rear(rear+1)%(m+1)
7、
最大容量为n的循环队列,队尾指针是rear,队头是 front,则队空的条件是()
A:(rear+1)%n=front
B:rear==front
C:rear+1==front
D:(rear-)%n==front
答案: rear==front
8、
栈和队列的共同点是()。
A:都是先进先出
B:都是先进后出
C:只允许在端点处插入和删除元素
D:没有共同点
答案: 只允许在端点处插入和删除元素
9、
一个递归算法必须包括()
A:递归部分
B:终止条件和递归部分
C:选代部分
D:终止条件和迭代部分
答案: 终止条件和递归部分
10、
设栈S和队列Q的初始状态均为空,元素a,b,c,d,e,f,g依次进入栈S。若每个元素出栈后立即进入队列Q,且7个元素出队的顺序是b,d,c,f,e,a,g,则栈S的容量至少是()
A:1
B:2
C:3
D:4
答案: 3
11、
若元素a,b,c,d,e,f依次进栈,允许进栈、退栈操作交替进行,但不允许连续三次进行退栈工作,则不可能得到的出栈序列是()
A:d, c, e, b, f, a
B:c, b, d, a, e, f
C:b, c, a, e, f, d
D:a, f, e, d, c, b
答案: a, f, e, d, c, b
12、
某队列允许在其两端进行入队操作,但仅允许在素a,b,c,d,e依次入此队列后再进行出队操作,则不可能得到的出对序列是()
A:b,a,c,d,e
B:d,b,a,c,e
C:d,b,c,a,e
D:e,c,b,a,d
答案: d,b,c,a,e
13、
元素a,b,c,d,e依次进入初始为空的栈中,若元素进栈后可停留、可出栈,直到所有元素都出栈,则在所有可能的出栈序列中,以元素d开头的序列个数是()
A:3
B:4
C:5
D:6
答案: 4
14、
已知循环队列存储在一维数组A[0…n-1]中,且队列非空时font和rear分别指向队头元素和队尾元素。若初始时队列为空,且要求第1个进入队列的元素存储在A[O]处,则初始时 front和rear的值分别是()
A:0,0
B:0,n-1
C:n-1,0
D:n-1,n-1
答案: 0,n-1
15、
操作符包括‘+’‘-’‘*’‘/’和‘(‘,‘)’。将中缀表达式a+b-a*((c+d)/e-f)+g转换为等价的后级表达式ab+acd+e/f-*-g+时,用栈来存放暂时还不能确定运算次序的操作符,若栈初始时为空,则转换过程中同时保存在栈中的操作符的最大个数是()
A:5
B:7
C:8
D:11
答案: 5
16、
一个栈的入栈序列为1,2,3,…,n,其出栈序列是p1,p2,p3…pn。若p2=3,则p3可能取值的个数是()
A:n-3
B:n-2
C:n-1
D:无法确定
答案: n-1
17、
假设栈初始为空,将中缀表达式a/b+(c*d-e*f)/g转换为等价的后缀表达式的过程中,当扫描到f时,栈中的元素依次是()
A:+(*-
B:+(-*
C:/+(*-*
D:/+-*
答案: +(-*
18、
循环队列放在一维数组A[0…M-1]中,endl指向队头元素,end2指向队尾的后一个位置。假设队列两端均可进行入队和出队操作,队列中最多能容纳M1个元素。初始时为空。下列判断队空和队满的条件中,正确的是()
A:队空:endl==end2;队满:cndl==(end2+1)mod M
B:队空:endl==end;队满:end==(end1+1)mod(M-1)
C:队空:end2==(end+1)modM;队满:endl==(end2+1)mod M
D:队空:end==(end2+1)modM;队满:end2==(endl+1)mod(M-1)
答案: 队空:endl==end2;队满:cndl==(end2+1)mod M
19、
已知程序如下int S(int n){return(n
A:main()->S(1)->S(0)
B:S(0)->S(1)->main()
C:main()->S(0)->S(1)
D:S(1)->S(0)->main()
答案: main()->S(1)->S(0)
20、
若一个栈的输入序列为1,2,3,…,n,输出序列的第一个元素是i,则第j个输出元素是
A:i-j-1
B:i-j
C:j-i+1
D:不确定的
答案: 不确定的
如需购买完整答案,请点击下方红字:
获取更多网课答案,请点击这里,进入www.mengmianren.com
淖撂豆饭时堂斜祁材刺吃溅次
铂辰使屉车躺琼破话缚蔫阿曝