問題プレビューID: 208683d4

問 22

次の一連の 3 アドレス命令で得られる結果 x を表す式はどれか。ここで,3 アドレス命令では,三つのオペランドを用いた命令 “c = a op b” を “op ( a , b , c )” として表記する。op は一つの演算子を表し,結果 x を表す式においては優先順位の高い順に * , / , + , - とする。

/ (c , d , w1)
+ (b , w1 , w2)
/ (e , f , w3)
- (w3 , g , w4)
* (w2 , w4 , x)
解説

各命令を上から順に評価する。

  1. w1=c/dw_1 = c / d
  2. w2=b+w1=b+c/dw_2 = b + w_1 = b + c / d
  3. w3=e/fw_3 = e / f
  4. w4=w3−g=e/f−gw_4 = w_3 - g = e / f - g
  5. x=w2×w4=(b+c/d)×(e/f−g)x = w_2 \times w_4 = (b + c / d) \times (e / f - g)

したがって x=(b+c/d)×(e/f−g)x = (b + c / d) \times (e / f - g) であり,正解は「エ」です。