问题
填空题
下面程序的运行结果是: _________。fun(int t[],int n){ int i,m;if(n==1) return t[0];else if(n>=2) { m=fun(t,n-1); return m; }} main(){ int a[]={11,4,6,3,8,2,3,5,9,2};printf("%d\n",fun(a,10));}
答案
参考答案:K
解析:此题主要考核的知识点是数组名作为函数参数及函数调用和参数的传递。调用实参可知 n=10,形参 数组 t 指向实参 a 的首地址 t[0]=11。执行 fun()函数的 if-else 语句,因为 n=10 所以执行 else 语句,在满足 if(n>=2) 的条件下:m=fun(t[0],9), m=fun(t[0],8), m=fun(t[0],7),……..m=fun(t[0],2),.m=fun(t[0],1),当 n=1 时满足 if(n==1)的条件,所以执行此处的 return 语句,返回数组首地址指向的值 t[0],所以答案为 11。