アルゴリズムとプログラミング

基本情報技術者試験 科目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 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「スタックとキュー(LIFO と FIFO)」で学ぶ

同じ知識の過去問