アルゴリズムとプログラミング
基本情報技術者試験 科目A免除 修了試験 20140126 実施分 問5
PUSH 命令でスタックにデータを入れ,POP 命令でスタックからデータを取り出す。動作中のプログラムにおいて,ある状態から次の順で 10 個の命令を実行したとき,スタックの中のデータは図のようになった。1 番目の PUSH 命令でスタックに入れたデータはどれか。
命令の実行順: PUSH → PUSH → POP → PUSH → PUSH → PUSH → PUSH → POP → POP → PUSH(1行目5命令,2行目5命令)。スタック図(PUSH は上から入れ,POP は上から取り出す): 上から 192, 55, 326, 7, 29(一番下が 29)。
- ア 29
- イ 7
- ウ 326
- エ 55
出典:基本情報技術者試験 科目A免除 修了試験 20140126 実施分 問5
答えと解説を見る
正解:イ
覚える知識
スタックのpush/popトレース
スタックは後入れ先出しで、PUSHで積みPOPで最後に積んだものから取り出す。
この問題で必要なこと
各命令を順に追うと、最終スタックの下から2番目(7)が1番目のPUSHで入れたデータである。最下段の29は実行前から入っていたデータと分かる。
ひっかけ
図の最下段(29)を1番目のPUSHと取り違えさせる。
この知識の出題:本試験系 5 回・免除試験 4 回(公開問題での観測値)