#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) }}

  • 正确
  • 错误