平成21年度 技術士第一次試験問題【専門科目】
【16】情報工学部門
W−3
C言語で、次のように関数 f を定義し、呼び出した。このとき変数 x に代入される
値を@〜Dの中から選べ。

 関数の定義:
  int f ( int n, int a, int b ) {
   if (n == 1) { return a; }
   else { return f ( n - 1, b, a + b ); }
  }
 関数の呼び出し:
  int x = f ( 6, 1, 1 );

 @ 5  A 6  B 7  C 8  D 13



【正解】 C

 f (
6, 1, 1 ) = f ( 6 - 1, 1, 1 + 1 )
= f (
5, 1, 2 ) = f ( 5 - 1, 2, 1 + 2 )
= f (
4, 2, 3 ) = f ( 4 - 1, 3, 2 + 3 )
= f (
3, 3, 5 ) = f ( 3 - 1, 5, 3 + 5 )
= f (
2, 5, 8 ) = f ( 2 - 1, 8, 5 + 8 )
= f (
1, 8, 13 ) = 8


EXCELのマクロのご相談なら ファーストマクロ 



W−2 目次 W−4
ファーストマクロ TOPページ