问题
填空题
请补充函数fun(),函数fun()的功能是求7的阶乘。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
long fun(int n)
if( 【1】 )
return(n*fun( 【2】 );
else if( 【3】 )
return 1;
main()
int k=7;
printf("%d!=%ld\n", k, fun(k));
答案
参考答案:[1]n>1 [2]n-1 [3]n==1
解析: 填空1:求阶乘时采用递归的算法,n>1和n==1这两种情况的处理方法不同,需要分开考虑。填空2:阶乘的算法是,当n>1时,n!=n*(n-1)!,即fun(n)=n*fun(n-1)。填空3:n==1是递归的终止条件,因为1!=1,所以当n=1时,返回1。