#JC1052. 栈进阶
栈进阶
一、单项选择题(每题2分,共20分)
1、栈的数据存取遵循的原则是?() {{ select(1) }}
- 先进先出
- 先进后出,后进先出
- 随机存取
- 按大小排序存取
2、STL栈中,获取栈顶元素的函数是?() {{ select(2) }}
s.pop()s.front()s.top()s.back()
3、对于入栈顺序1,2,3,4,5,下面哪一个是不合法的出栈序列?() {{ select(3) }}
- 1,2,3,4,5
- 5,4,3,2,1
- 2,4,1,3,5
- 2,1,3,4,5
4、验证出栈序列是否合法的程序,全部元素处理完毕,代表序列合法的条件是?() {{ select(4) }}
- 栈不为空
- size等于输入长度
- 栈为空
- empty返回false
5、关于表达式概念,后缀表达式又被叫做?() {{ select(5) }}
- 中缀表达式
- 波兰表达式
- 前缀表达式
- 逆波兰表达式
6、计算后缀表达式求值时,遇到运算符的操作是?() {{ select(6) }}
- 直接将运算符入栈
- 弹出两个数运算,运算结果入栈
- 只弹出一个数字运算
- 清空整个栈
7、计算后缀表达式5 3 /,运算结果是?()
{{ select(7) }}
- 3÷5
- 5‑3
- 5÷3
- 5+3
8、计算前缀(波兰)表达式时,遍历字符串的方式是?() {{ select(8) }}
- 从左向右顺序遍历
- 从右向左倒序遍历
- 只遍历运算符
- 只遍历数字
9、中缀转后缀表达式,运算符优先级最高的是?() {{ select(9) }}
- 加、减
- 左括号
- 乘、除
- 右括号
10、只有+和*的中缀表达式用栈处理,遇到乘号时如何处理?() {{ select(10) }}
- 直接把数字入栈,不作运算
- 取出栈顶数字,和当前数字相乘,结果压回栈
- 直接清空栈
- 将运算符存入栈,数字丢弃
二、判断题(每题2分,共10分)
11、s.pop()函数作用是删除栈顶元素,pop不会返回栈顶的值。()
{{ select(11) }}
- 正确
- 错误
12、后缀表达式需要依靠括号才能确定运算的先后顺序。() {{ select(12) }}
- 正确
- 错误
13、中缀转后缀,遇到右括号,要持续出栈输出运算符直到遇到左括号。() {{ select(13) }}
- 正确
- 错误
14、验证出栈序列,取栈顶之前不需要判断栈是否为空。() {{ select(14) }}
- 正确
- 错误
15、中缀表达式a+(b‑c)*d对应的前缀表达式是+ a * - b c d。()
{{ select(15) }}
- 正确
- 错误