若有以下程序 #include <stdio.h> int f(int a[], int n) { if (n > 1) { int t; t=f(a, n-1);

admin2021-04-28  29

问题 若有以下程序
     #include <stdio.h>
     int  f(int  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()
     {  int  a[] = {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),递归执行(a, 8)直到(a, 2),得到a[0]=8,然后判断a[0]是否大于a[1],本题实际上就是求出数组a元素的最大值。答案为9,选项A正确。
转载请注明原文地址:https://jikaoti.com/ti/6Sz0FFFM
0

最新回复(0)