应用题 1. 使用VC++2010打开考生文件夹下“proj3”文件夹中的工程proj3.sln。完成函数fun(int a[], int n),实现递归函数fun(int a[], int n)的返回值是数组a[]的前n个元素之和。注意:不能修改程序的其他部分,只能修改fun()函数。
    #include<iostream.h>
    int fun(int a[],int n)
    {
    }
    void main()
    {
    int A[]={1,2,3,4};
    cout<<fun(A,sizeof(A)/izeof(int))<<endl;
    return;
    }
【正确答案】if(n>0)
   return a[n-]+fun(a, n-1); //递归求n项的和
   return 0; //项数小于等于0,返回求和值0
【答案解析】 (1)该程序功能是利用递归实现数组前n项的和。函数的递归是在调用一个函数的过程中出现直接或间接调用该函数本身。
   (2)从己给部分源程序的main主函数开始入手,核心函数int fun(int a[], int n)中调用该函数本身,利用递归调用实现计算结果,其中参数a为数组名,n为要求和的项数。
   (3)如果要计算的项数小于等于0,那么直接返回0。
   (4)否则调用递归语句“a[n-1]+fun(a, n-1)”,实现0到第n项的和。