A-A+

若有以下程序 intflinta[] intn) { if(n>1) { intt;t=f(

2022-08-12 18:58:26 问答库 阅读 197 次

问题详情

若有以下程序 intflinta[],intn) { if(n>1) { intt;t=f(a,n-1); returnt>a[n-1]? t:a[n-1];} elsereturna[0];} main() { inta[]={8,2,9,1,3,6,4,7,5}; printf(%dha,f(a,9));} 则程序的输出结果是
A.9
B.1
C.8
D.53.7局部变量和全局变量

请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案: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。

考点:程序