下列程序的输出结果是( )。 #include<stdio.h> int fun(intx) { int a; if(x==0‖x==1) return 3; else

admin2010-12-10  35

问题 下列程序的输出结果是(    )。    #include<stdio.h>    int fun(intx)    {    int a;         if(x==0‖x==1)              return 3;         else              a=x-fun(x-2);         return a;    }    void main()    {  printf("%d",fun(7));    }   

选项 A、2     
B、8
C、9     
D、5

答案A

解析  本题考查函数的递归调用。
在函数递归调用时,fun(7):a=7-fun(5)→fun(5):a=5-fun(3)→fun3:a=3-fun(1)→fun(1):a=3,反推回去 fun(3):a=3-3=0→fun(5):a=5-0=5→fun(7):a=7-5=2,最后的计算结果为2。
转载请注明原文地址:https://jikaoti.com/ti/DKB0FFFM
0

最新回复(0)