
【基本情報】科目B 基礎確認ミニ問題集20問|トレース・配列・ループを全問解説
「トレース表・配列・ループの解説を読んだ。自分だけでも解けるかな?」
今回は、その確認に使えるオリジナル20問を用意しました📚 全問4択、解答と途中の考え方付き。まずは答えを見ずに解いて、正解数に加えて、どこで値を追えなくなったかを確認しましょう。
1.この問題集の使い方
問1〜5はトレース、問6〜10は配列、問11〜15はループ、問16〜20は組合せです。基礎練習なので、最初は時間を測らずに取り組んでください。
全20問はアルゴリズムの基礎に絞っています。公式の科目B試験やその出題割合・難易度を再現した模擬試験ではなく、情報セキュリティなどは扱いません。この問題集の得点から本試験の合否を判断することはできません。
この記事の問題はIT資格攻略chのオリジナル基礎演習です。説明用に型宣言などを省いた擬似言語を使います。←は代入、=は比較、≠は「等しくない」を表します。forの終点は含みます。配列の要素番号は、特記がなければ1から始まります。公式問題では、その問題の定義と表記を確認してください。
答えは問題の後にまとめました。解くときは選んだ記号と、途中の値を記録してください。迷った問題には印を付けておくと、復習先を選びやすくなります。
2.基礎確認20問
問1 代入後の値
最後のxは?
x ← 4
x ← x + 3
x ← x × 2ア:10
イ:11
ウ:14
エ:16
問2 2つの変数
最後の(a, b)は?
a ← 3
b ← 4
a ← a + b
b ← a - bア:(7, 3)
イ:(7, -1)
ウ:(3, 4)
エ:(7, 7)
問3 一時変数
最後の(a, b)は?
a ← 2
b ← 9
temp ← a
a ← b
b ← tempア:(2, 9)
イ:(9, 9)
ウ:(2, 2)
エ:(9, 2)
問4 境界の条件
最後のyは?
x ← 5
y ← 0
if (x が 5 より大きい)
y ← 1
else
y ← 2
endifア:0
イ:2
ウ:1
エ:5
問5 2つの条件
最後のzは?
x ← 4
y ← 7
if ((x が 3 より大きい) and (y が 7 より小さい))
z ← 10
else
z ← 20
endifア:0
イ:7
ウ:10
エ:20
問6 添字と値
最後のxは?
data ← {7, 4, 9, 2}
i ← 3
x ← data[i]ア:3
イ:4
ウ:9
エ:2
問7 値を添字へ
最後のxは?
data ← {3, 1, 4, 2}
i ← data[2]
x ← data[i + 1]ア:1
イ:2
ウ:3
エ:4
問8 書き換え後の参照
最後の配列は?
data ← {2, 5, 8}
data[1] ← data[2]
data[3] ← data[1] + 1ア:{2, 5, 3}
イ:{5, 5, 6}
ウ:{5, 5, 3}
エ:{2, 5, 6}
問9 配列の交換
最後の配列は?
data ← {6, 2, 9}
temp ← data[1]
data[1] ← data[3]
data[3] ← tempア:{9, 2, 9}
イ:{6, 2, 6}
ウ:{2, 6, 9}
エ:{9, 2, 6}
問10 隣接要素の範囲
1始まりの6要素の配列でdata[i]とdata[i+1]を比較する。iを1から増やすとき、範囲外を読まない最後のiは?
ア:4
イ:6
ウ:5
エ:7
問11 forの合計
最後のsumは?
sum ← 0
for (i を 1 から 4 まで 1 ずつ増やす)
sum ← sum + i
endforア:10
イ:6
ウ:4
エ:15
問12 増分が2のfor
最後のcountは?
count ← 0
for (i を 2 から 7 まで 2 ずつ増やす)
count ← count + 1
endforア:2
イ:4
ウ:6
エ:3
問13 while終了時の値
最後のxは?
x ← 2
while (x が 10 より小さい)
x ← x × 2
endwhileア:8
イ:10
ウ:16
エ:32
問14 whileが0回
最後のcountは?
x ← 8
count ← 0
while (x が 5 以下)
x ← x + 1
count ← count + 1
endwhileア:1
イ:0
ウ:3
エ:8
問15 条件判定の回数
whileの条件を判定する回数は?
x ← 1
while (x が 3 以下)
x ← x + 1
endwhileア:4
イ:3
ウ:2
エ:1
問16 配列の合計
最後のsumは?
data ← {2, 5, 1, 4}
sum ← 0
for (i を 1 から 4 まで 1 ずつ増やす)
sum ← sum + data[i]
endforア:10
イ:11
ウ:4
エ:12
問17 条件に合う個数
最後のcountは?
data ← {3, 7, 5, 2, 8}
count ← 0
for (i を 1 から 5 まで 1 ずつ増やす)
if (data[i] が 5 以上)
count ← count + 1
endif
endforア:2
イ:3
ウ:5
エ:20
問18 負の数の最大値
最後のmaxは?
data ← {-6, -2, -9}
max ← data[1]
for (i を 2 から 3 まで 1 ずつ増やす)
if (data[i] が max より大きい)
max ← data[i]
endif
endforア:0
イ:-9
ウ:-2
エ:-6
問19 二重ループ
最後のcountは?
count ← 0
for (i を 1 から 2 まで 1 ずつ増やす)
for (j を 1 から 3 まで 1 ずつ増やす)
count ← count + 1
endfor
endforア:5
イ:3
ウ:9
エ:6
問20 範囲が変わる二重ループ
最後のcountは?
count ← 0
for (i を 1 から 4 まで 1 ずつ増やす)
for (j を 1 から i まで 1 ずつ増やす)
count ← count + 1
endfor
endforア:10
イ:16
ウ:8
エ:4
3.解答一覧

