ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:30.06KB ,
资源ID:22019031      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22019031.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(复习题1Word格式文档下载.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

复习题1Word格式文档下载.docx

1、D. 派生类的对象的地址可以赋给指向基类的指针8下列关于虚基类的描述,错误的是( B) P266 A. 设置虚基类的目的是为了消除二义性 B. 虚基类的构造函数在非虚基类之后调用。 虚基类在非虚基类之前调用 C. 若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用 D. 若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数9下列关于多态性的描述,错误的是(C ) A. C+语言的多态性分为编译时的多态性和运行时的多态性 B. 编译时的多态性可通过函数重载实现 C. 运行时的多态性可通过模板和虚函数实现.主要通过虚函数实现,没有模板 D. 实现运行时多态性

2、的机制称为动态绑定10下列运算符中,在C+语言中不能重载的是( C ) A. + B. = C. : D. /11下面关于类和对象的描述中,错误的是( A ) A. 类就是C语言中的结构体类型,对象就是C语言中的结构体变量 B. 类和对象之间的关系是抽象和具体的关系 C. 对象是类的实例,一个对象必须属于一个已知的类D. 类是具有共同行为的若干对象的统一描述体在C+语言中,类和结构体有本质区别,类中包含数据及操作函数,而结构体只包含有数据。12下面关于数组的描述错误的是( D ) A. 在C+语言中数组的名字就是指向该数组第一个元素的指针 B. 长度为n的数组,下标的范围是0n-l C. 数组

3、的大小必须在编译时确定 D. 数组只能通过值参数和引用参数两种方式传递给函数13下面程序错误的语句是( B ) #include using namespace std; void main() int *p=new int1; p=9; cout *p delete p;A. B. C. D. 14下面的哪个选项不能作为函数的返回类型?(C ) A. void B. int C. new D. longnew是C+里面的一个操作符。是用于动态创建堆对象。并非是某种类型的标示符。而函数返回值要么是系统原有的类型,例如int,float等,要么就是用户自己创建的类。15下面关于虚函数的描述,错误

4、的是( B ) A. 在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数 B. 基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数 C. 虚函数可以是另一个类的友元函数,但不能是静态成员函数 D. 基类中说明的纯虚函数在其任何派生类中都必须实现 基类中说明的虚函数,在派生类中自然就是虚函数,对于纯虚函数必须在后面继承的派生类中给出具体的实现;静态成员函数不能进行动态联编,所以虚函数不能是静态的。16下面程序的运行结果是( C )#include int num=1; int &ref=num; ref=ref+2; coutnum; num=num+3; coutre

5、f A. 13 B. 16 C. 36 D. 3317?下面关于C+语言的描述错误的是( B ) A. C+语言支持数据封装 B. C+语言中引入友元没有破坏封装性 C. C+语言允许函数名和运算符重载 D. C+语言支持动态联编 18下列程序的运行结果为( B ) int a=2; int b=a+1; cout a/b A. 0.66667 B. 0 C. 0.7 D. 0.6666666619下面程序的运行结果为( D ) #include char a=3; switch(a) case:cout3 case22break; default:1 A. 3 B. 321 C. 31 D.

6、 3220存在定义int a10,x,*pa;,若pa=&a0,下列的哪个选项和其他3个选项不是等价的?( A ) A. x=*pa; B. x=*(a+1); C. x=*(pa+1); D. x=a1;21类的析构函数是在什么时候调用的?( C ) A. 类创建时 B. 创建对象时 C. 删除对象时 D. 不自动调用析构函数可以被函数调用,也可以系统调用:函数体内的对象在函数结束时调用析构函数和使用delete释放对象所占有用的资源。22通常复制构造函数的参数是( C ) A. 某个对象名 B. 某个对象的成员名 C. 某个对象的引用名 D. 某个对象的指针名 23在C+语言类体系中,不能

7、被派生类继承的有( B ) A. 转换函数 B. 构造函数 C. 虚函数 D. 静态成员函数派生类对象的数据结构是由基类中说明的数据成员和派生类中说明的数据成员共同构成,所以不能继承基类的构造函数,必须重新定义。24对于类定义, 下面正确的叙述是( C ) class A public: virtual void funcl() void func2() ; class B:public A public: void funcl()cout”class B func 1”endl; virtual void func2()cout”class B func 2” ;A. A:func2()和B

8、:funcl()都是虚函数。错 B. A:funcl()都不是虚函数。错C. B:funcl()是虚函数,而A:func2()不是虚函数 D. B:funcl()不是虚函数,而A:fune2()是虚函数。25. 关键字( C )说明对象或变量初始化后不会被修改。 A. static B. public C. const D. inline26、下列关于C+函数的叙述中,正确的是( C )。 A)每个函数至少要具有一个参数 B)每个函数都必须返回一个值 C)函数在被调用之前必须先声明 D)函数不能自己调用自己一个函数可以没有形参,也可以为void空函数,但是函数调用前必须在主调函数中声明,函数可

