《面向对象程序设计》
综
合
复
习
题
集
一、程序填充
1. 1. 已知一个类的定义如下:已知一个类的定义如下:已知一个类的定义如下:
#include<iostream.h>
class AA {
int a[10];
int n;
public: void SetA(int aa[], int nn); //void SetA(int aa[], int nn); //用数组用数组aa 初始化数据成员a , // //用用nn 初始化数据成员n
int MaxA(); //int MaxA(); //从数组从数组a 中前n 个元素中查找最大值个元素中查找最大值
void SortA(); //void SortA(); //采用选择排序的方法对数组采用选择排序的方法对数组a 中前n 个元素个元素
// //进行从小到大排序进行从小到大排序进行从小到大排序
void PrintA(); //void PrintA(); //依次输出数组依次输出数组a 中的前n 个元素,个元素,
// //最后输出一个换行最后输出一个换行最后输出一个换行
};
使用该类的主函数如下:使用该类的主函数如下:使用该类的主函数如下:
void main() {
int a[10]={23,78,46,55,62,76,90,25,38,42};
j开头的女英文名___AA x___;
x.SetA(a,8);少儿游戏大全
int ___m___;
_m=x.MaxA()___;
x.PrintA();
cout<<m<<endl;
}
该程序运行结果为该程序运行结果为该程序运行结果为: : 23 25 46 55 62 76 78 90
90melon是什么意思
(1) (2) (3)
2 2..class A {
char *a;
public:
A( ){ a=NULL;} _______________ // A( ){ a=NULL;} _______________ //定义无参构造函数,使定义无参构造函数,使a 的值为空的值为空 A(char *aa) {
a=_new char[strlen(aa)];
strcpy(a,aa); // strcpy(a,aa); //用用aa 所指字符串初始化a 所指向的动态存储空间所指向的动态存储空间 }
~A( ){ delete []a; } // ~A( ){ delete []a; } //定义析构函数,删除定义析构函数,删除a 所指向的动态存储空间所指向的动态存储空间 };
(1) (2) (3)
高考准考证打印3333..class A {
int a,b;
public:
A(int aa=0, int bb=0){ a=aa;b=bb;} // A(int aa=0, int bb=0){ a=aa;b=bb;} //分别用分别用aa 和bb 对应初始化a 和b };
main() {
A x(5),y(x) ; // A x(5),y(x) ; //定义类定义类A 的对象x 并用5初始化,同时定义y 并用x 初始化初始化
A *p=&x ; // A *p=&x ; //定义定义p 指针,使之指向对象x }
(1) (2) (3)
3.class A {
int a,b;
public:
___(1)__A_(int aa=0,int bb=0) // ___(1)__A_(int aa=0,int bb=0) //定义构造函数,使参数定义构造函数,使参数aa 和bb 的默认值为0, A=aa;b=bb; // A=aa;b=bb; //在函数体中用在函数体中用aa 初始化a ,用bb 初始化b };
main() { A *p1, *p2;
___(2)p1=new A();___ ; // ___(2)p1=new A();___ ; //调用无参构造函数生成由调用无参构造函数生成由p1指向的动态对象指向的动态对象 ___(3)_p2=new A(4,5)__ ; // ___(3)_p2=new A(4,5)__ ; //调用带参构造函数生成由调用带参构造函数生成由p2指向的动态对象,指向的动态对象, // //使使a 和b 成员分别被初始化为4和5
}
(1) (2) (3)
4. #include<iostream.h>
#include<stdlib.h>
class A { int *a; int n; int MaxLen;
public:
A(): a(0), n(0), MaxLen(0) {}
A(int *aa, int nn, int MM) {
n=nn;
致我们终将逝去的青春主题曲
MaxLen=MM;
if(n>MaxLen) exit(1);
___(1)_a=new int[MaxLen]__; // ___(1)_a=new int[MaxLen]__; //由由a 指向长度为MaxLen 的动态数组的动态数组 for(int i=0; i<n; i++) a[i]=aa[i];
苏州高博培训}
~A() {delete []a;}
int GetValue(int i) ___(2)___ // int GetValue(int i) ___(2)___ //函数体返回函数体返回a[i]a[i]的值的值的值
};
void main()
{
int b[10]={1,2,3,4,5,6,7,8,9,10};
A r(b,10,10);
int i,s=0;
for(i=0; i<10; i++); ___(3)___ // for(i=0; i<10; i++); ___(3)___ //把把r 对象的a 数据成员中的每个数据成员中的每个
// //元素值依次累加到元素值依次累加到s 中 cout<<"s="<<s<<endl;
}
(1) (2) (3)
5. #include<iostream.h> #include<stdlib.h>
class A {
favorite怎么读int *a; int n; int MaxLen;
public:
A(): a(0), n(0), MaxLen(0) {}
A(int *aa, int nn, int MM) {
n=nn;
MaxLen=MM;
if(n>MaxLen) exit(1);
a=new int[MaxLen];
___(1)___; // ___(1)___; //以以i 为循环变量把aa 数组中每个元素值数组中每个元素值 // //传送给传送给a 数组的对应元素中数组的对应元素中
}
~A();
int GetValue(int i) {return a[i];} // int GetValue(int i) {return a[i];} //函数体返回函数体返回a[i]a[i]的值的值的值
};
___(2)___ //___(2)___ //析构函数的类外定义析构函数的类外定义析构函数的类外定义
void main()
{
int b[10]={1,2,3,4,5,6,7,8,9,10}; A r(b,10,10);
int i,s=0;
___(3)___ ; // ___(3)___ ; //以以i 为循环变量,把r 对象的a 数据成员中的数据成员中的 // //每个元素值依次累加到每个元素值依次累加到s 中
cout<<"s="<<s<<endl;
}
(1) (2) (3)
6. 6. 一种类定义如下一种类定义如下一种类定义如下: :
class Goods
{
警惕的意思private:
char gd_name[20]; // char gd_name[20]; //商品名称商品名称商品名称
int weight; // int weight; //商品重量商品重量商品重量
static int totalweight; // static int totalweight; //同类商品总重量同类商品总重量同类商品总重量
public:
Goods (char*str,int w){ //Goods (char*str,int w){ //构造函数构造函数构造函数
strcpy(gd_name,str);
weight=w;
totalweight+=weight;
}
~ Goods (){totalweight -= weight;}
char* GetN(){___(1)___;} // char* GetN(){___(1)___;} //返回商品名称返回商品名称返回商品名称
int GetW(){return weight;}
___(2)___ GetTotal_Weight() { //___(2)___ GetTotal_Weight() { //定义静态成员函数返回总重量定义静态成员函数返回总重量定义静态成员函数返回总重量 ___(3)___;
}
}
(1) (2) (3)
7.
class Point
{
private:
int x, y; public:
Point(){x=y=0;}
Point(int x0,int y0) {x=x0;y=y0;}
int GetX() { return x; }
accompany什么意思int GetY() { return y; }
void Print(){cout<<"Point("<<x<<","<<y<<")"<<endl;} ___(1)___; // ___(1)___; //友元函数声明友元函数声明友元函数声明
___(2)___; // ___(2)___; //友元函数声明友元函数声明友元函数声明
};
Point operator+(Point& pt,int dd) // //加号操作符重载函数,实现加号操作符重载函数,实现Point 类对象与整数加法类对象与整数加法 {
Point temp=pt;
temp.x+=dd;
temp.y+=dd;
return temp;
}
Point operator+(Point& pt1,Point& pt2)
// //加号操作符重载函数,实现两个加号操作符重载函数,实现两个Point 类对象的加法类对象的加法 {
Point temp=pt1;
temp.x+=pt2.x;
___(3)___;
return temp;
}
contactperson(1) (2) (3)