🎯问题:
14. (单选题)若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少?( )
A. 5和1
B. 2和4
C. 1和5
D. 4和2
15. (单选题)假设栈初始为空,将中缀表达式a/b+(c*d-e*f)/g转化为等价的后缀表达式的过程中,当扫描到f时,栈中的元素依次是
A. +(*-
B. +(-*
C. /+(*-*
D. /+-*
16. (单选题)输入序列为ABC,可以变为CBA时,经过的栈操作为( )。
A. push,push,pop,pop,push,pop
B. push,pop,push,push,pop,pop
C. push,pop,push,pop,push,pop
D. push,push,push,pop,pop,pop
17. (单选题)栈和队列的共同点是
A. 都是先进后出
B. 都是先进先出
C. 只允许在端点处插入和删除元素
D. 没有共同点
18. (单选题)设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5和e6依次进入栈S,一个元素出栈后即进入Q,若6个元素出队的序列是e2、e4、e3、e6、e5和e1,则栈S的容量至少应该是
A. 4
B. 6
C. 2
D. 3
19. (单选题)已知操作符包括‘+’、‘-’、‘*’、‘/’、‘(’与‘)’ 。将中缀表达式a+b-a*((c+d)/e-f)+g转化为等价的后缀表达式ab+acd+e/f-*-g+时,用栈来存放暂时还不能确定运算次序的操作符。若栈初始时为空,则转换过程中同时保存在栈中的操作符的最大个数是
A. 6
B. 10
C. 4
D. 5
20. (单选题)为解决计算机主机与打印机间速度不匹配问题,通常设一个打印数据缓冲区。主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是
A. 有序表
B. 线性表
C. 队列
D. 栈
21. (单选题)栈和队列的共同特点是( ) 。
A. 都是先进后出
B. 都是先进先出
C. 只能顺序存储
D. 只允许在端点处插入和删除元素
22. (单选题)循环队列的出队操作为( )。
A. sq.front=(sq.front+1)%maxsize
B. sq.front=sq.front+1
C. sq.rear=sq.rear+1
D. sq.rear=(sq.rear+1)%maxsize
23. (单选题)栈在( )中应用。
A. A,B,C
B. 子程序调用
C. 表达式求值
D. 递归调用
24. (单选题)用链表方式存储的队列,在进行删除运算时( )。
A. 仅头指针
B. 头、尾指针都要
C. 头、尾指针可能都要
D. 仅尾指针
25. (单选题)设有一个递归算法如下 int fact(int n) { //n大于等于0 if(n<=0) return 1; else return n*fact(n-1); } 则计算fact(n)需要调用该函数的次数为
A. n-1
B. n+1
C. n
D. n+2
🎯答案:
14-15:BB
16-20:DCDDC
21-25:DAACB