FE SUBJECT B
基本情報技術者 科目Bの問題解説
問題
次のスタック操作を実行したとき,最後にスタックの一番上にある値はどれか。
push(4) push(7) push(2) x ← pop() y ← pop() push(y - x) push(3) x ← pop() y ← pop() push(y × x) x ← pop() y ← pop() push(x - y) return top()
- ア 9
- イ 10
- ウ 11
- エ 12
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.x 科目B範囲
正解と解説
正解:11
正解:11
スタックは後入れ先出し。最初に2と7を取り出して7-2=5を積む。次に3と5を取り出して5×3=15を積む。最後に15と4を取り出して15-4=11を積む。
引き算ではpopした順序を取り違えると別の値になる。
Hardでの確認点:スタックでは最後に入れた値から取り出す。xとyに入る順番が式の左右に影響するため,減算や除算では特に注意する。スタックの中身を毎操作後に書くと,途中値を取り違えにくい。
追加の確認:Hard問題では、正解値だけでなく、途中の更新規則を一つずつ確認する。どの条件で変数・添字・候補集合が変わるのかを見落とすと、もっともらしい選択肢に引っかかりやすい。
この問題について
擬似言語記法、アルゴリズム読解・トレース・空欄補充・セキュリティ事例判断の傾向を参考にした独自問題です。本文・数値・選択肢は新規作成しています。
公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。