问答题
使用VC6打开考生文件夹下的源程序文件modi2.clap。完成函数fun(int a口,int n),实现递归函数fun(hat 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))<<end1; return; }
【正确答案】正确答案:if(n>0) return a[n一1]+fun(a,n一1); //递归求n项的和 return 0; //项数小于等于0,返回求和值0
【答案解析】解析:(1)该程序功能是利用递归实现数组前n项的和。函数的递归是在调用一个函数的过程中出现直接或间接调用该函数本身。 (2)从已给部分源程序的main主函数开始入手,核心函数int fun(int a[],int n)中调用该函数本身,利用递归调用实现计算结果,其中参数a为数组名,n为要求和的项数。