单选题
有以下程序:
#include<stdio.h>
int f(int x[],int n)
{if(n>1)
return f(x,n-1)+x[n-1]*10;
else
return x[0];
}
main()
{ int a[6]={1,2,3,4},y;
y=f(a,4);
printf("%d",y);
}
程序执行后的输出结果是______。
【正确答案】
A
【答案解析】[解析] 函数f是递归函数,当参数n大于1时,函数返回f(x,n-1)+x[n-1]*10;若参数n不大于1时,返回x[0]。所以main()函数中f(a,4)等价于f(a,3)+x[3]*10;等价于f(a,2)+x[2]*10+x[3]*10;等价于f(a,1)+x[1]*10+x[2]*10+x[3]*10;等价于x[0]+x[1]*10+x[2]*10+x[3]*10;其中x[0]值为1,x[1]值为2,x[2]值为3,x[3]值为4,所以y的值为:91。故本题答案为A选项。