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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C++程序设计复习题.docx

1、C+程序设计复习题判断题5 使用关键字class定义的类中默认的访问权限是私有(private)的. 对6 作用域运算符(:)只能用来限定成员函数所属的类. 错7 构造函数和析构函数都不能重载. 错8 析构函数是一种函数体为空的成员函数. 错9 说明或定义对象时,类名前面不需要加class关键字. 对10 对象成员的表示与结构变量成员的表示相同,使用运算符.或-. 对11 所谓私有成员是指只有类中所提供的成员函数才能直接使用它们,任何类以外的函数对它们的访问都是非法的. 对12 某类中的友元类的所有成员函数可以存取或修改该类中的私有成员. 对13 可以在类的构造函数中对静态数据成员进行初始化.

2、 错14 函数的定义不可以嵌套,类的定义可以嵌套. 对15 C+语言中,既允许单继承,又允许多继承. 对16 派生类是从基类派生出来,它不能再生成新的派生类. 错17 派生类的继承方式中有两种:公有继承和私有继承. 错18 在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的. 错19 在公有继承中,基类中只有公有成员对派生类对象是可见的. 对20 在私有继承中,基类中只有公有成员对派生类是可见的. 错21 在私有继承中,基类中所有成员对派生类的对象都是不可见的. 对22 在保护继承中,对于派生类的访问同于公有继承,而对于派生类的对象的访问同于私有继承. 对23 派生类中至少包含了它的

3、所有基类的成员,在这些成员中可能有的是不可访问. 对24 构造函数可以被继承. 错25 析构函数不能被继承. 对26 子类型是不可逆的. 对27 只要是类M继承了类N,就可以说类M是类N的子类型. 错28 如果A类型是B类型的子类型,则A类型必然适应于B类型. 对29 多继承情况下,派生类的构造函数中基类构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序. 对30 单继承情况下,派生类中对基类成员的访问也会出现二义性. 错31 解决多继承情况下出现的二义性的方法之一是使用成员名限定法. 对32 虚基类是用来解决多继承中公共基类在派生类中只产生一个基类子对象的问题. 对33 指向对象的指针

4、和指向类的成员的指针在表达形式上是不相同的. 对34 已知:m是类A的对象,n是类A的公有数据成员,p是指向类A中n成员的指针.下述两种表示是等价的. m.n和m.*p 对35 指向对象的指针与对象都可以作为函数参数,但是使用前者比后者好些. 对36 对象引用作为函数参数比用对象指针更方便些. 对37 对象数组的元素可以是不同类的对象. 错38 对象数组的既可以赋初值又可以赋值. 对39 指向对象数组的指针不一定必须指向数组的首元素. 对40 一维对象指针数组的每个元素应该是某个类的对象的地址值. 对41 const char *p说明了p是指向字符串常量的指针. 对42 一个能够更新的变量使

5、用在一个不能被更新的环境中是不破坏类型保护的,反之亦然. 错43 一个类的构造函数中可以不包含对其子对象的初始化. 错44 转换函数不是成员函数,它是用来时行强制类型转换的. 错45 使用模板可以减少重复劳动,提高代码重用率. 对46 C+语言中模板分为函数模板和类模板两种. 对47 类模板可以生成若干个模板类,每个模板类又可定义若干个对象. 对48 使用提取符()可以输出各种类型的变量的值,也可以输出指针值. 对49 预定义的插入符从键盘上接收数据是不带缓冲区的. 错50 预定义的提取符和插入符是可以重载的. 对51 记录流的当前格式化状态的标志字中每一位用于记录一种格式,这种格式是不能被设

6、置或清除的. 错52 设置和清除格式标志字的成员函数需要通过对象来引用它们,输出显示格式的对象通常是cout. 对53 操作子本身是一个对象,它可以直接被提取符或插入符操作. 对54 get()函数不能从流中提取终止字符,终止字符仍留在流中.getline()函数从流中提取终止字符,但终止字符被丢弃. 对55 ios类的成员函数clear()是用来清除整个屏幕的. 错56 使用打开文件函数open()之前,需要定义一个流类对象,使用open()函数来操作该对象. 对57 使用关闭文件函数close()关闭一个文件时,但流对象仍存在. 对58 以app方式打开文件时,当前的读指针和写指针都定位于

