cout.fill('*'); cout.width(6); cout.fill('#'); cout << 123 << endl;
A)###123 B)123### C)***123 D)123*** 09、在下列函数原型中,可以作为类AA构造函数的是(B )。 A)void AA(int); B)int AA(); C)AA(int)const; D)AA(int);
10、下面四个选项中,( A)是用来声明虚函数的。
A)virtual B)public C)include D)using namespace 11、实现运行时的多态性要使用( D )。
A)重载函数 B)构造函数 C)析构函数 D)虚函数 12、要实现动态联编,必须通过( )调用虚函数。
A)对象指针 B)成员名限定 C)对象名 D)派生类名
13、以下( C )成员函数表示纯虚函数。
A)virtual int vf(int); B)void vf(int)=0;
C)virtual void vf()=0; D)virtual void vf(int){} 14、有如下类声明:class XA
{ private: int x;
public: XA(int n){ x=n;} }; class XB: public XA { private: int y;
public: XB(int a,int b); }; 在构造函数XB的下列定义中,正确的是( )。
A)XB::XB(int a,int b): x(a),y(b){ } B)XB::XB(int a,int b): XA(a),y(b){ }
C)XB::XB(int a,int b): x(a),XB(b){ } D)XB::XB(int a,int b): XA(a),XB(b){ } 15、在表达式 x+y*z中, + 是作为成员函数重载的运算符,* 是作为非成员函数重载的运算符。则 operator+ 有 个参数,operator* 有 参数。( )
第 13 页
A)2、2 B)2、1 C)1、2 D)1、1 16、应在下列程序划线处填入的正确语句是( )。 class Base { public:
void fun(){cout<<\ class Derived:public Base { void fun()
{ //显示调用基类的函数fun()
cout<<\ A)fun(); B)Base.fun(); C)Base::fun(); D) Base->fun();
二、填空题(每空2分,共20分。)
17、继承、多态性 18、友元 19、私有 20、private或私有 21、成员、友元 22、width/setw 23、抽象类
17、面向对象程序设计有四个主要特点,即抽象、封装、_多态性___和_继承性__。
18、非成员函数应声明为类的_友元___函数才能访问这个类的private成员。
19、派生类中的成员不能直接访问基类中的_私有、成员。 20、在用class定义一个类时,数据成员和成员函数的默认访问权限是私有。
21、运算符重载函数可能是类的__友元_函数,也可以是类的__成员__函数,还可以是普通函数。
22、用流对象的成员函数控制输出格式时,用于设置字段宽度的流成员函数的名称是_width___,与之作用相同的控制符名称是__setw__。
23、含有纯虚函数的类称为__抽象类。
第 14 页
三、程序的填空、程序的执行(每题4分,共20分。) 24、以下程序是定义一个计25、下列程序的输出结果为2,数器类counter,对其重载运请将程序补充完整。 算符“+”,请填空。 class Base class counter { public: { private: int n; ____ void fun() public: { cout<<1; } counter() {n=0;} }; counter(int i){n=i;} class Derived: public Base ____ //运算符重载函数 { public: { counter t; void fun( ) { cout<<2; } t.n=n+c.n; return t; } }; void disp() int main( ) {cout<<\{ Base *p= new Derived; }; p->fun( ); void main() delete p; { counter return 0; } c1(5),c2(10),c3; c3=c1+c2; c1.disp(); c2.disp(); c3.disp(); } 26、写出执行下面程序的输出结果。 28、写出执行下面程序void fun(int &x, int y) 的输出结果。 { int t=x; x=y; y=t; } class Base int main( ) { private: { int a[2] = {23, 42}; char c; fun(a[1],a[0]); public: Base(char std::cout< 第 15 页 return 0; } virtual ~Base(){cout< 四、编程题(12分) 29、编写一个程序计算“三角形、正方形、圆形”三种图形的面积,要求: a)抽象出一个基类base;b)在其中说明一个虚函数用来求面积;c)利用派生类定义“三角形、正方形、圆形”;d)编写主函数并测试。 参考答案 一、选择题(每小题3分,共48分。) 01-05 C A D B D 06-10 B B A D A 第 16 页
相关推荐: