有以下程序#include int f(int n){if (n==1)return 1;elsereturn f(n-1)+1;//递归调用}int main(){int i,j=0;for(i=1;i<3;i++)j+=f(i);printf("%d\n",j);return 0;}程序运行后的输出结果是( )。
查看答案
对于以下递归函数,执行Fun(5)的输出结果是#include int Fun(int i){int sum=0;if (i==1)sum=1;elsesum=i+Fun(i-1);return sum;}int main(){printf("%d",Fun(5));return 0;}
A. 0
B. 1
C. 8
D. 15
以下说法正确的是( )
A. 既允许直接递归调用也允许间接递归调用
B. 不允许直接递归调用也不允许间接递归调用
C. 允许直接递归调用不允许间接递归调用
D. 不允许直接递归调用允许间接递归调用
在函数的调用过程中,如果函数funcA调用了函数funcB,函数funcB又调用了函数funcA,则
A. 称为函数的直接递归调用
B. 称为函数的循环递归调用
C. 称为函数的间接递归调用
D. C程序不允许这样的递归调用
下面的函数是用递归法计算一个十进制正整数n中0的个数。例如输入12004,应输出2;输入12345,应输出0。请补充完整程序中的空白部分,使程序能得出正确的结果。int count(int n){if (n>=0 && n<=9)return n==0?1:0;elsereturn count(_____)+count(n%10);}