问题
单项选择题
有以下程序: fun(int x) { int p; if(x==0‖x=1)return(3); p=x-fun(x-2);return p; } main() { printf("%d\n",fun(7);} 执行后的输出结果是( )。
A.7
B.3
C.2
D.0
答案
参考答案:C
解析:本题的fun()函数在x等于0或1时返回3,而在其余情况下返回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-0)=7-5=2。故本题应该选择C。