問題
次の擬似言語プログラムの実行結果として、変数xの値はいくつか。 整数型: x ← 10 整数型: y ← 20 if (x < y) x ← x + y else x ← x − y endif
選択肢
- 1ア −10
- 2イ 10
- 3ウ 20
- 4エ 30
正解
4. エ 30
詳しい解説を見る解説を閉じる
解説
正解はエ。プログラムを順にトレースする。初期値はx=10、y=20である。if文の条件式x<yは10<20で真となるため、then側のx←x+yが実行され、x=10+20=30となる。else側のx←x−y(10−20=−10)は条件が真のため実行されない。よってxの最終値は30である。アの−10はelse側が実行されたと誤読した場合、イの10は代入が行われないと考えた場合、ウの20はyの値と取り違えた場合の誤りである。科目Bの擬似言語では、条件分岐のどちらの経路を通るかを確実に判定し、変数の値の変化を1行ずつトレース(追跡)するのが基本である。本問のような単純なif-else文はトレース練習の出発点として確実に得点したい。
一問一答
科目A 180問+科目B 60問