问题 问答题

下列给定程序中,函数fun的功能是按以下递归公式求函数值。

例如:当给n输入5时,函数值为240;当给n输入3时,函数值为60。

请改正程序中的错误,使它能得到正确结果。

注意;不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include <stdio.h>

/*************found****+*******/

fun(int n);

int c;

/*************found********+*****/

if(n=1)

c=15;

else

c=fun(n-1)*2;

return(c);

main()

int n;

printf("Enter n:");

scanf("%d",&n);

printf("The result:%d\n\n",fun(n));

答案

参考答案:

(1)错误:fun(int n); 正确:fun(int n)

(2)错误:if(n=1) 正确:if(n==1)

解析:

错误1:该行是函数的首部,不是一条语句,因此不能以分号结束。错误2:if垢面应该紧跟一个条件判断表达式,若写成“if(n=1)”,则说明该表达式的值永远为真,也就是说这个条件永远成立,没有递归执行。

单项选择题
单项选择题