基本情報技術者試験 科目Bの「令和4年度 サンプル問題 問1」(変数・代入)を、図解トレースで解説します。科目Bで最初に身につけたい トレース表の作り方 がそのまま問われる入門問題です。代入は 上から順に、変わった値を上書き していく——この感覚を固めましょう。
動画で見たい方はこちら▼
問題(令和4年度 サンプル問題 問1)
次のプログラム中の【 】に入れる正しい答えを、解答群の中から選べ。
プログラムを実行すると、「【 】」と出力される。
整数型: x ← 1
整数型: y ← 2
整数型: z ← 3
x ← y
y ← z
z ← x
yの値とzの値をこの順にコンマ区切りで出力する
解答群
ア 1,2 イ 1,3 ウ 2,1 エ 2,3 オ 3,1 カ 3,2
解説
正解は カ「3,2」 です。
①トレース表を作成
まず変数 x・y・z を書き出し、初期値を入れます。
| x | y | z |
|---|---|---|
| 1 | 2 | 3 |
②代入を上から順に反映
プログラムを上から順に処理します。値が変わったら、取り消し線を引いて下に書き直す のがコツです。
| x | y | z |
|---|---|---|
| 2 | 3 | 2 |
x ← y:y は 2 なので、x は 2。y ← z:z は 3 なので、y は 3。z ← x:x は (反映済みの)2 なので、z は 2。
Point: z ← x の x は「反映済みの値」を使う
ここが最大の注意点です。z ← x の x は、直前の x ← y で書き換わった 2 を使います。問題文の x ← 1 の 1 を持ってくると間違いになります。トレース表で「最新の値」を見る習慣をつけましょう。
③出力
yの値とzの値をこの順にコンマ区切りで出力する なので、y=3、z=2 で 「3,2」(カ)です。
Point: トレース表は「行ごと」に書かない
プログラムの行ごとに1行ずつ書く教材もありますが、丁寧な反面、本番では時間がかかりすぎます。値が変わった変数だけを、直後に追記 していくのが本番向きです。
(行ごとに書いた場合——丁寧だが時間がかかる)
| 行 | x | y | z | 処理 |
|---|---|---|---|---|
| 1 | 1 | x ← 1 | ||
| 2 | 1 | 2 | y ← 2 | |
| 3 | 1 | 2 | 3 | z ← 3 |
| 4 | 2 | 2 | 3 | x ← y |
| 5 | 2 | 3 | 3 | y ← z |
| 6 | 2 | 3 | 2 | z ← x |
Memo: 前の値は消さずに取り消し線で残す
本番ではメモ用紙とボールペンが渡され、書いた内容は消せません。だから練習でも、前の値は消さず取り消し線で残します。「変わった値だけ下に追記」「古い値は取り消し線」に慣れておくと、本番でそのまま使えます。
まとめ
問1は科目Bの土台、トレース表の作り方そのものです。変数を書き出す → 上から順に、変わった値を取り消し線+追記で更新 → 最新の値を参照。特に z ← x のように 更新済みの値を使う ところを外さなければ確実に取れます。
関連リンク
変数・代入の基礎が不安な人は、こちらから確認しましょう。

関連動画
変数のトレースを基礎から特訓できる、同じ章の動画です。
講座の全動画はこちら(プレイリスト)。

