问题 填空题

下列给定程序中.函数fun的功能是按以下递归公式求函数值。
例如,当给n输入3时,函数值为60;当给n输入6时,函数值为480。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
//************found*************
fun(int n);

int j;
//************found*************
if(n=1)
j=15;
else
j=fun(n=1) *2;
return(j);

void 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)

解析: 根据C语言的语法规则,函数定义之后是不加分号的。由整个程序看,函数fun是函数定义。因此“fun(int n);”应改为“fun(int n);”表达式n=1表示的是将1赋给变量n.显然是不对的。这里应该判断变量n是否等于1。因此if(n=1)应改为if(n==1)。

选择题
单项选择题