本文へスキップ

FUNDAMENTAL INFORMATION TECHNOLOGY ENGINEER

基本情報技術者の問題解説

プログラムの基本要素 標準 fe_b_v89_alg_call_003

問題

次のプログラムを実行したときの戻り値はどれか。

○整数型: calc(整数型: n)
  if (n ≦ 1)
    return 2
  endif
  return n + calc(n - 2)

calc(6)を呼び出す。
  1. 12
  2. 14
  3. 21
  4. 8
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目B範囲

正解と解説

正解:14

正解:14

見る場所:再帰呼出しがn-1ではなくn-2で進む点を見る。calc(6)は6,4,2,0の順に下がり,n≦1で2を返して止まる。

呼出し戻り値
calc(0)停止条件2
calc(2)2 + calc(0)4
calc(4)4 + calc(2)8
calc(6)6 + calc(4)14

処理の追い方:停止条件のcalc(0)=2から戻り始め,calc(2)=4,calc(4)=8,calc(6)=14と積み上がる。

間違えやすい点:通常の1から6までの総和ではない。nを2ずつ減らすので,6+4+2に停止条件の2を足す。n=0の戻り値を0と見なすと12を選びやすい。

選択肢の見分け方:12は停止条件の2を足し忘れた値,21は1から6の総和を計算した値。

この問題について

出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目B範囲

公開問題・サンプル問題の形式、擬似言語記法、アルゴリズム読解・トレース・空欄補充・セキュリティ事例判断の傾向を参考にした独自問題です。本文・数値・選択肢は新規作成しています。

公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。

参考範囲: 2026年度現行科目B・シラバスVer.9.x参考

RELATED

関連問題