下述程序的输出结果是( )。 long fun(int n) { long s; if(n==1||n==2) s=2; else s=n-fun(n-1); return s; } main()

admin2010-01-10  37

问题 下述程序的输出结果是(  )。    long fun(int n)    {  long s;    if(n==1||n==2)    s=2;    else    s=n-fun(n-1);    return  s;    }    main()    {    printf("%1d\n",fun(3));    }

选项 A、1
B、2
C、3
D、4

答案1

解析 本题的fun函数是一个递归函数,当参数n为1或2时返回2,否则返回n-fun(n-1)。递推下来就是n-fun(n-1)=>n- ((n-1)-fun(n-2))=>n-(n-1)+((n-2)-fun(n-3))=>……直到fun()函数的参数等于1或2,故fun(3)=3-fun(2)=3-2=1。所以答案是 A。
转载请注明原文地址:https://kaotiyun.com/show/2GWp777K
0

最新回复(0)