问题 问答题

下列给定程序中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:1,1,2,3,5,8,13,21,…
请改正程序中的错误,使它能得出正确结果。
注意:不要改动mam函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
long fun (int g)

/**********found********** /
switch (g);

case 0 :return 0;
/**********found********** /
case 1; case 2 : return 1;

return (fun (g-1)+fun (g-2));

void main ()
long fib; int n;
printf ("Input n:");
scanf ("% d", &n);
printf ("n=%d\n", n);
fib=fun (n);
printf(" fib=% d\n\n", fib);

答案

参考答案:去掉分号
(2) case 1:case 2:return 1;
答案考生文件夹

解析: 本题考查:switch语句,其一般形式为:
switch(表达式){
case常量表达式1: 语句1;
case常量表达式2: 语句2;
……
case常量表达式n: 语句n;
default: 语句n+1;
}
其中switch(表达式)后不应该带有";",同时case语句常量后应该是":"。
[解题思路] C语言中,switch语句之后不能有分号,并且case语句常量后应用的是冒号。

填空题
单项选择题