A-A+

已知赋值语句a:=(b-c)*(d-e) 它的后缀式是(29)。A.abc-de-*:=B.

2022-08-06 01:33:53 问答库 阅读 174 次

问题详情

已知赋值语句a:=(b-c)*(d-e),它的后缀式是(29)。
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项进行运算,并将结果压入栈中,当表达式被扫描完时,栈顶元素就是表达式的运算结果。

考点:赋值,后缀