基本情報技術者試験 基本情報技術者試験 令和元年度 科目A 修了認定試験 午前 問8: PUSH 命令でスタックにデータを入れ、POP 命令でスタックからデータを取り出す。動作中のプログラムにおいて、ある状態から次の順で 10 個の命令を実行したと

基本情報技術者試験 令和元年度 科目A 修了認定試験
Q 88 / 80
PUSH 命令でにデータを入れ、POP 命令でスタックからデータを取り出す。動作中のプログラムにおいて、ある状態から次の順で 10 個の命令を実行したとき、スタックの中のデータは表のようになった。1 番目の PUSH 命令でスタックに入れたデータはどれか。
ステップ12345678910
命令PUSHPUSHPOPPUSHPUSHPUSHPUSHPOPPOPPUSH
の中のデータ(上から底へ):
位置
19255326729
この問の正解率:59.93%(1,228件)
この問題の本文・選択肢・正解・解説(展開)

問題本文

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

選択肢

  • .29
  • .7
  • .326
  • .55

正解

. 7

解説

純増 6push - 3pop = 3 要素分の純増。スタックが 5 要素になるためには初期 2 要素から、最後まで底に残る要素は最初の 2 要素のうち上のもの、すなわち 1 番目の PUSH で入れたデータが最終的にスタック底にある。図のスタック最下部は 29、その上が 7 で、命令の追跡から 1 番目の PUSH のデータは 7。

基本情報技術者試験 令和元年度 科目A 修了認定試験過去問一覧へ戻る・問8