本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

平成18年度 技術士第一次試験問題【専門科目】

W−5

C言語で、次のように定義されたfibonacci 関数を以下のように呼び出した。このとき変数 x に代入される値を@〜Dの中から選べ。
関数の定義:
 int fibonacc ( int a, int b, int n ) {
  if ( n == 1 ) { return a; }
  else if ( n = 2 ) { return b; }
  else { return fibonacci( a, b, n-2 ) + fibonacci( a, b, n-1 ); }
 }
関数の呼出し:
 int x = fibonacci( 5, 7, 5 );

@ 12  A 19  B 31  C 50  D 81


類題

H25 V-1


正解

B


解説

x = fibonacci(5, 7, 5)
= fibonacci(5, 7, 5-2) + fibonacci(5, 7, 5-1)
= fibonacci(5, 7, 3) + fibonacci(5, 7, 4)
= fibonacci(5, 7, 3-2) + fibonacci(5, 7, 3-1)
 + fibonacci(5, 7, 4-2) + fibonacci(5, 7, 4-1)
= 5 + 7 + 7 + fibonacci(5, 7, 3)
= 19 + fibonacci(5, 7, 3-2) + fibonacci(5, 7, 3-1)
= 19 + 5 + 7
= 31

よって、x = 31

W−4 目次 W−6