问题
填空题
请补充函数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。