《面向对象程序设计C++》期末考试试卷(B)标准答案
班级: 姓名: 学号: 分数:
题号 得分 一 二 三 四 总分 一、单项选择题(每小题2分,共40分)
1-5.D A C A D 6-10.D B C D C 11-15.D C B D B 16-20.A D C C C
二、填空题(前16个空,每空1分,后2个空,每空2分,共20分)
1. 抽象 、 实例 2. public 、 private _ ___、 protected 、 private _ ___ 3. virtual ___ 4. friend void fun(A &a) _ 5. 静态数据成员 、 静态成员函数 6. 结合性 、 优先级_ ___ 7. Template 、 class(或typename) 8. 类 、 结构体 ___ 9. 在创建对象时初始化对象的数据成员 ___ 10. A operator++(int) ___ 三、阅读程序(共13分) 1、a=89,b=56,c=12 2、 12/31/2009 12/31/2009 1/1/2010 1/1/2010
第 11 页
3、constructing A
constructing B constructing C destructing C destructing B destructing A 四、编程题(共27分) 1、(10分)
Complex::Complex(){real=0;imag=0;} Complex::Complex(double r){real=r;}
Complex::Complex(double r,double i){real=r;imag=i;} Complex operator+(Complex &c1,Complex &c2) { Complex c;
c.real=c1.real+c2.real; c.imag=c1.imag+c2.imag; return c; }
ostream& operator << (ostream& output,Complex& c) { output<<\ return output; }
istream& operator >> (istream& input,Complex& c)
{ cout<<\ input>>c.real>>c.imag; return input;
第 12 页
}
2、(17分)
class Circle:public Shape {public:
Circle(double r){radius=r;}
void set()
{ cout<<\ }
cin>>radius;
void show()
{ cout<<\
}
double area() {return 3.14159*radius*radius;} private: };
class Square:public Shape {public:
Square(double a){this->a=a;}
void set()
{ cout<<\ }
cin>>a; double radius;
void show()
{ cout<<\
}
double area(){return a*a;} private:
double a;
第 13 页
}; int main() { }
Circle C(5.5); C.show(); Square S(9.9); S.show();
Shape *s[]={&C,&S};
cout<<\return 0;
第 14 页