問題
次の擬似言語プログラムの実行結果として変数xの値はいくつか。 整数型: x ← 10 整数型: y ← 3 while (x ≧ y) x ← x - y endwhile
選択肢
- 1ア 0
- 2イ 1
- 3ウ 2
- 4エ 3
正解
2. イ 1
詳しい解説を見る解説を閉じる
解説
条件 x ≧ y が成り立つ間、xからy=3を引き続ける処理をトレースする。x=10は10≧3で真なのでx=10-3=7、7≧3で真なのでx=7-3=4、4≧3で真なのでx=4-3=1となり、1≧3は偽なのでループを抜ける。最終値はx=1でイが正解である。この処理は引き算の繰返しで10÷3の余り(10 mod 3 = 1)を求めるアルゴリズムに相当し、ループの実行回数3が商に当たる。アの0は割り切れると誤認した場合、エの3は除数yとの混同である。条件が ≧(以上)である点も重要で、仮にxが3ちょうどになった場合はもう一度減算されて0になる。等号の有無が結果を左右するため、境界値でのループ継続判定を正確に行うことが、科目Bのトレース問題で安定して得点する鍵である。
一問一答
科目A 180問+科目B 60問