以下程序的输出结果是【 】。 int fun(int *x,int n) { if(n= =0) return x[0]; else return x[0]+fun(x+1,n-1); } main() { in

admin2009-03-17  26

问题 以下程序的输出结果是【 】。
int fun(int  *x,int n)
   { if(n= =0)  return x[0];
     else    return x[0]+fun(x+1,n-1);
   }
   main()
   { int a[]={1,2,3,4,5,6,7};printf("%d\n",fun(a,3));}

选项

答案10

解析 本题考查的是函数的递归调用。在调用一个函数的过程中又直接或间接的调用该函数本身。第一次调用时,指针x指向的是a[0],n的值为3,每调用一次n自减l,x加1,指向数组a中的下一个元素,当n为0时函数开始返回,最后的返回值等于a[0]+a[1]+a[2]+a[3]=10。
转载请注明原文地址:https://kaotiyun.com/show/qeXp777K
0

最新回复(0)