2026年5月12日
共通テストのプログラミング問題を攻略しよう
共通テスト情報Ⅰのプログラミング問題。「過去問を解いてみたけど、全然わからなかった」という人は多いです。
でも、プログラミング問題には決まったパターンがあります。パターンを知って解き方の手順を身につければ、確実に得点できるようになります。
情報Ⅰ共通テスト対策スケジュールで全体の学習計画を立ててから、この記事で実践練習に入るのがおすすめです。
過去問を解く意義
- 出題形式に慣れる:独特の問い方に慣れないと、知識があっても解けない
- 時間感覚をつかむ:60分で全問解く感覚を体で覚える
- 頻出パターンがわかる:同じパターンが繰り返し出題される
- 弱点が見つかる:間違えた問題から補強すべき分野がわかる
効果的な使い方:1回目は本番通りに解く → 2回目は間違えた問題だけ解き直す → 3回目は1週間後に全問解く。「3回解く」のが鉄則です。
出題パターン分析
プログラミング問題は主に4つのパターンで出題されます。
| パターン | 内容 | 出題頻度 |
|---|---|---|
| 穴埋め問題 | コードの空欄に正しい処理を選ぶ | ★★★★★ |
| トレース問題 | 変数の値や出力結果を答える | ★★★★☆ |
| 出力予測問題 | 特定の入力に対する出力を予測 | ★★★☆☆ |
| アルゴリズム選択 | 正しいアルゴリズムや処理順を選ぶ | ★★★☆☆ |
情報Ⅰのアルゴリズム・ソートで、ソートアルゴリズムの基本を学んでおくと有利です。
解き方の手順(4ステップ)
ステップ1: 問題文を先に読む
コードを読む前に、問題文と設問を先に読みます。このプログラムは何をするものか(目的)、何を答えればいいか、入力データは何かを確認します。目的がわかっていると、コードの意味が格段に理解しやすくなります。
ステップ2: 変数と構造を把握する
コードを「ざっと」見て、変数は何個あるか、繰り返しは何回か、条件分岐はどこにあるか、配列は使われているかを確認します。この段階では計算しません。
ステップ3: トレース表を書く
紙にトレース表を書いて、1行ずつ変数の値を追います。全部トレースする必要はなく、最初の2〜3回で規則性を見つけるのがコツです。選択肢を見て答えの候補を絞ってからトレースすると効率的です。
ステップ4: 選択肢と照合する
トレース結果と選択肢を照合して答えを選びます。穴埋め問題の場合は、各選択肢を空欄に入れてトレースし、正しい結果になるものを選びます。
パターン別攻略法
穴埋め問題の攻略
戦略:選択肢を1つずつ試す。問題文から目的を把握し、空欄の前後から何をすべきか推測し、選択肢を入れてトレースします。
| 目的 | 空欄に入りやすい処理 | |
|---|---|---|
| 合計を求める | sum ← sum + A[i] | |
| 最大値を求める | max ← A[i] | |
| カウントする | count ← count + 1 | |
| 交換する | temp ← A[i] | |
| 条件判定 | A[i] > max |
| 小問 | 目安時間 | 内容 |
|---|---|---|
| 問1 | 3〜4分 | プログラムの目的理解 |
| 問2 | 5〜6分 | 穴埋め or トレース |
| 問3 | 5〜6分 | 穴埋め or 出力予測 |
| 問4 | 5〜6分 | 応用(改良・拡張) |
解く順番:問1を最初に(確実に取れる)→ 問2〜3(配点が高い)→ 問4は余裕があれば。鉄則:わからない問題は飛ばす。1問に5分以上かかったら次に進みましょう。
練習問題
問題1(穴埋め)
配列Aの中から最小値を求めるプログラム。空欄[ア]に入る適切な処理を選べ。
A ← {8, 3, 5, 1, 7}
min ← A[1]
i を 2 から 5 まで 1 ずつ増やしながら繰り返す
もし [ ア ] ならば
min ← A[i]
を実行する
を実行する
表示する(min) 選択肢:A. A[i] > min B. A[i] < min C. A[i] = min D. min < A[1]
問題2(トレース)
次のプログラムを実行したとき、表示される値を答えよ。
x ← 1
y ← 1
i を 1 から 5 まで 1 ずつ増やしながら繰り返す
z ← x + y
x ← y
y ← z
を実行する
表示する(y) 問題3(出力予測)
n = 6 のとき表示される値を答えよ。
n ← 6
count ← 0
i を 1 から n まで 1 ずつ増やしながら繰り返す
もし n を i で割った余りが 0 ならば
count ← count + 1
を実行する
を実行する
表示する(count) 解答・解説
問題1の解答: B
最小値を求めるので「今の最小値より小さい値が見つかったら更新する」→ A[i] < min
min = 8(初期値)
i=2: A[2]=3 < 8 → 真 → min=3
i=3: A[3]=5 < 3 → 偽
i=4: A[4]=1 < 3 → 真 → min=1
i=5: A[5]=7 < 1 → 偽
出力: 1 ✓ 問題2の解答: 13
初期: x=1, y=1
i=1: z=1+1=2, x=1, y=2
i=2: z=1+2=3, x=2, y=3
i=3: z=2+3=5, x=3, y=5
i=4: z=3+5=8, x=5, y=8
i=5: z=5+8=13, x=8, y=13
答え: 13(フィボナッチ数列) z ← x + y で前の2つの数を足し、x ← y, y ← z で値をずらしています。
問題3の解答: 4
n=6のとき「nをiで割った余りが0」= iはnの約数
i=1: 6÷1=6余り0 → 真 → count=1
i=2: 6÷2=3余り0 → 真 → count=2
i=3: 6÷3=2余り0 → 真 → count=3
i=4: 6÷4=1余り2 → 偽
i=5: 6÷5=1余り1 → 偽
i=6: 6÷6=1余り0 → 真 → count=4
答え: 4(6の約数の個数) 「余りが0」=「割り切れる」=「約数」と気づけるかがカギです。
過去問演習のチェックリスト
- ✅ 時間内に解けたか(プログラミング問題は20分以内)
- ✅ トレース表を書いて解いたか
- ✅ 間違えた問題の原因を特定したか
- ✅ 同じパターンの問題を追加で解いたか
- ✅ 1週間後にもう一度解き直したか
情報Ⅰの擬似コード読解で、さらに多くの問題パターンを練習できます。
まとめ
- 4つの出題パターンを知る(穴埋め、トレース、出力予測、アルゴリズム選択)
- 4ステップで解く(問題文→構造把握→トレース→照合)
- トレース表を必ず紙に書く
- 20分で解く時間感覚を身につける
- わからない問題は飛ばす
- 過去問は3回解くのが鉄則
穴埋め問題の解法詳細
まずプログラムの目的を把握する。次に空欄の前後から「何をすべきか」を推測する。選択肢を1つずつ空欄に入れてトレースし、目的に合う結果になるものを選ぶ。全部トレースする前に、明らかに違う選択肢を消去法で除外すると時間短縮になります。
類題の見つけ方:大学入試センターの試行調査、各予備校の模試問題集、教科書の章末問題が使えます。同じパターンの問題を3問連続で解くとパターンが体に染み込みます。
⚡ JavaScriptでプログラミングの考え方を体験しよう!
共通テストの擬似コード問題に強くなるには、実際にコードを書く経験が役立ちます。完全無料・登録不要。
JavaScriptレッスン1を始める →