アルゴリズムとプログラミング
平成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)
出典:平成22年度 春期 基本情報技術者試験 午前 問22
答えと解説を見る
正解:エ
覚える知識
3アドレス命令列から式への復元
3アドレス命令列は、中間変数を順に代入して元の式に復元する。
この問題で必要なこと
w1=c/d、w2=b+w1、w3=e/f、w4=w3−g、x=w2*w4なので、x=(b+c/d)*(e/f−g)。
ひっかけ
括弧を付けず演算子の優先順位だけで式を書き下すと別の式になる。
この知識の出題:本試験系 2 回・免除試験 12 回(公開問題での観測値)