A-A+
下面程序的运行结果是【 】。 int f(int a[] int n) { if(n>1)
问题详情
下面程序的运行结果是【 】。 int f(int a[], int n) { if(n>1) return a[0]+f(&a[1],n-1); else return a[0]; ] main () { int aa[3]={1,2,3),s; s=f(&aa[0],3); printf("%dn",s); }
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:6
经过分析将递归函数写成其数学表达式如下:f(&a,n)=a[0]+f(&a[1],n-1)n>1f(&a,n)=a[0]n=1本题中定义了一个长度为3的数组aa并初始化。接着调用递归函数f(),由上面的数学表达式以计算其返回值s=1+2+3=6,所以空白处应该填6。