单选题 有如下程序:
#include<stdio. h>
int sum(int*array,int len)
{
if(len==0)
return array[0];
else
return array[0]+sum(array+1,len-1);
}
main()
{
int array[5]={1,2,3,4,5};
int res=sum(array,4);
printf("%d/n",res);
}
程序运行后的输出结果是______。
【正确答案】 A
【答案解析】[解析] 程序执行过程为:定义字符数组array,调用函数sum将数组首地址与4传入函数,len=4;len!=0递归调用sum(array+1,3)传入地址为数组第二个元素地址;len>0递归调用sum(array+1,2)传入地址为数组第三个元素地址;len>0递归调用sum(array+1,1)传入地址为数组第四个元素地址;len>0递归调用sum(array+1,0)传入地址为数组第五个元素地址,此时len=0,返回5;执行sum(array+1,1)余下语句,返回9;执行sum(array+1,2)余下语句,返回12;执行sum(array+1,3)余下语句,返回14;执行sum(array+1,4)余下语句,返回15,并输出。