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

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


《面向对象程序设计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 )。 A)通过运算符重载,可以定义新的运算符 B)有的运算符只能作为成员函数重载 C)若重载运算符+,则相应的运算符函数名是+ D)重载二元运算符时,必须声明两个形参 05、对于语句 cout<<x<<endl;错误的是描述是( D )。 A)“cout”是一个输出流对象 B)“endl”的作用是输出回车换行 C)“x”是一个变量 D)“<<”称作提取运算符(插入运算符) 06、有如下类声明,则类 MyDERIVED 中保护的数据成员和成员函数的个数是( 保护数据成员个数 1, 保护陈谷原函个数 2 )。( B ) 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、执行如下的程序段后,输出结果是( A )。 cout.fill('*'); cout.width(6); cout.fill('#'); cout << 123 << endl; A)###123 B)123### C)***123 D)123*** 09、在下列函数原型中,可以作为类 AA 构造函数的是( D )。 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 )调用虚函数。 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 的下列定义中,正确的是( B )。 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* 有 参数。( C ) A)2、2 B)2、1 C)1、2 D)1、1 16、应在下列程序划线处填入的正确语句是( )。
1

class Base { public: void fun(){cout<<"Base::fun"<<endl;} class Derived:public Base { void fun() { C //显示调用基类的函数 fun() cout<<"Derived::fun"<<endl; } A)fun(); B)Base.fun(); C)Base::fun();

};

}; D) Base->fun();

二、填空题(每空 2 分,共 20 分。) 17、面向对象程序设计有四个主要特点,即抽象、封装、__继承__和__多态性_。 18、非成员函数应声明为类的_友元___函数才能访问这个类的 private 成员。 19、派生类中的成员不能直接访问基类中的_private___成员。 20、在用 class 定义一个类时,数据成员和成员函数的默认访问权限是_private___。 21、运算符重载函数可能是类的_成员___函数,也可以是类的_友元___函数,还可以是普通函数。 22、用流对象的成员函数控制输出格式时,用于设置字段宽度的流成员函数的名称是_setw___,与 之作用相同的控制符名称是_width___。, 23、含有纯虚函数的类称为_抽象类___。 三、程序的填空、程序的执行(每题 4 分,共 20 分。) 24、以下程序是定义一个计数器类 counter, 25、下列程序的输出结果为 2,请将程序补充完整。 对其重载运算符“+”,请填空。 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 _counter operator+( counter c)___ // { public: 运算符重载函数 void fun( ) { cout<<2; } { counter t; t.n=n+c.n; return t; } }; void disp() {cout<<"n="<<n<<endl;} int main( ) }; { Base *p= new Derived; void main() p->fun( ); { counter c1(5),c2(10),c3; delete p; c3=c1+c2; return 0; } c1.disp(); c2.disp(); c3.disp(); } 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]); std::cout<<a[0]<<","<<a[1]<<std::endl; return 0; } 23 23 27、写出执行下面程序的输出结果。ABC 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; } 28、写出执行下面程序的输出结果。XY class Base { private: char c; public: Base(char n):c(n){} virtual ~Base(){cout<<C;} }; class Der:public Base { private: char c; public: Der(char n):Base(n+1),c(n){} ~Der(){cout<<C;} }; int main() { Der(‘X’); return 0; }

四、编程题(12 分) 29、编写一个程序计算“三角形、正方形、圆形”三种图形的面积,要求:
2

a)抽象出一个基类 base;b)在其中说明一个虚函数用来求面积;c)利用派生类定义“三角形、正方 形、圆形”;d)编写主函数并测试。

#include "iostream" using namespace std; class Base { private: char c; public: Base(char n):c(n){} virtual ~Base(){cout<<c;} }; class Der:public Base { private: char c; public: Der(char n):Base(n+1),c(n){} ~Der(){cout<<c;} }; int main() { Base *p=new Der('X'); delete p; return 0; }

3


推荐相关:

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

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


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

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


《面向对象程序设计》期末考试A卷(2014-01)

《面向对象程序设计》期末考试A卷(2014-01)_工学_高等教育_教育专区。华南农业大学期末考试试卷(A 卷) 2013 学年第 1 学期 考试类型:闭卷考试 学号装 考试...


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

深圳大学2014-2015学年《面向对象程序设计》C++期末考试试卷及答案_工学_高等...(char *p_name)、商深圳大学 《面向对象程序设计》试卷 A 卷第 3 页共 14...


《面向对象程序设计》2016期末试题及答案

《面向对象程序设计(本科)》2016 期末试题及答案 得分 评卷人 一、单选题:从供选择的答案中选出正确的答案,将其字母编号填 入下列叙述的括号内(每小题 4 分...


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

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


《面向对象程序设计》2018期末试题及答案

《面向对象程序设计(本科)》2018 期末试题及答案 一、单项选择题(每小题 2 分,共 20 分) 1.设 x 和 y 均为 bool 量,则 x||y 为假的条件是( A....


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

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


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

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


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

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

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