9、以递归调用自己。27、下列关于类和对象的叙述中,错误的是( A )。 A)一个类只能有一个对象 B)对象是类的具体实例 C)类是对某一类对象的抽象 D)类和对象的关系是一种数据类型与变量的关系28、在C+中,用于实现运行时多态性的是( D )。 A)内联函数 B)重载函数 C)模板函数 D)虚函数29、下列关于运算符重载的叙述中,正确的是( B )。 A)通过运算符重载,可以定义新的运算符 B)有的运算符只能作为成员函数重载 C)若重载运算符+,则相应的运算符函数名是+ D)重载二元运算符时,必须声明两个形参本题考核运算符重载的概念。C+中,=、()、-以及所有的类型转换符只能作为成员函数重载

10、。所以B选项的描述是正确的。运算符重载就是赋予已有的运算符多重含义,并不是定义新的运算符;C+把重载的运算符视为特殊的函数,称为运算符函数,函数名就是在运算符前加上保留字operator;+是一个二元运算符,但是作为成员函数重载时参数表中只有一个形参,对应第二个操作数,而第一个操作数就是对象本身。30、对于语句 coutx错误的是描述是( D )。 A)“cout”是一个输出流对象 B)“endl”的作用是输出回车换行 C)“x”是一个变量 D)“”称作提取运算符。叫插入运算符31、有如下类声明,则类MyDERIVED中保护的数据成员和成员函数的个数是( B )。 class MyBASE p

11、rivate: 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)132、已知在一个类体中包含如下函数原型: Volume operator-(Volume)const;,下列关于这个函数的叙述中,错误的

12、是( B )。 A)这是运算符-的重载运算符函数 B)这个函数所重载的运算符是一个一元运算符 C)这是一个成员函数 D)这个函数不改变类的任何数据成员的值33、执行如下的程序段后,输出结果是( A )。 cout.fill(*); cout.width(6);# cout 123 endl; A)#123 B)123# C)*123 D)123*34、在下列函数原型中,可以作为类AA构造函数的是( D )。 A)void AA(int); B)int AA(); C)AA(int)const; D)AA(int);35、下面四个选项中,( A )是用来声明虚函数的。 A)virtual B)p

13、ublic C)include D)using namespace36、实现运行时的多态性要使用( D )。 A)重载函数 B)构造函数 C)析构函数 D)虚函数37、要实现动态联编,必须通过( A )调用虚函数。 A)对象指针 B)成员名限定 C)对象名 D)派生类名38、以下( C )成员函数表示纯虚函数。 A)virtual int vf(int); B)void vf(int)=0; C)virtual void vf()=0; D)virtual void vf(int)39、有如下类声明:class XA int x; public: XA(int n) x=n; class XB

14、: public XA private: int y; XB(int a,int b); ; 在构造函数XB的下列定义中,正确的是( B )。 A)XB:XB(int a,int b): x(a),y(b) B)XB: XA(a),y(b) C)XB: x(a),XB(b) D)XB: XA(a),XB(b) 40、在表达式 x+y*z中, + 是作为成员函数重载的运算符,* 是作为非成员函数重载的运算符。则 operator+ 有 个参数,operator* 有 参数。 A)2、2 B)2、1 C)1、2 D)1、141、应在下列程序划线处填入的正确语句是( C )。 class Base

15、public: void fun()coutBase:fun ;class Derived:public Base void fun() /显式调用基类的函数fun() cout42下列哪个是C+语言的有效标识符? (A ) A. _N01 B. No.1 C. 12345 D. int43下面程序的运行结果为(C ) void main() for(int a=0,x=0;!x & a=10;a+) a+;a A. 10 B. 11 C. 12 D. 044下列程序的输出结果为(B ) char *a=hello,theworld; char *pa=a; pa+; cout *pa A.

16、hello B. the C. world D. hellotheworld45决定C+语言中函数的返回值类型的是(D )A. return语句中的表达式类型B. 调用该函数时系统随机产生的类型C. 调用该函数时的主调用函数类型D. 在定义该函数时所指定的数据类型46类的析构函数的作用是(D )A. 一般成员函数的初始化 B. 类的初始化C. 对象的初始化 D.对象生存器结束时作些清理工作47下列说法正确的是( B) A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 B. 内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C. 类的内联函数必须在类体内定义D. 类的

