問40問40解説へ再帰的な処理を実現するためには,実行途中の状態を保存しておく必要がある。そのための記憶管理方式として,適切なものはどれか。再帰とは、実行中に自分自身を呼び出すことをいい、再帰呼出しを行っても正しい結果を返すことができる性質をもつプログラムを「再帰的プログラム」といいます。長くなりますが、再帰関数の動作を理解するために例を挙げて説明します。nの階乗を再帰的に計算する関数F(n)が次のように定義されていたとします。使って「n!」と表記されます。あれば、3×2×1=6というように計算します。計算すると、以下のように実行途中で自分自身の呼び出しを伴います。F(2)を呼び出すF(2)=2×F(2-1)//F(1)を呼び出すF(1)=1×F(1-1)//F(0)を呼び出すF(0)=1//F(1)の処理に戻るF(1)=1×1=1//F(2)の処理に戻るF(2)=2×1=2//F(3)の処理に戻るF(3)=3×2=6上記のように再帰的な処理では、ある関数の処理中に同じ関数(自分自身)を呼び出し、呼び出した関数の処理が終わると呼出し元の処理に戻ります。このような手順で処理されるため、最終的に正しい結果を得るためには、自分自身を呼び出した時点での呼出し元側の途中経過を記憶しておかなければなりません。再帰的な処理では、実行中に自分自身が呼び出された場合にそこまでの実行途中の状態を、スタックと呼ばれるデータ構造に格納しておきます。n=0のときにF(0)が1を返し、呼出し元の処理に戻っていく過程では、最後に積み上げたものから順にF(1)、F(2)、F(3)と値が返ってきて計算されます。いうように後から入れたものから順にその値を使用します。First-Out,後入れ先出し)の記憶管理方式を用いて実現されています。したがって正解は「ウ」です。fe-siken.com▲Pagetop。