1、最最新面对对象程序设计试题 编程题 一、1.按照下面函数原型语句编写一个递归函数求出并返回数组a中n个元素的平方和。 int f(int a[],int n); int f(int a[],int n) { if(n==0) return 0; else return a[n—1]*a[n—l]+f(a,n—1); } 2.依照下面类中拷贝结构函数的原型写出它的类外定义。 class Array { int*a; //指向动态分派的整型数组空间 int n; //统计数组长度 public: Array(int aa[],int nn) ;
2、//结构函数,利用aa数组长度nn初始化n,
//利用aa数组初始化a所指向的数组空间 Array (const Array& aa) ; //拷贝结构函数
};
//在下面写出拷贝结构函数的类外定义
Array::Array(const Array& aa) {
n=aa. n;
a=new int[n] ;
for(int i=0;i 3、
{
int i;
int p=1;
int s=l;
for(i=l;i< =l0;i++) {p*=3;s+=p;}
cout< 4、) a[i]=aa[i];
}
int Min(); //从数组a的前n个元素中求出最小值并返回
};
int AA::Min()
{
int x=a[0];
£or(int i=1; i〈n; i++ )
if(a[i] 5、1) n=n—1;
for(i=2;i<=n;i+=2) s+=i*i;
cout<<"s="< 6、句编写一个递归函数求出并返回数组a中n个元素之和。
int f(int a[],int n);
int f(int a[],int n)
{
if(n==0) return 0;
else return a[n—l]+f(a, n—1);
}
注:if 语句可改写为 if(n==l) return a[0];
8.依照下面类中Max函数组员的原型和注释写出它的类外定义。
class AA {
int*a;
int n;
int MS;
public:
void InitAA(int aa[],int nn,int ms){
if (nn>ms) {c 7、out<<"Error!"< 8、如下:
void fun(char*a, int b[]);
void fun(char * a, int b口)
{
int i;
for(i=0;i<10 ;i++) b[i]=0;
while(*a){
int j=*a—'O';
if(j>-0 && j< = 9) b[j]++;
a++;
}
}
10.依照下面类中CompareBig函数组员的原型和注释写出它的类外定义。
class AA {
int* a;
int n;
int MS;
public:
void InitAA(int aa[],int nn, int ms) {
if(n 9、n>ms){cout〈<"Error!"< 10、 CompareBig (AA&b)
{
int k;
if(n>b.n) k=b.n;else k=n;
for(int i=0;i 11、
if(n==0) return 0;
else return a[n—1]*a[n—l]+f(a,n—1);
}
12.依照下面类中拷贝结构函数的原型写出它的类外定义。
class Array {
int *a: //指向动态分派的整型数组空间
int n; //统计数组长度
public:
Array(int aa[] ,int nn);//结构函数,利用aa数组长度nn初始化n,
//利用aa数组初始化a所指向的数组空间 Array(Array& aa) ; //拷贝结构函数
}
Array:: Array(Array&aa){
n=aa.n;
a=n 12、ew int[n];
for(int i=0;i 13、
int MS;
public:
void InitAA(int aa[],int nn, int ms){
if(nn>ms){cout<< "Error! "< 14、编写一个函数,求出并返回由字符指针a所指向的字符串中包括的字符’a’和'A'的总个数。•
int void fun(char* a);
int fun(char * a)
{
int i=0;
while( *a){
if( *a==’a’||*a==’A’) i++;
a++;
}
return i;
}
16.依照下面类中拷贝结构函数的原型写出它的类外定义。
class Array{
int *a; //指向动态分派的整型数组空间
int n; //数组长度
public:
Array(int aa[],int nn){ 15、 //结构函数
n=nn;
a=new int[n];
£or(int i=0; i 16、指针a所指向的字符串中包括的每种十进制数字出现的次数,把统计成果保存在数组b的对应元素中,该函数的原型如下。
void fun(char *a,int b[]);
void fun(char *a,int b[])
{
int i;
for(i=0;i<10;i++) b[i]=0;
while( *a) {
int j=*a—'0';
if(j>=0&& j<=9) b[j]++;
a++;
}
}
18.依照下面类中CotnpareBig函数组员的原型和注释写出它的类外定义。
class AA {
int * a;
int n;
int MS;






