问题
单项选择题
下述程序的输出结果是( )。
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
答案
参考答案:A
解析: 本题的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。