已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1. 在一个被调用函数中,关于return语句的描述错误的是( D )A. 被调用的函数可以不用return语句 B. 被调用的函数可以使用多个return语句C. 被调用的函数如果有返回值,就一定要有return语句D. 被调用的函数中,一个return语句可以返回多个值给调用和函数2. 下面关于成员函数的叙述中错误的是( A )A. 成员函数一定是内联函数B. 成员函数可以设置参数默认值C. 成员函数可以重载D. 成员函数可以是静态的3. 派生类的对象可以访问基类成员中的( C )A. 公有继承的保护成员 B. 保护继承的公有成员C. 公有继承的公有成员 D. 保护继承的保护成员4. 在带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数传递参数,这样将对虚基类的子对象初始化( D )A. 与虚基类下面的派生类个数有关 B. 多次C. 二次 D. 一次5. 在磁盘文件操作中,以追加方式打开文件的访问方式常量是( C )A. in B. out C. app D. ate6. 假定A为一个类,则执行“A a(4),b3,*p2;”时,调用该类构造函数的次数为( B )A. 3 B. 4 C. 6 D. 97. 假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为( B )A. AB operator +(AB&a,AB&b) B. AB operator +(AB&a)C. operator +(AB a) D. AB&operator+( )8. 若类的成员函数是在类中定义的,则默认为(D )函数A 构造 B. 析构 C. 友元 D. 内联(inline)9. 在下面的函数声明中,存在语法错误的是(D )A void BC(int a, int) B。 void BD(int, int) C void BE(int, int=5) D。 int BF(int x ; int y)10. 下面是关于构造函数的说法,不正确的是(C)。 A. C+规定,每一个类必须有一个构造函数,没有构造函数就不能创建对象 B. 如果没有提供一个类的构造函数(一个都未提供),则C+提供一个默认的构造函数,该默认构造函数是个无参构造函数,它仅仅负责创建对象 C. 虽然一个类定义了一个构造函数(不一定是无参构造函数),C+仍然提供默认的构造函数 D. 与变量定义类似,在用默认构造函数创建对象时,如果创建的是全局对象或静态对象,则对象的位模式全为0,否则,对象值是随机的11. 多重继承的构造顺序一般可分为4步,下面给出这4个步骤:step1: 任何非虚拟基类的构造函数按照它们被继承的顺序构造。step2: 任何虚拟基类的构造函数按照它们被继承的顺序构造。step3: 任何成员对象的构造函数按照它们声明的顺序构造。step4: 类自己的构造函数。这4个步骤的正确顺序是( C )。 A. step4、step3、step1、step2 B. step2、step4、step3、step1 C. step2、step1、step3、step4 D. step3、step4、step1、step212. 友元运算符obj+被C+编译器解释为( B )。 A. operator+(obj) B. operator+(obj,0)B. obj.operator+( ) D. obj.operator+(0)13. 声明类test的复制构造函数的正确形式是( D )。 A. int test B. void test C. test(void) D. test(test&) 14. 如果两个以上的函数,具有如下特点:只有参数类型不同,返回值类型不同,功能完全一样,则为了提高代码的可重用性,可以使用( C )A重载函数 B内联函数 C函数模板 D.递归调用15. 关于友元类的描述,错误的是 ( C )A. 友元类被说明在一个类中,它与访问权限无关B. 友元类中的成员函数都是友元函数C. 友元类是被定义在某个类中的D. 如果类Y是类X的友元类,则类X不一定是类Y的友元类16. 下面程序的运行结果是 ( A )void f( ) static int a=10; int b=1; a=a+b; couta ;void main() f( );f( ); A11 12 B11 11 C12 12 D10 1117. 对于动态分配内存空间描述正确的是( D )A使用new运算符分配的内存空间的长度必需是常量 Bdelete运算符可以释放动态的存储空间和静态的存储空间C由new分配的内存空间是不连续的Ddelete运算符只能释放由new分配的动态存储空间18. 在C+中,下面的运算符不可重载的是( A )A三目运算符?: B. 比较运算符 C. 赋值运算符 D. 逗号运算符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、对于语句 coutxendl;错误的是描述是(D )。 A)“cout”是一个输出流对象 B)“endl”的作用是输出回车换行 C)“x”是一个变量 D)“”称作提取运算符06、有如下类声明,则类MyDERIVED中保护的数据成员和成员函数的个数是( 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)107、已知在一个类体中包含如下函数原型: 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 namespace11、实现运行时的多态性要使用( 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、116、应在下列程序划线处填入的正确语句是( C )。 class Base public: void fun()coutBase:funendl; ;class Derived:public Base void fun() /显示调用基类的函数fun() coutDerived:funfun();3、根据访问权限的不同,可将类的成员分为三类_public_ 、_protected_ 和_private_ 。4、在函数调用过程中,当实参是一个数组名时,对应的形参必须是_指针_ 或_引用_ 。5、指针变量包含另一变量的_地址_ 值。17、面向对象程序设计有四个主要特点,即抽象、封装、_继承_和_多态_。16. 动态内存的分配和释放采用关键词_new_和_delete_来描述。18、非成员函数应声明为类的_友元_函数才能访问这个类的private成员。19、派生类中的成员不能直接访问基类中的_私有_成员。20、在用class定义一个类时,数据成员和成员函数的默认访问权限是_private_。21、运算符重载函数可能是类的_成员_函数,也可以是类的_友元_函数,还可以是普通函数。23、含有纯虚函数的类称为_抽象类_。4假定AB为一个类,则执行”AB a10;”语句时,系统自动调用该类构造函数的次数为_10_5使用const语句定义一个标识符常量时,则必须对它同时进行_初始化_6假定p所指对象的值为25,p+1所指对象的值为46,则执行“(*p)+;”语句后,p所指对象的值为_26_7设px是指向一个类动态对象的指针变量,则执行”delete px;”语句时,将自动调用该类的_析构函数_(!选择题、填空题可以互换的,所以弄懂题目意思才是关键,结合其中考试,大概有60分的样子)1. 请比较complex &operator+(const &complex c1,const complex &c2)和complex operator+(complex c1,complex c2)两种表达方法的不同,叙述的越详细越好。引用是一个对象别名,不需要复制对象。对引用的操作实际上就是对原变量的操作,节省空间,提高了效率,对于在执行过程中无需改变其值的对象,最好声明为常引用,增加了安全性,值传递为变量申请新的空间,在执行完成后空间被释放,它与实参对象没有影响,保证了安全性。2. 比较赋值和初始化的区别,请举例说明 在定义一个变量或常量时并给出初值叫做初始化,如int a=2; 在在定义一个变量或常量以后使用赋值运算符修改它的值叫做赋值,如int a; a=2;3. 构造函数和复制构造函数什么时候被调用,请举例说明 构造函数在建立对象时被自动调用,复制构造函数 :1 用类的对象去初始化本类的另一个对象时;2 函数的形参值为类的对象,当形参与实参相结合时; 3 如果函数的返回值是类的对象时,函数执行完成返回调用者时。4. 请说明虚函数的特点,叙述的越详细越好。虚函数是动态绑定的基础;虚函数必须是非静态函数成员;虚函数声明只能出现在类定义中的函数原型声明中,不能在函数实现的时候;要用成员函数调用或者通过指针、引用来访问虚函数;在类的声明中,在函数原型之前写virtual。具有继承性,基类中声明了虚函数,派生类中无论是否说明,同原型函数都自动为虚函数。本质:不是重载声明而是覆盖。26、写出执行下面程序的输出结果。void fun(int &x, int y) int t=x; x=y; y=t; int main( ) int a2 = 23, 42; fun(a1,a0); std:couta0,a1std:endl; return 0; 23,2327、写出执行下面程序的输出结果。class A public: A() coutA; ;class B public: B() coutB; ;class C : public A B b; public: C() coutsetx(11);coutbase object x:getx()setx(66);coutdervied object x:getx()endl;d_obj.setx(66);coutdervied object x:d_obj.getx()endl;d_obj.sety(88);coutdervied object y:d_obj.gety()endl;base object x:11dervied object x:66dervied object x:66dervied object y:881、 构造求两数之和的重载函数,请填空完善函数。(6分)#includeint add(_int a , int b) return a+b; double add( double a, double t b_) return a+b; void main() coutadd(5,10); coutadd(5.0,10.0); 2、定义了一个表示坐标系内点的类,请写出程序的输出结果。#includeclass pointpublic: point(int xx=0,int yy=0) cout”构造函数被调用”endl;x=xx;y=yy; point(point &p)cout”复制构造函数被调用”endl;x=p.x;y=p.y point() cout”析构函数被调用”endl; private: int x,y;void main()point A(0,1);point(3,4);point B(A); 构造函数被调用构造函数被调用析构函数被调用复制构造函数被调用析构函数被调用析构函数被调用3、分析下列程序,写出输出结果。#includeclass myclassmyclass(int a,int b,int c) A=a;B=b;C=c; sum=sum+A+B+C; void getnumber() cout”number=”A”,”B”,”Cendl; void getsum() cou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 47479-2026航空航天流体系统用Ω形(马鞍形卡箍)卡箍尺寸
- 会员权益使用操作手册
- 肾结石低嘌呤饮食指引
- 植保无人机维修保养技术标准
- 肩周炎理疗康复套餐服务标准
- 家政服务质量售后回访管理制度
- 绵羊驱虫程序制定与实施技术指引
- 中医体质辨证药膳配方指南
- 蜂群春繁管理技术操作指引
- 睡眠质量监测与评估方案
- 2026四川资阳市乐至县至弘发展集团有限公司员工招聘5人备考题库及答案详解(考点梳理)
- 期中考试分析会上校长不晒分数不排名只跟老师算三笔账句句戳中教师心
- 武胜县2026年公开招聘社区工作者(62人)笔试参考题库及答案解析
- 学生常见病防治知识课件
- 公共场所卫生监测报告
- 西安交通大学《法理学》2023-2024学年期末试卷
- 2024年湖南省高考生物试卷真题(含答案)
- 国际货物运输委托代理合同(中英文对照)全套
- 中华民族共同体概论课件专家版8第八讲 共奉中国与中华民族聚力发展
- JTP矿用提升绞车司机操作规程
- 压力管道培训课件
评论
0/150
提交评论