问题
填空题
以下程序的输出结果是()。
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。