发布时间 : 星期三 文章C++面向对象程序设计试题集更新完毕开始阅读d8771a49fe4733687e21aa6a
?1111?2111?A=?3211??4321?5432?
1??1?1? ?1?1??#include
using namespace std; int main() {
int a[5][5]; int ii,jj; for (ii = 0; ii< 5; ii++) { for (jj = 0; jj < 5; jj++) { if (ii - jj < 1) { a[ii][jj] = 1; } else { a[ii][jj] = ii+1 - jj; } } } for(ii=0;ii<5;ii++) { for(jj=0;jj<5;jj++) cout< } 23、定义盒子Box 类,要求具有以下成员:可设置盒子形状;可计算盒子体积;可计算盒子的表面积。 #include public: Box(double,double,double); double area(); double v(); private: double x,y,z; }; Box::Box(double x1,double y1,double z1) { x=x1; y=y1; z=z1; } double Box::area() { return (2*(x*y+y*z+x*z)); } double Box::v() { return (x*y*z); } int main() { Box B(2,3,4); cout<<\表面积:\ cout<<\体积:\ return 0; } 24、33、声明一个哺乳动物Mammal 类,再由此派生出狗Dog 类,声明一个Dog 类的对象,观察基类与派生类的构造函数与 析构函数的调用顺序。 #include public: mammal()//默认构造函数 { cout<<\ } ~mammal() { cout<<\ } }; class dog :public mammal { public: dog() { cout<<\ } ~dog() { cout<<\ } }; int main() { dog a; return 0; } 25、30、定义一个基类有姓名、性别、年龄,再由基类派生出教师类和学生类,教师类增加工号、职称和工资,学生类增 加学号、班级、专业和入学成绩。 #include public: person(string ,string,int); protected: string name; string sex; int age; }; person::person(string n, string s, int a) { name=n; sex=s; age=a; } class teacher :public person { public: teacher(string ,string,int,string,string,double); void display(); private: string work_num; string title; double wage; }; teacher::teacher(string n, string s, int a, string wo, string t, double wa):person( n,s,a) { work_num=wo; title=t; wage=wa; } void teacher::display() { cout<<\姓名:\性别:\年龄:\ cout<<\工号:\职称:\工资:\} class student: public person { public: student(string,string,int,string,string,string,double); void show(); private: string num; string grade; string major; double score; }; student::student(string n, string s, int a, string nu, string g, string m, double sc):person(n,s,a) //注意: 只写 n,不是string n { num=nu; grade=g; major=m; score=sc; } void student::show() { cout<<\姓名:\性别:\年龄:\ cout<<\学号:\年级:\专业:\入学成绩:\} int main() { teacher t(\侯传旺\男\教授\ t.display(); student s(\秦洪敏\女\大二\应用心理学\ s.show(); return 0; } 26、写一个Complex类,将运算符“+”重载为适用于复数加法,重载函数不作为成员函数,而放在类外,作为Complex类的 友元函数。如例题10.3 #include private: double a; double b; public: complex(); complex(double i,double j); friend complex operator +(complex&,complex); void setreal(double x); void setimag(double y); void getreal(); void getimag(); friend ostream& operator <<(ostream& out,complex& x); friend istream& operator >>(istream& in,complex& x); }; complex::complex():a(0),b(0){} complex::complex(double i,double j):a(i),b(j){} complex operator +(complex&x,complex y) { y.a+=x.a; y.b+=x.b; return complex(y.a,y.b); } ostream& operator<<(ostream& out,complex &x) { out< istream& operator >>(istream& in,complex& x) { in>>x.a>>x.b; return in; } void complex::setreal(double x){a=x;} void complex::setimag(double y){b=y;} void complex::getreal() {cin>>a;} void complex::getimag() {cin>>b;} int main() { complex a; complex b; cin>>a>>b;