問題
再帰呼出しとは何か。
選択肢
- 1関数が自分自身を呼び出す処理
- 2反復処理より常に高速
- 3無限ループにならない
- 4メモリ一定
正解
1. 関数が自分自身を呼び出す処理
詳しい解説を見る解説を閉じる
解説
再帰呼出しとは、関数(手続)が処理の中で自分自身を呼び出す方式である。階乗の計算(n!=n×(n−1)!)、フィボナッチ数列、クイックソート、木構造の走査など、同じ構造の小さな問題に分解できる処理を簡潔に記述できる。正しく動作させるには再帰を止める終了条件(基底ケース)が必須であり、これがないと呼出しが無限に続きスタックオーバーフローが発生する。反復処理より常に高速という記述は誤りで、関数呼出しのオーバーヘッドにより一般にループより遅く、呼出しの深さに応じてスタックのメモリ消費も増えるため「メモリ一定」も誤りである。基本情報技術者試験では再帰関数のトレース(与えられた引数に対する戻り値の計算)が頻出であり、終了条件の役割もよく問われる。
一問一答
科目A 180問+科目B 60問