问题
单项选择题
有以下程序int fun(int n){ if(n==1) return 1;elsereturn(n+fun(n-1));}main(){ int x;scanf("%d",&x);x=fun(x);printf("%d\n",x);}执行程序时,给变量x输入10,程序的输出结果是______。
A.55
B.54
C.65
D.45
答案
参考答案:A
解析:此题考核的知识点是函数的递归调用,即在调用一个函数的过程中又出现直接或间接地调用该函数 本身。函数调用中因为实参 x=10 不符合条件语句 n==1,所以执行 else 语句,调用 fun 函数。fun 函数共被 调用 8 次,即 fun(9)、fun(8)、fun(7)、fun(6)、fun(5)、fun(4) 、fun(3) 、fun(2),n=10+9+8+7+6+5+4+3+2+1=55,所以 x=55。