有以下程序         int fun(int n)         { if(n=1) return 1;           else              return(n+fun(n-1));         }         main(

admin2009-03-05  29

问题 有以下程序         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。
转载请注明原文地址:https://kaotiyun.com/show/JlXp777K
0

最新回复(0)