??void main() ??{
?? My obj1; //更正_____________________________ ?? obj1.print(); ?? My obj2(3);
?? obj1.member=5; //更正__________________________ ?? My.SetMember(10); //更正_______________________ ?? obj1.print(); ?? obj2.print(); ?}
C++考前复习题集锦(第二部分)
1.一个三口之家,大家都知道父亲会开车,母亲会唱歌,但是只有家里人知道父亲还会修电视机.小孩既会开车又会唱歌也会修电视机,此外小孩还会会打乒乓球.母亲瞒着家人在外面做小工以补贴家用.试编程:
(1)让这三口之家从事一天的活动:先是父亲开车出去,然后母亲去工作(唱歌),母亲下班后去做两小时小工.小孩在俱乐部打球,父亲回家后,再开车玩,后又高兴地唱歌.晚上,小孩和父亲一起修理电视机.
(2)后来父亲的修电视机技术让大家知道了,父亲也经常为邻居修电视机.这时,程序要做什么变化?
2.重新编写以下程序,将函数leisure改为友元 #include
void setSize(int j){size=j;} int getSize(){return size;} };
class Boat{ int size; public:
void setSize(int j){size=j;} int getSize(){return size;} };
int leisure(int time,Car& aobj,Boat& bobj){ return time*aobj.getSize()*bobj.getSize(); }
int main(){ Car c1;
第 11页共 15页
c1.setSize(2); Boat.b1;
b1.setSize(3);
std::cout< 3.将下列程序中的友元改为普通函数,为此应增加类中访问私有数据的成员函数: class Animal{ int itsWeight; int itsAge; friend void setValue(Animal&,int,int); }; void setValue(Animal& ta,int tw,int tn){ ta.itsWeight=tw; ta.itsAge=tn; } int main(){ Animal peggy; setValue(peggy,7,9); } 4.下面程序错在哪里? #include double x; double y; public: void Set(double ix,double iy){ x=ix;y=iy;} double xOffset(){ return x; } double yOffset(){ return y; } double angle(){ return (180/3.14159)*atan2(y,x);} double radius(){return sqrt(x*x+y*y);} }; int main() { Point p; double x,y; cout<<”Enter x and y:\\n”; cin>>x>>y; p.Set(x,y); p.x+=5; p.y+=6; cout<<”angle=”< <<”,y offset=”< 第 12页共 15页 } 5.为图1设计一个类层次结构,其中的每个类都有构造函数,且有启动、停止操作.编制应用程序,创建大客车和本田小轿车,分别有启动和停止操作,输出一些标志性字串. 交通工具 飞机 汽车 火车 小汽车 工具书 轿车 大卡车 小面包车 大客车 奥迪 本田 6.写出下列程序的运行结果 #include 宝来 public: MyClass(); MyClass(int); ~MyClass(); void Display(); }; MyClass::MyClass(){cout<<”Constructing normally.\\n”;} MyClass::MyClass(int m):number(m){ cout<<”Constructing with a number:”< } void MyClass::Display() { cout<<”Displayanumber:”< MyClass obj1; MyClass obj2(20); obj1.Display(); obj2.Display(); } 第 13页共 15页 7.写出下列程序的运行结果,请用增加拷贝构造函数的办法避免存在的问题. #include int size; int* buffer; public: Vector(int s=100); int elem(int ndx); void display(); void set(); ~Vector(); }; Vector::Vector(int s){ buffer=new int[size=s]; for(int i=0;i int& Vector::elem(int ndx){ if(ndx<0||ndx>=size){ cout<<”error in index”< return buffer[indx] } void Vector::display(){ for(int j=0;j void Vector::set(){ for(int j=0;j } Vector::~Vector(){ delete[]buffer; } int main(){ Vector a(10); Vector b(a); a. set(); b. display(); } 8.阅读下列程序,写出运行结果,添上一个拷贝构造函数来完善整个程序. #include 第 14页共 15页 int* itsAge; public: CAT():itsAge(new int(5)){} ~CAT(){delete itsAge;} int GetAge() const {return *itsAge;} void SetAge(int age){ *itsAge=age;} }; int main(){ CAT frisky; cout<<”frisky`s age:”< cout<<”Creating boots from frisky\\n”; CAT boots(frisky); cout<<”frisky`s age:”< cout<<”frisky`s age:”< } 9.定义一个具有多态性的基类Shape,继承以下一些类:圆Circle类(坐标点和半径构成),长方形Rectangle类(两个不重合的坐标点构成),三角形Triangle类(三个互不重合的坐标点构成).定义一些操作,特别是定义求面积操作. 编制应用程序,按文件内容创建各类对象,放在Shape指针向量中.循环处理向量中的每个元素,求其面积. 第 15页共 15页