4.全問解説
問1 正解 ウ
4→7→14。2行目で更新した7を3行目に使います。
問2 正解 ア
aは7に更新されます。その後bは7−4=3。更新後のaを使います。
問3 正解 エ
tempに2を保存し、aへ9、bへ2を入れます。上書き前の値がtempに残ります。
問4 正解 イ
5>5は偽。else側を実行するのでy=2です。
問5 正解 エ
4>3は真、7<7は偽。andは両方が真のときだけ真なので、else側の20です。
問6 正解 ウ
i=3は位置を表します。3番目の値は9です。
問7 正解 ア
data[2]=1なのでi=1。i+1=2となり、data[2]の値1を読みます。
問8 正解 イ
data[1]が5に変わった後、その5+1=6をdata[3]に入れます。
問9 正解 エ
元のdata[1]=6をtempへ保存し、1番目へ9、3番目へ6を入れます。
問10 正解 ウ
i+1は6以下である必要があります。i=5ならdata[5]とdata[6]、i=6ではdata[7]を読んでしまいます。
問11 正解 ア
1+2+3+4=10。終点4を含みます。
問12 正解 エ
実行時のiは2、4、6。次の8は7を超えるため、本体は3回です。
問13 正解 ウ
2→4→8→16。8<10は真なので16へ更新します。次の判定が偽で終了します。
問14 正解 イ
最初の8≦5が偽です。本体は一度も実行しません。
問15 正解 ア
x=1、2、3で真、4で偽。本体3回に、終了するための判定1回を加えて4回です。
問16 正解 エ
sumは0→2→7→8→12。添字の1+2+3+4を足す処理ではありません。
問17 正解 イ
条件に合う値は7、5、8の3つ。countへ加えるのは1なので、値の合計20ではありません。
問18 正解 ウ
maxは−6から始まり、−2で更新、−9では更新しません。負の数でも大小関係をそのまま比較します。
問19 正解 エ
外側2回、そのたびに内側3回。2×3=6です。
問20 正解 ア
内側の回数は1、2、3、4と変わります。1+2+3+4=10。4×4ではありません。
5.間違えた問題から復習先を選ぶ
問1〜5:トレース表の記事へ。現在の値、実行順、真偽判定を確認
問6〜10:配列と添字の記事へ。番号と値、更新後の状態、参照範囲を確認
問11〜15:for・whileの記事へ。開始値、増分、最後の条件判定を確認
問16〜20:配列の状態とループの表を分けて書き、1回ずつ追う
正解した問題でも、途中経過を書けなかった場合はもう一度確認してみましょう。選択肢から推測した正解と、処理を追って出した正解を分けて振り返ると、次の課題が見つかります。
6.復習は「間違えた操作」を1行で残す
「配列が苦手」ではなく、「data[3]を値3だと思った」「whileの最後の偽を数え忘れた」と書きます。翌日は解説を隠して、同じ手順で解き直してください。
慣れてきたら初期値や条件を1つだけ変え、答えがどう変化するかを試しましょう。例えば問13の条件を「10より小さい」から「8より小さい」へ変えると、最後のxは8になります。8<8が偽になるためです。
基礎を確認したら、探索・ソート・データ構造・関数などへ学習を広げ、公式問題にも取り組んでいきましょう🔥
関連記事は基本情報の無料記事まとめへ。公式の問題文・表記を確認するならIPA 科目Bサンプル問題へ。