问题 填空题

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

/*************found**************/
switch(g);
case 0:return 0;
switch(g)
case 1; case 2:return 1;

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

main()

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

答案

参考答案:错误:switch(g); 正确:去掉分号
(2)错误:case 1;case 2:return 1: 正确:case 1:case 2:return 1;

解析: C语言中,Switch语句之后不能有分号,并且Case语句常量后应用的是冒号。

单项选择题
单项选择题