本文へスキップ

FUNDAMENTAL INFORMATION TECHNOLOGY ENGINEER

基本情報技術者の問題解説:次の循環キュー操作を実行したとき、戻り値はどれか。front…

データ構造及びアルゴリズム 難しい fe_b_v90_alg_q156

問題

次の循環キュー操作を実行したとき、戻り値はどれか。frontは次に取り出す位置、rearは次に格納する位置を表す。

整数型: size ← 5
整数型: front ← 1, rear ← 1
整数型の配列: q
手続 enqueue(整数型: x)
  q[rear] ← x
  rear ← (rear mod size) + 1
end手続
関数 dequeue()
  整数型: x ← q[front]
  front ← (front mod size) + 1
  return x
end関数
enqueue(4); enqueue(7); dequeue(); enqueue(2); enqueue(9); dequeue(); enqueue(5)
return dequeue() + front × 10 + rear
  1. 41
  2. 43(正解)
  3. 51
  4. 61
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.x 科目B範囲

正解と解説

正解:43

enqueue 4,7後にrear=3です。1回目のdequeueで4を取り出してfront=2になります。enqueue 2,9後にrear=5です。2回目のdequeueで7を取り出してfront=3になります。enqueue 5でrearは1に循環します。

最後のdequeueでは2を取り出し、frontは4になります。戻り値は2+4×10+1=43です。

Hardでの確認点:循環キューでは、frontとrearが指す意味を分けましょう。frontは次に取り出す位置、rearは次に格納する位置であり、操作後に進みます。sizeを超えたら1へ戻る点も表で追いましょう。

引っかかりやすい点:添字が1始まりのため、循環の式 (rear mod size)+1 は 1→2→3→4→5→1 と巡回し、0や6を指しません。rear=5のenqueueで (5 mod 5)+1=1 と先頭へ戻る挙動が要で、ここを size+1 や 0 と誤るとずれます。取り出しは4・7・2の順でFIFOが保たれている点も確認しましょう。

この問題について

出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.x 科目B範囲

擬似言語記法、アルゴリズム読解・トレース・空欄補充・セキュリティ事例判断の傾向を参考にした独自問題です。本文・数値・選択肢は新規作成しています。

公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。

参考範囲: 2026年度現行科目B・シラバスVer.9.x参考

参考文献・出典(公式情報)

RELATED

関連問題