FUNDAMENTAL INFORMATION TECHNOLOGY ENGINEER
基本情報技術者の問題解説
問題
次の後置記法の評価を行うプログラムで,最後に返される値はどれか。
配列: token ← {"3", "4", "+", "2", "×", "5", "-"}
スタック: st ← 空
tokenを左から順に読む。
数値ならstに積む。
演算子ならstから右辺,左辺の順に取り出して計算し,結果をstに積む。
最後にstから取り出した値を返す。- ア 9
- イ -9
- ウ 14
- エ 7
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目B範囲
正解と解説
正解:9
正解:9
見る場所:演算子が出たときに,先に取り出した値が右辺,次に取り出した値が左辺になる点を見る。特に最後の「-」は5-14ではなく14-5である。
| token | 処理 | スタック |
|---|---|---|
| 3 | push | 3 |
| 4 | push | 3,4 |
| + | 3+4 | 7 |
| 2 | push | 7,2 |
| × | 7×2 | 14 |
| 5 | push | 14,5 |
| - | 14-5 | 9 |
処理の追い方:3と4を足して7,7と2を掛けて14,最後に14から5を引くので9になる。
間違えやすい点:減算・除算では取り出し順が重要である。スタックから先に出た値を左辺にすると,最後が5-14になり誤る。
選択肢の見分け方:-9は最後の引き算の左右を逆にした値,14は最後の5を処理し忘れた値。
この問題について
公開問題・サンプル問題の形式、擬似言語記法、アルゴリズム読解・トレース・空欄補充・セキュリティ事例判断の傾向を参考にした独自問題です。本文・数値・選択肢は新規作成しています。
公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。