#CSPJDSR05. CSP-J 数据结构|R05 中缀、后缀与前缀表达式

CSP-J 数据结构|R05 中缀、后缀与前缀表达式

CSP-J 数据结构|R05 中缀、后缀与前缀表达式

训练重点: 三种表达式、优先级、中缀转后缀、后缀求值、左右操作数顺序

每题只有一个正确选项。建议按 CSP 初赛方式独立完成,程序阅读题必须在草稿纸上逐步模拟。

第 1 题

中缀表达式 a+b*c 对应的后缀表达式是( )。

{{ select(1) }}

  • ab+c*
  • abc*+
  • +a*bc
  • *+abc

第 2 题

中缀表达式 (a+b)*c 对应的前缀表达式是( )。

{{ select(2) }}

  • ab+c*
  • *+abc
  • +a*bc
  • abc+*

第 3 题

后缀表达式 8 2 - 3 * 的值是( )。

{{ select(3) }}

  • 6
  • 10
  • 18
  • 24

第 4 题

后缀表达式求值时,遇到减号 -,依次弹出两个数。若先弹出 b、后弹出 a,应计算( )。

{{ select(4) }}

  • b-a
  • a-b
  • a+b
  • b/a

第 5 题

中缀表达式 (a+b)*c-d 对应的后缀表达式是( )。

{{ select(5) }}

  • ab+c*d-
  • abc+*d-
  • ab+cd*-
  • - * + a b c d

第 6 题

后缀表达式 5 1 2 + 4 * + 3 - 的值是( )。

{{ select(6) }}

  • 5
  • 14
  • 17
  • 20

第 7 题

将后缀表达式 ab+c* 转为完全加括号的中缀表达式,结果是( )。

{{ select(7) }}

  • a+(b*c)
  • (a+b)*c
  • a+b*c
  • a*(b+c)

第 8 题

中缀转后缀时遇到左括号 (,通常应当( )。

{{ select(8) }}

  • 直接输出
  • 压入运算符栈
  • 清空运算符栈
  • 忽略

第 9 题

中缀转后缀时遇到右括号 ),正确做法是( )。

{{ select(9) }}

  • 把右括号输出
  • 弹出运算符直到遇到左括号,并丢弃左括号
  • 直接清空所有栈
  • 把右括号压栈

第 10 题

后缀表达式 20 5 / 2 - 的值为( )。

{{ select(10) }}

  • 2
  • 3
  • 6
  • 10

作答要求

  • 栈题:画清 栈底 / 栈顶。
  • 队列题:标清 队首 / 队尾。
  • 循环队列:每次移动都写出取模后的下标。
  • 链表题:逐句修改 next 箭头,不要只靠心算。
  • STL 题:特别注意函数是否会改变容器内容。