试题题干
用递归方法写出计算n的阶乘的函数,调用该函数计算并输出n=0, 1, 2, ……, 10时各阶乘的值。

long fac (int n)
{
if (________)return (1); /* 第一空 */
else return ________; /* 第二空 /
}
main ( )
{
int m; long int fa;
for (m=0; m<=10; m++)
{
________; /* 第三空 */
printf (″%d!=%1d\n″, m, fa);
}
}
参考答案
试题解析
因为if语句之后的表达式为return (1),即if语句中的表达式为n==0||n==1,故第一空填入n==0||n==1;
else返回的值是当n>1时的表达式,即第二空填入n*fac(n-1);
在主函数中要调用函数fac(),且输出的是fa,即第三空应填写fa=fac(m)。