
求详细过程谢谢~~~
1个回答
2016-06-21
展开全部
程序从main函数进入,然后执行printf函数,再执行了func函数,在func函数内部,x的值为4,判断如果x等于0或1则返回2,x等于4,但条件不成立,往下执行,将p赋值为x*finc(x-4)的值,此时递归调用func函数,x等于3,依然不成立第一个if语句,再次执行第二个p=x*func(x-1),再次递归调用func函数,x等于2,依然不满足第一个条件,再次执行给p赋值的操作,再次递归调用func函数,此时x=1,此时满足了第一个fi语句,返回2,则返回到了上次调用func函数的地方,将p赋值为x*返回值2,此时func函数中的x为2,p=2*2=4;
于是程序往下执行,(执行上次未执行完的代码)返回p(4),然后再次返回到给p赋值的地方,此时的x是第二次调用的3,将p赋值为3*4,p=12,然后返回p(12)
此时回到第一此调用时的4,所以p=4*12=48;然后返回p,然后返回到main函数中,打印func的返回值48.
(纯手工打字,纯人脑编译器,不知道结果正不正确,但流程顺序是没错的)
另外献丑画了张流程图,希望不会帮倒忙!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询