平成23年度特別 応用情報技術者試験 午前 問7

分野:アルゴリズムとプログラミング(データ構造・アルゴリズム・探索整列・計算量の実際・擬似言語・プログラム言語・データ記述言語)|実際に出題されたIPA過去問題

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

問題の図表(IPA公式問題冊子より引用)
図表:IPA公式問題冊子より
  1.  29
  2.  7
  3.  326
  4.  55
解答・解説を見る

正解:イ

AI解説

スタックはLIFO(後入れ先出し)構造のため、10個の命令実行後のスタックの中身から、命令列を逆にたどる(最後にPOPされたものから遡る)ことで、各PUSH命令で積まれたデータを一意に特定できる。設問の図から1番目のPUSH命令で入れたデータは7である。 ア: 29。スタックの状態から逆算した際に該当しないデータであり誤り。 イ: 1番目のPUSH命令で積まれたデータ「7」。命令列を最後から逆にたどり、最初にPUSHされたデータとして特定され正解。 ウ: 326。同様に逆算結果と一致しないため誤り。 エ: 55。同様に逆算結果と一致しないため誤り。 💡 スタックのトレース問題は、最終状態から命令を1つずつ逆再生する(POPは直前にPUSHされた値を戻す、PUSHは取り除く)ことで各操作時のデータを復元するのが定石。

出典:平成23年度 特別 応用情報技術者試験 午前 問7 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「アルゴリズムとプログラミング」分野の攻略ポイント

データ構造・アルゴリズム・探索と整列・計算量・擬似言語・プログラム言語・データ記述言語が対象です。擬似言語のトレースは時間はかかるものの、落ち着いて表を書けば必ず正解にたどり着く「確実に取れる」問題です。

アルゴリズムとプログラミングの攻略ポイントをすべて見る(要点6項目・ひっかけ3項目)→

同じ分野(アルゴリズムとプログラミング(データ構造・アルゴリズム・探索整列・計算量の実際・擬似言語・プログラム言語・データ記述言語))の過去問