以下程序运行后的输出结果是______。 int f(int a[],int n) { if(n>=l) return f(a,n-1)+a[n-1]; else return 0;

admin2013-02-23  44

问题 以下程序运行后的输出结果是______。
   int f(int  a[],int  n)
   {
     if(n>=l)
        return f(a,n-1)+a[n-1];
     else
        return   0;
   }
   main { )
   {
     int aa[5]={1,  2,  3,  4,  5},  s;
     s=f(aa,5);
     printf{’%d\n",s);
   }

选项

答案15

解析 在函数f()中只有一条if语句,如果n不小于1,则返回f(a,n-1)+a[n-1);,否则返回0。所以f(aa,5)返回f(aa,4)+aa[4],而f(aa,4)返回f(aa,3)+aa[3]……直到f(aa,0)返回0.故f(aa,5)实际返回值是0+aa[1]+aa[2]+aa[3]+aa[4]+ aa[5],所以本题最终输出15。
转载请注明原文地址:https://jikaoti.com/ti/PRB0FFFM
0

最新回复(0)