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

admin2009-01-15  21

问题 以下程序运行后的输出结果是【  】。
int f (int a[],int n)
{
   if(n>=1)
       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://kaotiyun.com/show/5OHp777K
0

最新回复(0)