运行下列程序后,输出结果是()
longfun(int n)
{long s;
if(n==1||n==2) s=2;
else s=n-fun(n-1);
return(s);
}
main()
{printf("%ld\n",fun(5));}
A、
1
B、
2
C、
3
D、
5
【正确答案】:B
【题目解析】:
本题的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(5)=5-(4-(3-2))=2