7、文件尾. 对59 打开ASCII码流文件和二进制流文件时,打开方式是相同的. 错60 read()和write()函数可以读写文本文件,也可以读写二进制文件. 对61 流的状态包含流的内容、长度和下一次提取或插入操作的当前位置. 对62 seekg()函数seekp()函数分别用来定位读指针和写指针.如果使用seek()函数可以同时定义读写指针. 错63 函数的参数个数和类型都相同,只是返回值不同,这不是重载函数. 对64 重载函数可以带默认值参数,但要注意二义性. 对65 多数运算符可以重载,个别运算符不能,运算符重载是通过函数定义实现的. 对66 对每个可重载的运算符来说,只能重载为友元函

8、数. 错67 重载的运算符保持原来的优先级和结合性以及操作数的个数. 对68 虚函数是用virtual关键字说明的成员函数. 对69 构造函数说明为纯虚函数是没有意义的. 对70 运算符重载实际上是对已有的运算符重新定义其功能. 对71 运算符重载的形式有两种:成员函数形式和友元形式. 对72 纯虚函数是一种特殊的成员函数,它是一种没有具体实现的虚函数. 对73 具有纯虚函数的类是抽象类,它的特点是不可以定义对象. 对74 预处理命令是在进行编译时首先执行的,然后再进行正常编译. 对75 宏定义命令是以分号结束的. 错76 带参数的宏定义只能有1 个或2 个参数. 错77 文件包含命令所包含的

9、文件是不受限制的. 错78 条件编译命令只在编译时才有作用. 对79 预处理命令的主要作用是提高效率. 错80 复合语句就是分程序. 错81 条件语句不能作为多路分支语句. 错82 开关语句不可以嵌套,在开关语句的语句序列中不能再有开关语句. 错83 开关语句中的default 关键字,只能放在该语句的末尾,不能放在开头或中间. 错84 switch 语句中必须有break 语句,否则无法退出switch 语句. 错85 while 循环语句的循环体至少执行一次. 错86 do-while 循环可以写成while 循环的格式. 对87 for 循环是只有可以确定的循环次数时才可使用,否则不能用

10、for 循环. 错88 只有for 循环的循环体可以是空语句,其他种循环的循环体不能是空语句. 错89 当循环体为空语句时,说明该循环不做任何工作,只起延时作用. 错90 循环是可以嵌套的,一个循环体内可以包含另一种循环语句. 对91 在多重循环中,内重循环的循环变量引用的次数比外重循环多. 对92 break 语句可以出现在各种循环体中. 对93 continue 语句只能出现在循环体中. 对94 在C+语言中,定义函数时必须给出函数的类型. 对95 在C+语言中,说明函数时要用函数原型,即定义函数时的函数头部分. 对96 在C+语言中,所有函数在调用前都要说明. 错97 如果一个函数没有返

11、回值,定义时需用void 说明. 对98 在C+语言中,传址调用将被引用调用所替代. 对99 使用内联函数是以增大空间开销为代价的. 对100 返回值类型、参数个数和类型都相同的函数也可以重载. 错101 在设置了参数默认值后,调用函数的对应实参就必须省略. 错102 计算函数参数顺序引起的二义性完全是由不同的编译系统决定的. 错103 for 循环中,循环变量的作用域是该循环的循环体内. 错104 语句标号的作用域是定义该语句标号的文件内. 错105 函数形参的作用域是该函数的函数体. 对106 定义外部变量时,不用存储类说明符extern ,而说明外部变量时用它. 对107 内部静态类变量

12、与自动类变量作用域相同,但是生存期不同. 对108 静态生存期的标识符的寿命是短的,而动态生存期标识符的寿命是长的. 错109 重新定义的标识符在定义它的区域内是可见的,而与其同名的原标识符在此域内是不可见的.但是,它是存在的. 对110 静态类标识符在它的作用域之外是不存在的. 错111 所有的函数在定义它的程序中都是可见的. 错112 编译系统所提供的系统函数都被定义在它所对应的头文件中. 对113 调用系统函数时,要先将该系统函数的原型说明所在的头文件包含进去. 对114 C+语言中模板分为函数模板和类模板两种. 对115 函数模板中模板参数可用任何一种类型替换. 错116 函数模板中模

