修了試験 2023-06-11実施分 基本情報技術者試験 問14
次の一連の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)
正答4
解説
正解は4です。 3アドレス命令の列を1つの式にまとめ、問題文で定めた演算子の優先順位で表す問題です。 この問題では、演算子は×、÷、+、-の順に優先されると約束しています。 【計算】 ÷(c,d,w1)より、w1=c÷dです。 +(b,w1,w2)より、w2=b+c÷dです。 ÷(e,f,w3)より、w3=e÷fです。 -(w3,g,w4)より、w4=e÷f-gです。 ×(w2,w4,x)より、x=(b+c÷d)×(e÷f-g)です。 【選択肢別解説】 1:× 括弧がないので、最優先の×によりd×eが先に計算されます。 その結果b+c÷(d×e)÷f-gという意味になり、求めた式と異なります。 2:× ×が÷より優先されるので、d×(e÷f-g)が先に計算されます。 その結果b+c÷(d×(e÷f-g))となり、b+c÷dの全体に掛ける形になりません。 3:× 先に(b+c÷d)×eが計算され、それをfで割ってからgを引く式になります。 e÷f-gの全体を掛ける形になっておらず、求めた式と異なります。 4:○ 2つの括弧で、b+c÷dとe÷f-gをそれぞれ先に計算することが明示されています。 命令列から求めた式と完全に一致します。 【ポイント】 問題文が独自の優先順位を定めている場合は、通常の数学の約束ではなくそれに従って式を読みます。 命令列は中間結果(w1〜w4)を順に置き換えていくと、確実に1つの式にまとめられます。まとめて解く
修了試験 2023-06-11実施分を通しで解く(60問)→