问题 单项选择题

有以下程序: 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。

选择题
单项选择题 共用题干题