13、板参数只能有一个. 错117 函数模板在编译时不生成可执行代码. 对118 一个函数模板只生成一个模板函数. 错119 C+语言引进了引用的概念,给编程带来了很多方便. 对120 C+语言允许使用友元,但是友元会破坏封装性. 对121 C+语言中使用了新的注释符(/), C 语言中注释符(/* */ )不能在C+语言中使用. 错122 为了减轻使用者的负担,与C 语言相比,C+语言中减少了一些运算符. 错123 C+程序中,每条语句结束时都加一个分号(;). 对124 C+语言中标识符内的大小写字母是没有区别的. 错125 C+语言中不允许使用宏定义方法定义符号常量,只能用关键字const 来

14、定义符号常量. 错126 在编写C+程序时,一定要注意采用人们习惯使用的书写格式,否则会降低其可读性. 对127 C+语言是一种以编译方式实现的高级语言. 对128 在C+程序编译过程中,包含预处理过程、编译过程和连接过程,并且这三个过程的顺序是不能改变的. 对129 预处理过程是编译过程之后、连接过程之前进行的. 错130 源程序在编译过程中可能会出现一些错误信息,但在连接过程中将不会出现错误信息. 错131 任何字符常量与一个任意大小的整型数进行加减都是有意义的. 错132 转义序列表示法只能表示字符不能表示数字. 对133 在命名标识符中,大小写字母是不加区分的. 错134 C+的程序中

15、,对变量一定要先说明再使用,说明只要在使用之前就可以. 对135 C+中数组元素的下标是从0开始,数组元素是连续存储在内存单元中的. 对136 数组赋初值,初始值表中的数据项的数目可以大于或等于数组元素的个数. 错137 枚举变量的取值受到该枚举变量所对应的枚举表中枚举符的局限. 对138 指针是用来存放某种变量的地址值的变量.这种变量的地址值也可以存放在某个变量中,存放某个指针的地址值的变量称为指向指针的指针,即二级指针. 对139 引用是某个变量的别名.对引用的操作,实质上就是对被引用的变量的操作. 对140 运算符的优先级和结合性可以确定表达式的计算顺序. 对141 在说明语句int a

16、(5),&b=a, *p=&a;中,b的值与a 的值是相等的. 对142 已知:int a(5);表达式(a=7)+a 具有二义性. 对143 移位运符在移位操作中,无论左移还是右移,所移出的空位一律补O. 错144 某个变量的类型高是指该变量被存放在内存中的高地址处. 错145 隐含的类型转换都是保值映射,显式的类型转换都是非保值映射. 错146 类型定义是用来定义一些C+中所没有的新类型. 错147 定义结构变量时必须指出该结构变量是属于某种结构类型的. 对148 无名结构是不允许定义结构变量的. 错149 同一结构的不同成员占用不同的内存单元. 对150 联合的所有成员都是没有内存地址的

17、. 错151 联合的所有成员都是没有内存地址的. 错选择题1 下列对派生类的描述中,( D )是错误的. A、一个派生类可以作为另一个派生类的基类 B、派生类至少有一个基类 C、派生类的成员除了它自己的成员外,还包含了它的基类的成员 D、派生类中继承的基类成员的访问权限到派生类保持不变 2 派生类的对象对它的基类中( A )是可以访问的. A公有继承的公有成员 B 公有继承的私有成员 C公有继承的保护成员 D 私有继承的仍有成员 3 派生类的构造函数的成员初始化值表中,不能包含( C ). A基类的构造函数 B、派生类中子对象的初始化 C、派生类中静态数据成员的初始化 D、派生类中一般数据成员

18、的初始化 4 关于子类型的描述中,( A )是错误的.A 子类型就是指派生类是基类的子类型 B一种类型当它至少提供了另一种类型的行为,则这种类型是另一种类型的子类型C在公有继承下,派生类是基类的子类型 D子类型关系是不可逆的 5 下列关于赋值兼容规则的描述中,( B )是错误的.A、赋值兼容规则在子类型情况下才可使用 B、公有继承下,派生类对象不可给基类对象赋值 C、公有继承下,派生类对象可对基类对象引用进行初始化 D、公有继承下,派生类对象的地址值可以赋值给基类的对象指针 6 关于多继承二义性的描述中,( C )是错误的.A、一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问

