利用栈求表达式的值时,设立运算数栈OPND。假设OPND只有两个存储单元,在下列表达式中,不发生溢出的是( )。
A、
A—B*(C—D)
B、
(A—B)*C—D
C、
(A—B*C)—D
D、
(A—B)*(C—D)
【正确答案】
B
【答案解析】
解析:利用栈求表达式的值时,将中缀表达式转换成后缀表达式以及进行后缀表达式求值这两步操作可以和在一起进行,需要设立运算符栈OPTR和运算数栈OPND两个栈。 例如求选项A的表达式A—B*(C—D)的过程如下表所示:
按照上述过程可知,选项A求值时,运算数栈OPND的大小至少为4。 例如求选项B的表达式(A—B)*C—D的过程如下表所示:
提交答案
关闭