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