FUNDAMENTAL INFORMATION TECHNOLOGY ENGINEER
基本情報技術者の問題解説
問題
次の循環キュー操作を実行したとき,戻り値はどれか。enqueueはrear位置へ格納してrearを1進め,dequeueはfront位置から取り出してfrontを1進める。
整数型の配列: q[1..5] 整数型: front ← 1, rear ← 1, count ← 0 enqueue(4); enqueue(7); enqueue(1) x ← dequeue() enqueue(9); enqueue(2) y ← dequeue() enqueue(6) return q[1] + q[front]
- ア 6
- イ 7
- ウ 8
- エ 9
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目B範囲
正解と解説
正解:7
正解:7
enqueueはrearに入れてからrearを進め,dequeueはfrontから取り出してfrontを進める。5番目の次は1番目へ戻る循環キューである。
| 操作 | front | rear | 状態 |
|---|---|---|---|
| 4,7,1をenqueue | 1 | 4 | q1=4,q2=7,q3=1 |
| dequeue | 2 | 4 | x=4 |
| 9,2をenqueue | 2 | 1 | q4=9,q5=2 |
| dequeue | 3 | 1 | y=7 |
| 6をenqueue | 3 | 2 | q1=6,q3=1 |
最後はq[1]=6,front=3なのでq[front]=q[3]=1。戻り値は7である。
選択肢の見分け方:6はq[1]だけ,8や9はfront位置を取り違えた値である。rearは次に入れる位置,frontは次に取り出す位置なので,格納済み要素の先頭とは別に追う。
この問題について
公開問題・サンプル問題の形式、擬似言語記法、アルゴリズム読解・トレース・空欄補充・セキュリティ事例判断の傾向を参考にした独自問題です。本文・数値・選択肢は新規作成しています。
公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。