问题 单项选择题

已知赋值语句a:=(b-c)*(d-e),它的后缀式是

A.abc-de-*:=

B.:=a*-bc-de

C.①(-,a,b)
②(-,c,d)
③(*,①,②)
④(:=,③,x)

D.① (-,a,b,t1)
②(-,c,d,t2)
③(*,t1,t2,t3)
④(:=,t3,,x)

答案

参考答案:A

解析: 常用的中间代码有后缀式、三元式、四元式等形式。对于赋值语句a:=(b-c)* (d-e),它们分别是备选答案中的A、C、D。
逆波兰式是波兰逻辑学家发明的一种表示表达式的方法。他把运算符写在运算对象的后面,例如把a+b写成ab+,所以也称为后缀式。这种表示法的优点是根据运算符出现的次序进行计算,不需要使用括号。用栈结构实现后缀式的计值是很方便的,一般的方法是:自左向右扫描后缀式,遇到运算对象时就将其压入栈中,遇到k元运算符时就从栈中弹出 k项进行运算,并将结果压入栈中,当表达式被扫描完时,栈顶元素就是表达式的运算结果。

选择题
单项选择题