FUNDAMENTAL INFORMATION TECHNOLOGY ENGINEER
基本情報技術者の問題解説
問題
次の手続 queueScore() を実行したときの戻り値はどれか。
○整数型: queueScore() キュー q ← 空 整数型: x, y enqueue(q, 4) enqueue(q, 1) x ← dequeue(q) enqueue(q, x + 2) enqueue(q, 3) y ← dequeue(q) enqueue(q, y + x) return dequeue(q) + dequeue(q)
- ア 8
- イ 9
- ウ 10
- エ 11
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目B範囲
正解と解説
正解:9
正解:9
キューは先入れ先出し。4,1を入れた後、x=4を取り出し、6を末尾に入れる。さらに3を入れると {1,6,3}。次にy=1を取り出し、y+x=5を末尾に入れるので {6,3,5}。最後の2回のdequeueは6と3で、戻り値は9。
10は6と4を足したような途中値、11は6と5を足してしまった場合に出やすい。8はx+2の6を正しく末尾に置けていない。
キューではenqueueは末尾、dequeueは先頭。途中で取り出したx,yを使って新しい値を入れるので、キューの並びを毎回書く。
この問題について
公開問題・サンプル問題の形式、擬似言語記法、アルゴリズム読解・トレース・空欄補充・セキュリティ事例判断の傾向を参考にした独自問題です。本文・数値・選択肢は新規作成しています。
公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。