tceic.com
学霸学习网 这下你爽了
相关标签
当前位置:首页 >> IT/计算机 >>

《面向对象程序设计C 》期末考试试卷


《面向对象程序设计C++》期末考试试卷

一、选择题(每小题 3 分,共 48 分。) 01、下列关于 C++函数的叙述中,正确的是( A)每个函数至少要具有一个参数 C)函数在被调用之前必须先声明 C )。

B)每个函数都必须返回一个值 D)函数不能自己调用自己 A )。

02、下列关于类和对象的叙述中,错误的是( A)一个类只能有一个对象 C)类是对某一类对象的抽象 关系 03、在 C++中,用于实现运行时多态性的是( A)内联函数 B)重载函数

B)对象是类的具体实例 D)类和对象的关系是一种数据类型与变量的

D

)。 D)虚函数 B )。 B)有的运算符只能作为成员函数

C)模板函数

04、下列关于运算符重载的叙述中,正确的是( A)通过运算符重载,可以定义新的运算符 重载 C)若重载运算符+,则相应的运算符函数名是+ 两个形参

D)重载二元运算符时,必须声明

05、对于语句 cout<<x<<endl;错误的是描述是( D )。 A)“cout”是一个输出流对象 C)“x”是一个变量 B)“endl”的作用是输出回车换行 D)“<<”称作提取运算符 )。

06、 有如下类声明, 则类 MyDERIVED 中保护的数据成员和成员函数的个数是( class MyBASE { private: public: int k; void set(int n){ k=n;} int get( )const{ return k;} class MyDERIVED: protected MyBASE { protected: public: int j; void set(int m, int n){ MyBASE::set(m); j=n;} };

1

int get( ) const { return MyBASE::get( )+j; } A)4 B)3 C)2 D)1

};

07、已知在一个类体中包含如下函数原型: Volume operator-(Volume)const;,下 列关于这个函数的叙述中,错误的是( A)这是运算符-的重载运算符函数 符 C)这是一个成员函数 D)这个函数不改变类的任何数据成员的值 )。 cout << 123 << endl; )。 B)这个函数所重载的运算符是一个一元运算

08、执行如下的程序段后,输出结果是(

cout.fill('*'); cout.width(6); cout.fill('#'); A)###123 B)123### C)***123 D)123***

09、在下列函数原型中,可以作为类 AA 构造函数的是( A)void AA(int); B)int AA(); C)AA(int)const;

)。 D)AA(int);

10、下面四个选项中,( A)virtual B)public

)是用来声明虚函数的。 C)include D)using namespace )。 C)析构函数 D)虚函数

11、实现运行时的多态性要使用( A)重载函数 B)构造函数

12、要实现动态联编,必须通过( A)对象指针 13、以下( B)成员名限定

)调用虚函数。 C)对象名 D)派生类名

)成员函数表示纯虚函数。 B)void vf(int)=0; D)virtual void vf(int){}

A)virtual int vf(int); C)virtual void vf()=0; 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 的下列定义中,正确的是(

2

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+ 有 A)2、2 B)2、1 C)1、2 个参数,operator* 有 D)1、1 )。 参数。( )

16、应在下列程序划线处填入的正确语句是( class Base { public: void fun(){cout<<"Base::fun"<<endl;} class Derived:public Base { void fun() { //显示调用基类的函数 fun() cout<<"Derived::fun"<<endl; } A)fun(); B)Base.fun(); C)Base::fun();

};

}; D) Base->fun();

二、填空题(每空 2 分,共 20 分。) 17、面向对象程序设计有四个主要特点,即抽象、封装、_继承___和__多态性__。 18、非成员函数应声明为类的_友元___函数才能访问这个类的 private 成员。 19、派生类中的成员不能直接访问基类中的_私有___成员。 20、 在用 class 定义一个类时, 数据成员和成员函数的默认访问权限是__private__。 21、运算符重载函数可能是类的_成员___函数,也可以是类的_友元___函数,还可 以是普通函数。 22、用流对象的成员函数控制输出格式时,用于设置字段宽度的流成员函数的名称 是 width____,与之作用相同的控制符名称是_setw___。 23、含有纯虚函数的类称为_抽象类___。

三、程序的填空、程序的执行(每题 4 分,共 20 分。) 24 、 以 下 程 序 是 定 义 一 个 计 数 器 类 25、下列程序的输出结果为 2,请将程序补

3

counter,对其重载运算符“+”,请填 充完整。 空。 class counter { private: int n; public: counter() {n=0;} counter(int i){n=i;} }; class Derived: public Base class Base { public: virtual void fun() { cout<<1; }

counter operator + (counter c) { public: //运算符重载函数 { counter t; t.n=n+c.n; return }; t; } void {cout<<"n="<<n<<endl;} }; void main() { counter c1(5),c2(10),c3; c3=c1+c2; c1.disp(); c3.disp(); } c2.disp(); int main( ) disp() { Base *p= new Derived; p->fun( ); delete p; return 0; } void fun( ) { cout<<2; }

26、写出执行下面程序的输出结果。 void fun(int &x, int y) { int t=x; x=y; y=t; } int main( ) { int a[2] = {23, 42}; fun(a[1],a[0]);

28、写出执行下面程序的输出结果。 class Base { private: char c; public: Base(char n):c(n){} virtual ~Base(){cout<<C;}

std::cout<<a[0]<<","<<a[1]<<std::endl;

};

4

return 0; }23,23

class Der:public Base { private:

27、写出执行下面程序的输出结果。 class A { public: A() { cout<<"A"; } }; class B { public: B() { cout<<"B"; } }; class C : public A { B b; public: C() { cout<<"C"; } }; int main( ) { C obj; return 0; }ABC };

char c; public: Der(char n):Base(n+1),c(n){} ~Der(){cout<<C;}

int main() { Der("X"); return 0; } XY

四、编程题(12 分) 29、编写一个程序计算“三角形、正方形、圆形”三种图形的面积,要求: a)抽象出一个基类 base;b)在其中说明一个虚函数用来求面积;c)利用派生类定义 “三角形、正方形、圆形”;d)编写主函数并测试。 解:程序如下:

