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; }
第 9 页
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: double radius;
};
class Square:public Shape {public:
Square(double a){this->a=a;} void set()
{ cout<<\ cin>>a;
}
void show()
{ cout<<\
}
double area(){return a*a;} private: double a;
};
第 10 页
}
int main() { }
Circle C(5.5); C.show(); Square S(9.9); S.show();
Shape *s[]={&C,&S};
cout<<\return 0;
《面向对象程序设计C++》期末考试试卷
一、选择题(每小题3分,共48分。)
01、下列关于C++函数的叙述中,正确的是( C )。 A)每个函数至少要具有一个参数 B)每个函数都必须返回一个值
C)函数在被调用之前必须先声明 D)函数不能自己调用自己
02、下列关于类和对象的叙述中,错误的是( A )。
A)一个类只能有一个对象 B)对象是类的具体实例 C)类是对某一类对象的抽象 D)类和对象的关系是一种数据类型与变量的关系
03、在C++中,用于实现运行时多态性的是(D )。
A)内联函数 B)重载函数 C)模板函数 D)虚函数
04、下列关于运算符重载的叙述中,正确的是(B )。
第 11 页
A)通过运算符重载,可以定义新的运算符 B)有的运算符只能作为成员函数重载
C)若重载运算符+,则相应的运算符函数名是+ D)重载二元运算符时,必须声明两个形参
05、对于语句 cout< C)“x”是一个变量 D)“<<”称作提取运算符 06、有如下类声明,则类MyDERIVED中保护的数据成员和成员函数的个数是( )。 class MyBASE { private: int k; public: void set(int n){ k=n;} int get( )const{ return k;} }; class MyDERIVED: protected MyBASE { protected: int j; public: void set(int m, int n){ MyBASE::set(m); j=n;} int get( ) const { return MyBASE::get( )+j; } }; A)4 B)3 C)2 D)1 07、已知在一个类体中包含如下函数原型: Volume operator-(Volume)const;,下列关于这个函数的叙述中,错误的是( B )。 A)这是运算符-的重载运算符函数 B)这个函数所重载的运算符是一个一元运算符 C)这是一个成员函数 D)这个函数不改变类的任何数据成员的值 08、执行如下的程序段后,输出结果是( C )。 第 12 页
相关推荐: