问题 填空题

下列给定程序中,函数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语句常量后应用的是冒号。

单项选择题
名词解释