#include <iostream> using namespace std; class base { public: virtual float area() const { return 0; } };

class triangle: public base { protected: float bian,height;

5

public: triangle(float a=0, float h=0) { bian=a; height=h; } virtual float area() const { return bian*height/2; } };

class square: public base { protected: float bian; public: square(float a=0) { bian=a; } virtual float area() const { return bian*bian; } };

class circle: public base { protected: float radius; public: circle(float r=0) { radius=r; } virtual float area() const { return 3.14*radius*radius; } };

int main() { triangle t(3,4); base *p; p=&t; cout<<"triangle's area:"<<p->area()<<endl; square s(5); circle c(2);

6

p=&s; cout<<"square's p=&c; cout<<"circle's return 0; }

area:"<<p->area()<<endl; area:"<<p->area()<<endl;

7


推荐相关:

《面向对象程序设计C 》期末考试试卷

《面向对象程序设计C 》期末考试试卷_其它课程_小学教育_教育专区。《面向对象程序设计C++》期末考试试卷一、选择题(每小题 3 分,共 48 分。) 01、下列关于 ...


华南理工大学《面向对象程序设计C 》期末考试试卷

华南理工大学《面向对象程序设计C 》期末考试试卷_理学_高等教育_教育专区。《面向对象程序设计C++》期末考试试卷 一、选择题(每小题 3 分,共 48 分。) 01、...


《C++面向对象程序设计》期末考试试题

《C++面向对象程序设计》考试试题 ? ? ? 本试卷满分 100 分; 请将答案写在...若类 A 的一个对象所占的内存空间中包含虚函数表的入口地址,则: C (A) ...


《面向对象程序设计C++》期末试卷及标准答案(A)

《面向对象程序设计 C++》期末考试试卷(A)班级:题号 得分 试卷说明: 本套试题共四个大题, 全部题目都答在答题纸上, 写在其他地方均无效。 (答题纸在本套...


《面向对象程序设计C 》期末考试试卷

《面向对象程序设计C 》期末考试试卷_IT/计算机_专业资料。《面向对象程序设计C++》期末考试试卷 一、选择题(每小题 3 分,共 48 分。) 01、下列关于 C++函数...


《面向对象程序设计C++》期末试卷及标准答案(A)

《面向对象程序设计C++》期末试卷及标准答案(A)_教育学_高等教育_教育专区。《面向对象程序设计 C++》期末考试试卷(A)班级:题号 得分 试卷说明: 本套试题共四...


深圳大学2014-2015学年《面向对象程序设计》C++期末考...

定义一个商品类 CGoods,其中包含商品号(long no)、商品名(char *p_name)、商深圳大学 《面向对象程序设计》试卷 A 卷第 3 页共 14 页 品价格(double price...


《面向对象程序设计C++》期末试卷及标准答案(好的)

《面向对象程序设计 C++》期末考试试卷(B)班级:题号 得分 试卷说明: 本套试题共四个大题, 全部题目都答在答题纸上, 写在其他地方均无效。 (答题纸在本套...


《面向对象程序设计C++期末考试试卷》

《面向对象程序设计C++期末考试试卷》_教育学_高等教育_教育专区。学长亲传 《面向对象程序设计C++》期末考试试卷一、选择题(每小题 3 分,共 48 分。) 01、...


《面向对象程序设计C++》期末考试试卷

《面向对象程序设计C++》期末考试试卷一、选择题(每小题 3 分,共 48 分。) 01、下列关于 C++函数的叙述中,正确的是( C )。 A)每个函数至少要具有一个参数...

网站首页 | 网站地图
All rights reserved Powered by 学霸学习网 www.tceic.com
copyright ©right 2010-2021。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com