必ず受かる情報処理技術者試験

問題13

ポケットスタディ 基本情報午後・要点整理―即効!7つの知識 (情報処理技術者試験)

PUSH 命令でスタックにデータを入れ,POP 命令でスタックからデータを取り出す。動作中のプログラムにおいて,ある状態から次の順で 10 個の命令を実行したとき,スタックの中のデータは図のようになった。1番目のPUSS命令でスタックに入れたデータはどれか。

7
29
55
326

解答・解説を見る

解答:ア

実行した処理を「PUSH a → PUSH b → POP → PUSH c → PUSH d → PUSH e → PUSH f → POP → POP → PUSH g」として、スタックの状態を考える。
(※開始時、スタックは空とする。)

  1. PUSH aでスタックは[a]
  2. PUSH bでスタックは[b, a]
  3. POPでスタックからデータbを取り出し[a]
  4. PUSH cでスタックは[c, a]
  5. PUSH dでスタックは[d, c, a]
  6. PUSH eでスタックは[e, d, c, a]
  7. PUSH fでスタックは[f, e, d, c, a]
  8. POPでスタックからデータfを取り出し[e, d, c, a]
  9. POPでスタックからデータeを取り出し[d, c, a]
  10. PUSH gでスタックは[g, d, c, a]

したがって、最初にPUSHしたデータはスタックの上から4番目のaなのでイが正解である。

前の問題 次の問題

Copyrithg naruha