在算术表达式求值过程中,使用栈结构辅助进行运算,假设当前操作数栈(OPND)为 |5|10|,运算符栈(OPTR)为 |+|*|,如果接下来读取的操作符为'-',根据运算符优先级,正确的处理方式是:

答案解析

核心考点说明:本题考察的是栈在算术表达式求值中的应用,重点是运算符优先级处理和栈的操作。难点在于理解当遇到低优先级运算符时如何处理高优先级运算符的栈操作。 解题思路分析:在算术表达式求值过程中,当遇到新的运算符时,需要比较其与运算符栈顶运算符的优先级。如果新运算符的优先级低于或等于栈顶运算符的优先级,则需要先弹出栈顶运算符进行运算。本题中,'*'优先级高于'-',所以需要先计算栈顶的'*'操作。 选项分析: A. 错误。没有考虑到运算符优先级,直接进行 '+' 操作是错误的,且没有弹出'*'。 B. 错误。虽然计算了'*',但是错误的将 '+' 也压入了栈,并且也没有弹出'*'。 C. 正确。先计算10*5,将结果压入OPND栈,弹出*,再将 '-' 压入OPTR栈,符合优先级规则。 D. 错误。计算了'*',但是没有入栈,'-'也没有入栈。 易错点提醒:容易混淆不同运算符的优先级,以及忘记弹出栈顶运算符的操作。必须严格按照运算符优先级规则和栈的操作步骤进行。 正确答案的关键依据:运算符的优先级以及栈的操作顺序。
正确答案:C
随机推荐
开始刷题