基本情報技術者平成22年春期 午前問22

問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)
  • b+c/d*e/f-g
  • b+c/d*(e/f-g)
  • (b+c/d)*e/f-g
  • (b+c/d)*(e/f-g)

分類

テクノロジ系 » ソフトウェア » 開発ツール

正解

解説

設問の指示である"c=a op b"⇒"op(a,b,c)"に従って、各3アドレス命令を命令の形に戻していきます。
  1. /(c,d,w1) ⇒ w1=c/d
  2. +(b,w1,w2) ⇒ w2=b+w1
    w1=c/dより、w2=b+c/d
  3. /(e,f,w3) ⇒ w3=e/f
  4. -(w3,g,w4) ⇒ w4=w3-g
    w3=e/fより、w4=e/f-g
  5. *(w2,w4,x) ⇒ x=w2*w4
    w2=b+c/d、w4=e/f-gより、x=(b+c/d)*(e/f-g)
したがって結果xを表す式は「エ」となります。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop