A-A+

下面程序的运行结果是【 】。 include <stdio.h> fun(int t[] i

2022-08-12 18:52:15 问答库 阅读 197 次

问题详情

下面程序的运行结果是【 】。 include <stdio.h> 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));请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:11
main函数调用fun函数时,将10赋给n,形参数组t与实参数组a共用一段内存空间。执行if-else语句时,n=10,所以执行else子句。由于n>=2成立,执行m=fun(t[0],9),递归调用fun函数,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。

考点:程序