求详细过程谢谢~~~
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.
(纯手工打字,纯人脑编译器,不知道结果正不正确,但流程顺序是没错的)
另外献丑画了张流程图,希望不会帮倒忙!
舒仕福
2023-07-11 广告
2023-07-11 广告
咨询舒仕福商务咨询(北京)有限公司,Safeguard Global 十多年来已经帮助世界各地近千家企业在其全球化的过程中提供专业的人力资源管理解决方案,利用更智能、更高效的薪资、入职、工时考勤和费用管理及其他手段,帮助企业走向成功。...
点击进入详情页
本回答由舒仕福提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询