17、内联函数必须在类体外通过加关键字inline定义48下列程序的输出结果为( D )int func(int n) if(n1)return 1;else return n+func(n-1); return 0;void main() coutfunc(5) A. 0 B. 10 C. 15 D. 1649在C+语言中,数据封装要解决的问题是(D ) A. 数据的规范化 B. 便于数据转换 C. 避免数据丢失 D. 防止不同模块之间数据的非法访问50对类的构造函数和析构函数描述正确的是( A ) A. 构造函数可以重载,析构函数不能重载 B. 构造函数不能重载,析构函数可以重载 C. 构造函数

18、可以重载,析构函数也可以重载 D. 构造函数不能重载,析构函数也不能重载51下面对静态数据成员的描述中,正确的是(A )A. 静态数据成员是类的所有对象共享的数据B. 类的每个对象都有自己的静态数据成员C. 类的不同对象有不同的静态数据成员值D. 静态数据成员不能通过类的对象调用52如果类A被说明成类B的友元,则( D )A. 类A的成员即类B的成员 B. 类B的成员即类A的成员C. 类A的成员函数不得访问类B的成员 D. 类B不一定是类A的友元53下面程序的运行结果为 (D ) void swap(int &a,int b) int temp; temp=a+; a=b;b=temp; in

19、t a=2,b=3;swap(a,b); a , b A. 2,3 B. 3,2 C. 2,2 D. 3,354下面关于C+语言变量的叙述错误的是( B ) A. 在C+语言中变量分为auto,static,extern和register四种存储类型 B. 自动变量和外部变量的作用域为整个程序 C. 内部静态变量的作用域是定义它的函数D. 外部静态变量的作用域是定义它的文件55为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为( A ) A. public B. protected C. private D. static56在C+语言程序中,对象之间的相互通

20、信通过( C ) A. 继承实现 B. 调用成员函数实现 C. 封装实现 D. 函数重载实现57下面程序的运行结果是( C ) int i=1; while(i=8) if(+i%3!=2) continue; else cout i;A. 25 B. 36 C. 258 D. 36958已知有定义, 则下列选项错误的是( B ) const int D=5; int i=1; double f=0.32; char c=15; A. +i; B. D-; C. c+; D. -f 59设有数组定义:char array=”China”;,则数组array所占的空间为(C ) A. 4个字节

21、B. 5个字节 C. 6个字节 D. 7个字节60下列描述中哪个是正确的?( B ) A. 私有派生的子类无法访问父类的成员B. 类A的私有派生子类的派生类C无法初始化其祖先类A对象的属性,因为类A的成员对类C是不可访问的 C. 私有派生类不能作为基类派生子类 D. 私有派生类的所有子孙类将无法继续继承该类的成员61下列关于构造函数说法不正确的是(C ) A. 构造函数必须与类同名 B. 构造函数可以省略不写 C. 构造函数必须有返回值 D. 在构造函数中可以对类中的成员进行初始化62如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是( D ) A. 一元运算符 B. 二元运

22、算符 C. 选项A)和选项B)都可能 D. 重载错误63可以用P.a的形式访问派生类对象P的基类成员a,其中a是( D ) A. 私有继承的公有成员 B. 公有继承的私有成员 C. 公有继承的保护成员 D. 公有继承的公有成员64. 成员函数可声明为静态的,条件是它不访问(C )类成员。A. 静态 B. 常数 C. 非静态 D. 公共65. 要让一个类中的所有对象具有共同的数据,请使用( C)。A. 常数成员变量 B. 私有数据成员 C. 静态数据成员 D. 以上都是 二、填空题1继承的方式有公有继承、_私有继承_和_保护继承_3种。2重载的运算符保持其原有的_操作数个数_、优先级和结合性不变

23、。3在C+中封装性、继承性和_多态性_是面向对象思想的主要特征。4假定A为一个类,则语句A(A &p);为该类_复制构造_函数的原型说明。5、面向对象程序设计有四个主要特点,即抽象、封装、_继承_和_多态性_。6、非成员函数应声明为类的_友元_函数才能访问这个类的private成员。7、派生类中的成员不能直接访问基类中的_私有_成员。8、在用class定义一个类时,数据成员和成员函数的默认访问权限是_private或私有_。9、运算符重载函数可能是类的_成员_函数,也可以是类的_友元_函数,还可以是普通函数。10、用流对象的成员函数控制输出格式时,用于设置字段宽度的流成员函数的名称是width_,与之作用相同的控制符名称是_setw_。11、含有纯虚函数的类称为_抽象类_。12在面向对象的程序设计中,类描述的是具有相似性质的一组 _对象_。13在面向对象方法中,类之间共享属性和操作的机制称为_继承_。14通过使用new和delete两个运算符进行的分配为_动态存储_分配。15C+语言支持的两种多态性分别是_编译时_的多态性和_运行时_的多态性。三、程序阅读题1阅读下面的程序,试求:(1)给出程序的运行结果。(2)分析变量i的作用。#include iostre

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1