平成27年度春期 応用情報技術者試験 午前 問7
プログラムの実行に関する次の記述の下線部 a〜d のうち,いずれかに誤りがある。誤りの箇所と正しい字句の適切な組合せはどれか。自分自身を呼び出すことができるプログラムは,a 再帰的 であるという。このようなプログラムを実行するときは,b スタック に局所変数,c 仮引数 及び戻り番地を格納して呼び出し,復帰するときは d FIFO(First In First Out) 方式で格納したデータを取り出して復元する必要がある。
- ア a 再入可能
- イ b 待ち行列
- ウ c 実引数
- エ d LIFO(Last In First Out)
解答・解説を見る
正解:エ
AI解説
再帰呼出しでは、呼び出すたびに局所変数・仮引数・戻り番地をスタックに積み(プッシュ)、復帰時には積んだのと逆順、すなわち後入れ先出し(LIFO)で取り出して復元する。誤りはdのFIFOであり、正しくはLIFOなのでエが正解である。 ア: 「再帰的(リカーシブ)」は正しい記述である。再入可能(リエントラント)は複数のタスクから同時に呼ばれても正しく動作する性質で、別の概念である。 イ: 「スタック」は正しい記述である。待ち行列(キュー)はFIFO構造であり、再帰の退避領域には使わない。 ウ: 「仮引数」は正しい記述である。実引数は呼び出す側が渡す値のことで、呼び出された側で確保されるのは仮引数である。 エ: 正解。復帰時はFIFOではなくLIFO(後入れ先出し)で取り出す。 💡 スタック=LIFO、キュー=FIFOの対応は最頻出。関数呼出し・再帰・割込みからの復帰は常にスタック(LIFO)とセットで覚える。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。