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
正解: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位置を返した誤り。
この問題について
公開問題・サンプル問題の形式、擬似言語記法、アルゴリズム読解・トレース・空欄補充・セキュリティ事例判断の傾向を参考にした独自問題です。本文・数値・選択肢は新規作成しています。
公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。