以下程序的输出结果是( )。 int f(int a[],int n) main() {if(n>1) {int a[]:{8,2,9,1,3,6,4,7,5}; {i

admin2020-07-28  19

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

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

答案A

解析 本题考查递归调用。主函数中调用f(a,9),递归函数的调用过程如下:f(a,9)→f(a,8)→f(a,7)→(a,6)→(a,5)→(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。
转载请注明原文地址:https://kaotiyun.com/show/Lo3p777K
0

最新回复(0)