CO-P17情報Ⅰ 対策問題

コンピュータとプログラミングプログラミング特訓 (第3問対策)

次のプログラムは、条件が成り立つ間 x に 3 を足し続け、繰り返した回数を変数 y に数えて表示する。実行したとき、表示される値はどれか。 (1) x = 7 (2) y = 0 (3) x % 2 == 1 の間繰り返す: (4) | x = x + 3 (5) ⎿ y = y + 1 (6) 表示する(y) ※ %は余り。

解答・解説を見る

正解: 1

正答

1

この問題のポイント

終了条件の見極め(奇数の間繰り返す) を問う問題です。

解説

条件「x % 2 == 1」は「x を2で割った余りが1」、つまり「x が奇数の間繰り返す」という意味です。条件付きループは、周回のたびに先に条件を判定し、真なら中を実行、偽になった瞬間に終了します。

x と y の変化を1ステップずつトレースします。
1周目の判定: x=7、7%2=1 → 真 → 実行: x=7+3=10、y=0+1=1。
2周目の判定: x=10、10%2=0 → 偽 → ループ終了。
(6)で y の値 1 が表示されます。

数の性質から見抜く近道もあります。「奇数 + 3 = 偶数」なので、1回実行すれば必ず条件が偽になり、このループは必ず1回で終わるのです。逆に、もし(4)が「x = x + 2」だったら、奇数+2は奇数のままなので条件が永遠に真——無限ループになります。

共通テストの条件付きループでは、「更新の行が、条件をいつ偽にするか」を考えるのが決め手です。回数を数える y のような変数(カウンタ)と、条件を左右する x の両方を並べてトレースする習慣をつけると、終了のタイミングを取り違えません。

選択肢の確認

1.○ 1回目の更新で x=10(偶数)になり、2周目の判定で終了。y=1。
2.× 最初の判定は 7%2==1 で真なので、少なくとも1回は実行される。
3.× 3回実行される根拠はない。1回目で偶数になる。
4.× +3 は偶奇を反転させるので必ず終わる。無限ループになるのは+2のとき。

ここだけは覚えよう

条件付きループは「更新が条件をいつ偽にするか」を見る — 奇数+3=偶数、だから1回で終わる。

関連問題

CO-P16CO-P18