首页 > 试题广场 >

若栈S1中保存整数,栈S2中保存运算符,函数F()依次执行下

[单选题]
若栈S1中保存整数,栈S2中保存运算符,函数F()依次执行下述各步操作:
(1)从S1中依次弹出两个操作数a和b;
(2)从S2中弹出一个运算符op;
(3)执行相应的运算b op a;
(4)将运算结果压入S1中。
假定S1中的操作数依次是5,8,3,2(2在栈顶),S2中的运算符依次是*,-,+(+在栈顶)
调用3次F()后,S1栈顶保存的值是

  • -15
  • 15
  • -20
  • 20
S1第一次 弹出 a,b  即 2,3  S2 弹出 “ +”   操作为 b + a   即 (3 + 2) 压入 S1  现在 S1 为 5 8 5
S1第二次弹出a,b    即 5 ,8   S2弹出"-"  操作为 b - a      即(8-5) 压入S1 现在 S1 为  5 3
S1第三次弹出a,b 即 3,5   S2弹出 “*” 操作为 b*a   即  5*3   压入S 现在S1 为 15
所以三次后S1 栈顶为15
发表于 2021-09-28 22:47:06 回复(1)