填空题
下面程序的运行结果是{{U}} 【17】 {{/U}}。
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("%d/n",s);
}
【正确答案】
1、6
【答案解析】[解析] 经过分析将递归函数写成其数学表达式如下:
f(&a,n)=a[0]+f(&a[1],n-1) n>1
f(&a,n)=a[0] n=1
本题中定义了一个长度为3的数组aa并初始化。接着调用递归函数f(),由上面的数学表达式以计算其返回值s=1+2+3=6,所以空白处应该填6。