A-A+
有下列程序: int fun(int n) {if(n= =1))return l; els
问题详情
有下列程序: int fun(int n) {if(n= =1))return l; else return(n+fun(n-1)): } main() { int x; seanf("%d",&x);x=fun(x);printf("%d\n",x); } 执行程序时,给变量x输入l0,程序的输出结果是()。
A.55
B.54
C.65
D.45请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:A
本题在函数intfun(intn)的定义中又出现了对函数fun的调用,所以函数fun是递归函数。因而在主函数中调用x=fun(x)时,当输入10赋给变量X时,递归调用的过程为fun(10)=l0+fun(9)=10+9+fun(8)=10+9+8+fun(7)=10+9++8+7+fun(6)=10+9++8+7+6+fun(6)=10+9++8+7+6+5+fun(4)=10+9++8+7+6+5+4+fun(3)=10+9++8+7+6+5+4+3+fun(2)=10+9++8+7+6+5+4+3+2+fun(1)=10+9++8+7+6+5+4+3+2=55