IT PASSPORT
ITパスポートの問題解説
問題
変数 x に初期値 1、変数 n に初期値 0 を代入する。次に「x に 2 を掛けて x に入れ直し、n に 1 を足す」という処理を、x が 10 を超えるまで繰り返す。繰り返しを終えたとき、x と n の組合せはどれか。
- ア x=8、n=3
- イ x=16、n=3
- ウ x=16、n=4
- エ x=32、n=5
出典:オリジナル問題|参考範囲:IPA ITパスポート試験シラバス(最新版)、情報処理技術者試験の基礎知識
正解と解説
正解:x=16、n=4
解説:x に「2倍して入れ直す」処理を行い、同時に実行回数を数える n を 1 ずつ増やします。x が 10 を超えるまで繰り返すので、1ステップずつ表に書き出すと、1回目で x=2・n=1、2回目で x=4・n=2、3回目で x=8・n=3、4回目で x=16・n=4 となります。x=8 の時点では「10を超える」を満たさずもう一度実行され、x=16 で初めて条件を満たして終了します。終了条件が「10以上」なら x=16 ではなく途中で止まり方が変わるため、「以上」と「を超える」の違いに注意が必要です。カウンタ n を併走させると、何回処理したかも同時に把握できます。
覚え方:ループ問題は暗算せず「x=1,2,4,8,16」「n=0,1,2,3,4」と紙に書き出すのが鉄則です。条件を満たした瞬間の値が答えになり、回数カウンタは処理を実行するたびに1増やすと覚えましょう。
他の選択肢はなぜ違う?
- アx=8 はまだ 10 を超えていない途中の値です。8 は 10 以下なのでもう一度処理が実行され、繰り返しは終わりません。n の数え方も合っていません。
- イx=16 は正しい最終値ですが、n は処理を実行した回数(1→2→4→8→16 の4回)なので n=4 です。n=3 は1回少なく数えています。
- エx=32 は1回多く2倍してしまった値です。16 の時点で「10を超える」条件を満たすため、そこで繰り返しは止まり、32 までは進みません。
この問題について
IPAのITパスポート試験シラバスとIT基礎知識を参考に、Sikaku Master向けに独自作成した問題です。公式試験問題・過去問題の転載ではありません。
IPAの過去問題の転載ではなく、シラバス・公開情報に基づく独自問題として作成しています。