1. 下面的程序包含函数sumAll的定义以及测试这个函数的主程序,函数sumAll用递归调试的方法计算并返回数组a的size个元素和
#include <iostream.h>
int sumAll(int a[],int size)
{
if(size==1) return _________;
return a[0]+____________;
}
void main()
{
int d[]={1,2,3,4,5};
cout<<sumAll(d,sezeof(d)/sezeof(d[0]));
}
[要求]
(1) 把程序中横线中填入其中
(2) 运行程序,判断程序的正确性(应为15)
(3) 把主程序中的定义改为
int d[]={2,4,6,8,10,12,14,16};
后运行程序看是否能正确输出。
2. 已知两个函数定义是同一函数板的两个实例:
double Mean(int a[],int size)
{
int s=0;
for(int i=0;i<size;i++) s+=a[i];
return double(s)/size;
}
double Mean(float a[],int size)
{
float a=0;
for(int i=0;i<size;i++K) s+=a[i];;
return double(s)/size;
}
试设计此函数模板
[要求]测试函数模板时,分别用下列数组作为实参:
(1) int a[]={1,3,5,7,9,11};
(2) double a[]={1,2,4,8,16,32,64};
(3) float a[]={1,-1,2,-2,3,-3,4,-4};
(4) long a[]={2,3,5,7,11,13,17,19,23};