19、可能出现二义性 B、解决二义性的最常用的方法是对成员名的限定法 C、基类和派生类中同时出现的同名函数,也存在二义性问题 D、一个派生类是从两个基类派生来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,也可能出现二义性 7 设置虚基类的目的是( B ).A、 简化程序 B、消除二义性 C、提高运行效率 D、减少目标代码 8 在带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化( D ). A、与虚基类下面的派生类个数有关 B、多次 C、二次 D、一次 9 下面关键字中,用以说明类中公有成员是( A ). A、public B、pri

20、vate C、protected D、friend 10 下列的各类函数中,( C )不是类的成员函数. A、构造函数 B、析构函数 C、友元函数 D、复制构造函数 11 作用域运算符的功能是( D ). A、标识作用域的级别 B、指出作用域的范围 C、给定作用域的大小 D、标识某个成员是属于哪个类的 12 ( D )不是构造函数的特征.A 构造函数的函数名与类名相同 B、构造函数可以重载C 构造函数可以设置默认参数 D 构造函数必须指定类型说明 13 ( A )是析构函数的特征. A 一个类中只能定义一个析构函数 B 析构函数名与类名不同 C 析构函数的定义只能在类体内 D 析构函数可以有一

21、个或多个参数 14 通常复制构造函数的参数是( C ). A 某个对象名 B 某个对象的成员名 C 某个对象的引用 D 某个对象的指针名 15 下面关于成员函数特征的描述中,( A )是错误的. A 成员函数一定是内联函数 B 成员函数可以重载 C 成员函数可以设置默认值 D成员函数可以是静态的 16 下述静态数据成员的特性中,( D )是错误的. A 说明静态数据成员时前面要加修饰符static B 静态数据成员要在类体外进行初始化C 引用静态数据成员时,可在静态数据成员名前加和作用域运算符 D 静态数据成员不是所有对象共用的 17 友元的作用( A ). A 提高程序的运行效率 B 加强类

22、的封装性 C实现数据的隐藏性 D 增强成员函数的种类 18 已知一个类A,( C )是指向类A成员函数的指针.假如类有三个公有成员:void f1(int),void f2(int)和int a. A A *p int B A:*pc=&A:a C void A:*pa() D A *pp 19 运算符-*的功能是( A ). A 使用对象指针通过指向成员的指针表示成员的运算 B 使用对象通过指向成员的指针表示成员的运算 C 用来表示指向对象指针的成员的运算 D 用来表示对象成员的运算 20 已知f1(int)是类A的公有成员函数,p是指向成员函数f1()的指针,采用( B )是正确的. A

23、p=f1 B p=A:f1 C p=A:f1() D p=f1() 21 已知:p是一个指向类A数据成员m的指针,A1是类A的一个对象.如果要给m赋值为5,( C )是正确的.A A1.p=5 B A1-p=5 C A1.*p=5 D *A1.p=5 22 已知:类A中一个成员函数说明如下:void Set(A &a);其中,A&a的含意是( C ).A 指向类A的指针为a B 将a的地址值赋给变量Set C a是类A 的对象引用,用来作为函数Set()的形参 D 变量A与a按位相与作为函数Set()的参数 23 下列关于对象数组的描述中,( D )是错误的. A 对象数组的下标是从0开始的

24、B对象数组的数组名是一个常量指针 C 对象数组的每个元素是同一个类的对象 D 对象数组只能赋初值,而不能赋值 24 下列定义中,( B )是定义指向数组的指针A p. int *p5 B int (*p)5 C (int *)p5 D int *p 25 下列说明中,const char *ptr;ptr应该是( C ). A 指向字符常量的指针 B 指向字符的常量指针 C 指向字符串常量的指针 D 指向字符串的常量指针 26 已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,( A )是正确的. A void print() const B const void prin

