基本情報トップに戻る
B難易度: 標準2026年度

基本情報技術者 予想問題B 第67問

問題

次の擬似言語プログラムで、n=3のとき関数h(n)の戻り値はいくつか。 整数型: h(整数型: n) if (n = 0) return 1 endif return 2 × h(n - 1)

選択肢

  1. 1ア 4
  2. 2イ 6
  3. 3ウ 8
  4. 4エ 16

正解

3. ウ 8

詳しい解説を見る

解説

関数hは、n=0のとき1を返し、それ以外は2×h(n−1)を返す再帰関数である。h(3)を展開すると、h(3)=2×h(2)、h(2)=2×h(1)、h(1)=2×h(0)、h(0)=1(基底条件)。ここから順に値を戻すと、h(1)=2×1=2、h(2)=2×2=4、h(3)=2×4=8となり、ウが正解である。この関数は2のn乗を計算するものである。アの4はh(2)に相当し再帰を1段少なく数えた誤り、イの6は2×3のように乗算の意味を取り違えた値、エの16はh(4)に相当し1段多く展開した誤答である。頻出ポイント:再帰関数のトレースは、基底条件に達するまで呼び出しを展開し、そこから逆順に値を確定させるのが定石である。階乗やフィボナッチ数列を題材にした同型の問題が繰り返し出題されている。

一問一答

科目A 180問+科目B 60問

Bの関連問題

この調子で演習を続けよう

スキマ資格では基本情報の全2398問を分野別・難易度別に体系的に学習できます。基本情報技術者は科目A(広く浅く)と科目B(プログラミング・アルゴリズム)の両輪での対策が必要です。