FUNDAMENTAL INFORMATION TECHNOLOGY ENGINEER
基本情報技術者の問題解説
問題
次の循環キュー操作を実行したとき,戻り値はどれか。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
- ア 41
- イ 43
- ウ 51
- エ 61
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.x 科目B範囲
正解と解説
正解:43
正解: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へ戻る点も表で追う。
この問題について
擬似言語記法、アルゴリズム読解・トレース・空欄補充・セキュリティ事例判断の傾向を参考にした独自問題です。本文・数値・選択肢は新規作成しています。
公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。