FE SUBJECT B
基本情報技術者 科目Bの問題解説:次の循環キュー風の添字更新を実行したとき、戻り値はどれか。配…
問題
次の循環キュー風の添字更新を実行したとき、戻り値はどれか。配列の要素番号は1から始まる。
整数型の配列: q ← {0, 0, 0, 0, 0}
整数型: rear ← 0
整数型: i
for (i を 1 から 4 まで 1ずつ増やす)
rear ← (rear mod 5) + 1
q[rear] ← i
endfor
整数型: front ← 2
return q[(front mod 5) + 1]- ア 2
- イ 3(正解)
- ウ 4
- エ 0
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目B範囲
正解と解説
正解:3
見る場所:rearは毎回(rear mod 5)+1で1つ進みます。returnではfrontそのものではなく、frontを1つ進めた位置を読みます。
| i | rearまたは添字 | 配列更新 |
|---|---|---|
| 1 | 1 | q[1]=1 |
| 2 | 2 | q[2]=2 |
| 3 | 3 | q[3]=3 |
| 4 | 4 | q[4]=4 |
| return | (2 mod 5)+1=3 | q[3]=3 |
処理の追い方:4回の追加でq[1]〜q[4]に1〜4が入ります。front=2なので次位置は3で、q[3]は3です。
間違えやすい点:front=2だからq[2]を返す、と読まないようにしましょう。式は(front mod 5)+1なので、読む位置は3になります。
選択肢の見分け方:2はfrontをそのまま添字にした誤り、4はrear位置を返した誤りです。
この問題について
公開問題・サンプル問題の形式、擬似言語記法、アルゴリズム読解・トレース・空欄補充・セキュリティ事例判断の傾向を参考にした独自問題です。本文・数値・選択肢は新規作成しています。
公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。