基本情報技術者試験 過去問解説
再帰とは?基本情報技術者試験 平成30年度 秋期 午前 問7を解説
基本情報技術者試験 平成30年度 秋期 午前 問7は、再帰に関する理解を問う問題です。検索から入っても、問題文、選択肢、正解、解説、各選択肢がなぜ違うかをこのページだけで確認できます。
問題文
プログラムのコーディング規約に規定する事項のうち,適切なものはどれか。
この問題の出題ポイント
- 再帰の定義だけでなく、問題文中の条件がどの選択肢に当てはまるかを確認する。
- 関連タグ: 再帰、数値表現。
選択肢
- ア局所変数は,用途が異なる場合でもデータ型が同じならば,できるだけ同一の変数を使うようにする。
- イ処理性能を向上させるために,ループの制御変数には浮動小数点型変数を使用する。
- ウ同様の計算を何度も繰り返すときは,関数の再帰呼出しを用いる。
- エ領域割付け関数を使用するときは,割付けができなかったときの処理を記述する。正解
正解
エ: 領域割付け関数を使用するときは,割付けができなかったときの処理を記述する。
解説
領域割付け関数(malloc 等)が失敗した際の処理を記述しないと NULL 参照などの障害を招くため、エラー処理を必ず書くのが規約として適切です。エが正解。
なぜ他の選択肢が違うのか
ア
用途の異なる変数を流用すると可読性・保守性が下がるため避けるべきで、規約として不適切です。
イ
ループ制御変数に浮動小数点型を使うと誤差や性能劣化を招くため、整数型を使うのが原則です。
ウ
再帰呼出しはスタック消費や性能上のリスクがあり、繰り返し処理は反復構造で書くのが規約として一般的です。
エ(正解)
領域割付けの失敗処理を必ず記述することはセキュアコーディングの基本で、正解です。
解き方の整理
再帰の問題では、選択肢のキーワードだけで判断せず、問題文が示す条件と正解選択肢の説明が一致しているかを見ます。誤答選択肢は、似た用語を混ぜる、主体を入れ替える、目的や範囲を広げすぎる、という形で作られることが多いため、選択肢別解説まで確認しておくと復習効率が上がります。
関連問題
前後の問題
平成30年度 秋期 午前 の関連する問題
復習を続ける
間違えた問題、苦手タグ、模試履歴を保存して復習する導線を用意しています。広告なしPro、弱点分析、復習リマインダーは段階的に提供予定です。