有以下程序: fun(int x) { int p; if(x==0‖x=1)return(3); p=x-fun(x-2); return p; } main() { printf("%d

admin2009-01-15  21

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

答案4

解析 本题的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。
转载请注明原文地址:https://kaotiyun.com/show/UoXp777K
0

最新回复(0)