問題
次の一連の 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)
選択肢
- 1b+c/d*e/f-g
- 2b+c/d*(e/f-g)
- 3(b+c/d)*e/f-g
- 4(b+c/d)*(e/f-g)
正解
4. (b+c/d)*(e/f-g)
詳しい解説を見る解説を閉じる
解説
命令を順にたどると、w1=c/d、w2=b+w1=b+c/d、w3=e/f、w4=w3-g=e/f-g、x=w2*w4=(b+c/d)*(e/f-g) となる。w2 と w4 はそれぞれ加算・減算を含む中間結果なので、乗算では括弧が必要である。よってエが正しい。(出典: 平成22年度 春期 基本情報技術者試験 午前 問22)
一問一答
科目A 180問+科目B 60問