25、t() C void const print() D void print (const) 27 关于new运算符的下列描述中,( D )是错误的. A 它可以用来动态创建对象和对象数组 B 使用它创建的对象或对象数组可以使用运算符delete删除 C 使用它创建对象时要调用析构函数 D 使用它创建对象数组时必须指定初始值 28 关于delete运算符的下列描述中,( C )是错的. A 它必须用于new返回的指针 B它也适用于空指针 C 对一个指针可以使用多次该运算符 D 指针名前只用一对方括号符,不考虑所删除数组的维数 29 具有类型转换功能的构造函数,应该是( B ). A不带参数的构造

26、的构造函数 B 带有一个参数的构造函数 C 带有两个以上参数的构造函数 D 默认构造函数 30 下列关于模板的描述中,错误的是( C ). A 类模板的成员函数可以是函数模板 B 类模板生成模板类时,必须指定参数化的类型所代表的具体类型 C 定义类模板时只允许有一个模板参数 D 类模板所描述的是一组类 31 下列关于多态性说法不正确的是( C ). A 多态性是指同名函数对应多种不同的实现 B 多态性表现为重载和覆盖两种方式 C 重载方式仅有函数重载 D 重载方式包含函数重载和运算符重载 32 下列函数中,( D )不能重载. A 成员函数 B 非成员函数 C 构造函数 D 析构函数 33 下

27、列运算符中,( C )个运算符不能重载. A & B C : D new 34 下列关于运算符重载的描述中,( D )是正确的. A 运算符重载可以改变操作符的个数 B 运算符重载可以改变优先级 C 运算符重载可以改变结合性 D 运算符重载不可以改变语法结构 35 关于动态联编的下列描述中,( D )是错误的.A 动态联编是以虚函数为基础的 B 动态联编是在运行时确定所调用的函数代码的 C 动态联编调用函数操作是用指向对象的指针或是对象的引用 D 动态联编是在编译时确定操作函数的 36 关于虚函数的描述中,( C )是正确的. A 虚函数是一个静态类型的成员 B 虚函数是一个非成员函数 C 基

28、类中说明了虚函数之后, D 派生类中将其对应的函数可不必说明为虚函数 派生类的虚函数与基类的虚函数具有不同的参数个数和类型 37 关于纯虚函数和抽象类的描述中,( C )是错误的. A 纯虚函数是一种特殊的虚函数,没有具体实现 B 抽象类是指具有纯虚函数的类 C 抽象类可以定义对象 D 抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出 38 下列描述中为抽象类的最主要特征的是( D ). A可以说明虚函数 B 可以进行构造函数的重载 C 可以定义友元 D 不能说明其对象 39 进行文件操作时需要包含( B )文件A iostream.h B fstream.h C stdio.h D s

29、tdlib.h 40 使用操作子对数据进行格式输出时,应包含( C )文件. A iostream.h B fstream.h C iomanip.h D stdlib.h 41 已知:int a,*pa=&a;输出指针pa十进制的地址值的方法是( D ). A coutpa; B cout*pa; C cout&pa; D coutlong(&pa) 42 下列输出字符A的方法中,( A )是错误的.A coutput(A); B coutA; C cout.put(A); D char A=A;coutA; 43 关于getline()函数的下列描述中,( D )是错误的.A 该函数是用来

30、从键盘上读取字符串的 B 该函数读取的字符串长度是受限制的 C 该函数读取字符串时遇到终止符便停止 D 该函数中所使用的终止符只能是换行符 44 关于read()函数的下列描述中,( B )是对的.A 该函只能从键盘输入中获取字符串 B 该函数所获取的字符多少是不受限制的 C 该函数只能用于文本文件的操作中 D 该函数只能按规定读取所指定的字符数 45 在ios中提供控制格式的标志位中,( A )是转换为十六进制形式的标志位. A hex B oct C dec D left 46 控制格式输出输入的操作中,( D )是设置域宽的. A ws B oct C setfill() D setw() 47 磁盘文件操作中,打开磁盘文件的访问方式常量中,( C )是以追加方式打开文件的. A in B out C app D ate 48 下列函数中,( D )是对文件进行写操作的.A get() B read() C seekg() D put() 49 预处理命令在程序中都是以( B )开头的. A * B # C : D / 50 文件包含命令中被包含的文件的扩展名( D ). A 必须为.h B 不能用.h C 必须是.c D 不一定是.h 51 下列条件编译命令中 ( A ) #if() # else # endif A 整常量表达式 B 任何标识符 C

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

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