若有以下程序 int flint a[],int n) {if(n>1) {int t;t=f(a,n-1); return t>a[n-1]?t:a[n-1];) else return a[0];} main() {inta[]={8,2,9,1,3,

admin2019-12-17  16

问题 若有以下程序
int flint a[],int n)
{if(n>1)
{int t;t=f(a,n-1);
return t>a[n-1]?t:a[n-1];)
else return a[0];}
main()
{inta[]={8,2,9,1,3,6,4,7,5};
printf("%d\n",f(a,9));
}
则程序的输出结果是

选项 A、9
B、1
C、8
D、5

答案A

解析 主函数中调用f(a,9),递归函数的调用过程如下:f(a;9)->f(a,8)->f(a,7)->f(a,6)->f(a,5)->f(a,4)->f(a,3)->f(a,2)->f(a,1),f(a,1)得到返回值为a[0],值为8,递归过程开始回归,回归过程描述如下:8>a[1],返回8->8>a[2]不成立,返回a[2]的值为9……因此函数f的主要功能为计算数组中的最大值。主函数中输出最大值为9。
转载请注明原文地址:https://kaotiyun.com/show/nsCp777K
0

相关试题推荐
最新回复(0)