A-A+

有以下程序: fun(int x) { int P; if(x==0 || x==l)ret

2022-08-06 03:18:12 问答库 阅读 175 次

问题详情

有以下程序: fun(int x) { int P; if(x==0 || x==l)return(3); p=x-fun(x-2); return p; } main {printf("%d\n",fun(7));} 程序执行后的输出结果是()。
A.7
B.3
C.2
D.0请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:C
在函数funlintx)中,有个if语句判断,如果参数x等于0或1时,返回值,否则进入下面的p=x-fun(x-2)递归函数。当在主函势中调用fun(7)时,其过程为:“fun(7)=7-fun(5)=7-(5一fun(3))=7-(5-(3-fun(1)))=7-(5-(3—3))=7-5=2”,所以最后的输出结果为2。

考点:程序