FE SUBJECT B
基本情報技術者 科目Bの問題解説
問題
次の手続 queueCalc() を実行したときの戻り値はどれか。キューは先入れ先出しで動作する。
○整数型: queueCalc() キュー q 整数型: x, y, z enqueue(q, 4) enqueue(q, 7) x ← dequeue(q) enqueue(q, x + 3) y ← dequeue(q) enqueue(q, y × 2) z ← dequeue(q) return z + dequeue(q)
- ア 14
- イ 18
- ウ 21
- エ 28
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目B範囲
正解と解説
正解:21
正解:21
キューは先に入れた値から取り出す。途中で同じ値7が2個存在するため、どちらの7を取り出しているのかをキューの先頭から順に追う必要がある。
最初に4と7を入れ、4を取り出して x=4 とする。その後 x+3=7 を末尾に入れるので、キューは [7,7] になる。次に先頭の7を y として取り出し、14を入れる。残った先頭の7が z となり、最後に14を取り出すので 7+14=21 である。
| 操作 | キューの状態 | 値 |
|---|---|---|
| enqueue 4,7 | [4,7] | |
| x←dequeue | [7] | x=4 |
| enqueue x+3 | [7,7] | |
| y←dequeue | [7] | y=7 |
| enqueue y×2 | [7,14] | |
| z←dequeue | [14] | z=7 |
| return | [] | 7+14=21 |
この問題について
公開問題・サンプル問題の形式、擬似言語記法、アルゴリズム読解・トレース・空欄補充・セキュリティ事例判断の傾向を参考にした独自問題です。本文・数値・選択肢は新規作成しています。
公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。