求这个函数在计算机中每一步的执行过程!!

#include<stdio.h>intf(intn);intmain(void){printf("%d\n",f(5));}intf(intn){if(1==n)ret... #include<stdio.h>
int f(int n);
int main(void)
{
printf("%d\n",f(5));
}
int f(int n)
{
if(1==n)
return 1;
else
return f(n-1)*n;
}
展开
 我来答
幽兰书生823
2014-05-04 · TA获得超过1048个赞
知道小有建树答主
回答量:301
采纳率:100%
帮助的人:255万
展开全部
整个程序执行过程如下:
1)从mian()函数开始,到输出语句中printf处
2)此时需要调用f(int n)函数来求f(5).
3)求f(5)过程如下:
①n=5,f(int n)函数由于n≠1,执行else分支,返回值为f(5-1)*5,即f(5)=f(5-1)*5;
②f(5)=f(5-1)*5中,f(5-1)实际也就是f(4),还是需要调用f(int n)函数,此时n=4,调用f(int n)
③n=4,f(int n)函数由于n≠1,执行else分支,返回值为f(4-1)*4,即f(4)=f(4-1)*4
④同②③一样,求f(3),f(2)
⑤当求f(1)时,n=1,执行if(1==n) return 1;分支,即f(1)=1
则整个f(5)=f(4)*5=f(3)*4*5=f(2)*3*4*5=f(1)*2*3*4*5=1*2*3*4*5
此时递归调用完成。
4)将1*2*3*4*5的乘积赋值给输出函数对应的%d。
5)mian函数返回个整数(0/1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式