题18
题目
[!question]+
【2018 统考真题】若栈
- 从
S1中依次弹出两个操作数a和b. - 从
S2中弹出一个运算符op. - 执行相应的运算
b op a. - 将运算结果压入
S1中.
假定 S1 中的操作数依次是 5, 8, 3, 2 (2 在栈顶), S2 中的运算符依次是 *、-、+ (+ 在栈顶). 调用 3 次 F() 后, S1 栈顶保存的值是 ( ).
A. -15
B. 15
C. -20
D. 20
分析
[!NOTE]+
第一次调用:
①从s1中弹出2和3;
②从s2中弹出+;
③执行3+2=5;
④将5压入s1中,第一次调用结束后s1中剩余*、-(-在栈顶)。
第二次调用:①从s1中弹出5和8;②从s2中弹出-;③执行8-5=3;④将3压入s1中,第二次调用结束后*。
第三次调用:①从*;③执行
解
[!done]+
B