c期末考试选择题整理Word格式.docx
- 文档编号:21201070
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:25
- 大小:29.98KB
c期末考试选择题整理Word格式.docx
《c期末考试选择题整理Word格式.docx》由会员分享,可在线阅读,更多相关《c期末考试选择题整理Word格式.docx(25页珍藏版)》请在冰豆网上搜索。
c向c++的转变
1、C++对C语言作了很多改进,下列描述中(D )使得C语言发生了质变,从面向过程变成了面向对象。
A、增加了一些新的运算符;
B、允许函数重载,并允许设置缺省参数;
C、规定函数说明必须用原型;
D、引进了类和对象的概念;
c与c++的共性
1、下列特性中,C与C++共有的是(D)
A、继承B、封装C、多态性D、函数定义不能嵌套
2、对于C/C++语言的函数,下列叙述中正确的是(A)。
A、函数的定义不能嵌套,但函数调用可以嵌套
B、函数的定义可以嵌套,但函数调用不能嵌套
C、函数的定义和调用都不能嵌套
D、函数的定义和调用都可以嵌套
3、关于C++与C语言关系的描述中,(D)是错误的。
A、C语言是C++语言的一个子集B、C语言与C++语言是兼容的
C、C++语言对C语言进行了一些改进D、C++语言和C语言都是面向对象的
抽象类
1、下列描述中,(D)是抽象类的特性。
A、可以说明虚函数;
B、可以进行构造函数重载;
C、可以定义友元函数;
D、不能说明其对象。
2、关于纯虚函数和抽象类的描述中,(C)是错误的。
A、纯虚函数是一种特殊的虚函数,它没有具体的实现;
B、抽象类是指具有纯虚函数的类;
C、一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类;
D、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出。
冲突解决
1、C++中解决命名冲突的机制是:
D
(A)虚基类(B)虚函数(C)函数重载(D)名字空间
成员函数
1、下列不是描述类的成员函数的是(C)
A、构造函数B、析构函数C、友元函数D、拷贝构造函数
2、关于成员函数特征的下述描述中,(A)是错误的。
A、成员函数一定是内联函数;
(注:
可以是内联函数,也可以是外联函数)
B、成员函数可以重载;
C、成员函数可以设臵参数的缺省值;
D、成员函数可以是静态的。
3、下面关于类的成员函数描述不正确的是:
A
(A)静态成员函数内可以直接访问类的非静态成员数据
(B)静态成员函数内可以直接访问类的静态成员数据
(C)非静态成员函数可以直接访问类的非静态成员数据
(D)非静态成员函数可以直接访问类的静态成员数据(全局成员)
拷贝构造函数
1、通常,拷贝构造函数的参数是(C)
A.某个对象名B.某个对象的成员名
C.某个对象的引用名D.某个对象的指针名
2、假定AB为一个类,则(C)为该类的拷贝构造函数的原型说明。
A.AB(ABx);
B.AB(intx);
C.AB(AB&
x);
D.voidAB(AB&
3、类MyA的拷贝初始化构造函数是()
A.MyA()
B.MyA(MyA*)
C.MyA(MyA&
)
D.MyA(MyA)
答案:
解析:
复制即拷贝构造函数使用对象的引用作形参,防止临时产生一个对象,A无参构造函
数,B是指针作为形参,D项是对象,所以选择C项。
存储字节
1、存储以下数据,占用存储字节最多的是(D)。
A.0B.‘0’C.“0”D.0.0
代码运行流程
1、C++程序从上机到得到结果的几个操作步骤依次是(B)。
A.编译、编辑、连接、运行B.编辑、编译、连接、运行
C.编译、运行、编辑、连接D.编辑、运行、编辑、连接
多态
1、实现运行时的多态性用(D)
A、重载函数B、构造函数C、析构函数D、虚函数
2、所谓多态性是指()
A.不同的对象调用不同名称的函数
B.不同的对象调用相同名称的函数
C.一个对象调用不同名称的函数
D.一个对象调用不同名称的对象
多态性有两种静态多态性和动态多态性,静态多态性是指调用同名函数,由于参数
的不同调用不同的同名函数;
动态多态性是指不同对象调用同名函数时,由于对象不同调用不同
的同名函数。
多态性肯定具有相同的函数名,所以选择B项。
3、有关多态性说法不正确的是()
A.C++语言的多态性分为编译时的多态性和运行时的多态性
B.编译时的多态性可通过函数重载实现
C.运行时的多态性可通过模板和虚函数实现
D.实现运行时多态性的机制称为动态多态性
多态性分为静态的和动态的。
静态通过函数的重载来实现,动态是通过基类指针或
基类引用和虚函数来实现的。
所以错误的是C项。
堆运算符
1、关于堆运算符的下列描述中,(C)是错误的。
A、使用堆运算符可以动态建立或删除对象;
B、new运算符创建对象时要调用构造函数;
C、可以在使用new[]创建数组时,为每个数组元素指定初始值;
D、delete运算符可以作用于空指针;
delete运算符
1、关于delete运算符的下列描述中,(C)是错的。
A、它必须用于new返回的指针;
B、它也适用于空指针;
C、对一个指针可以使用多次该运算符;
D、指针名前只用一对方括号符,不管所删除数组的维数。
动态联编
1、关于动态联编的下列描述中,(D)是错误的。
A、动态联编是以虚函数为基础的;
B、动态联编是在运行时确定所调用的函数代码的;
C、动态联编调用函数操作是指向对象的指针或对象引用;
D、动态联编是在编译时确定操作函数的
for循环
1、对for(表达式1;
;
表达式3)可理解为B。
A)for(表达式1;
0;
表达式3)
B)for(表达式1;
1;
C)for(表达式1;
表达式1;
D)for(表达式1;
表达式3;
封装
1、关于封装,下列说法中不正确的是(D)。
A.通过封装,对象的全部属性和操作结合在一起,形成一个整体
B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)
C.通过封装,每个对象都成为相对独立的实体
D.通过封装,对象的属性都是不可见的
2、所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是(A)。
A.类B.对象C.函数体D.数据块
3、在C++中实现封装是借助于(B)
A、枚举B、类C、数组D、函数
返回类型
1、决定C++语言中函数的返回值类型的是()
A.return语句中的表达式类型
B.调用该函数时系统随机产生的类型
C.调用该函数时的主调用函数类型
D.在定义该函数时所指定的数据类型
构造函数
1、下列关于构造函数的论述中,不正确的是_______C
A.构造函数的函数名与类名相同B.构造函数可以设置默认参数
C.构造函数的返回类型缺省为int型D.构造函数可以重载
2、下面有关构造函数的描述中,正确的是(B)。
A.构造函数可以带有返回值B.构造函数的名字与类名完全相同
C.构造函数必须带有参数D.构造函数必须定义,不能缺省
3、构造函数是在(B)时被执行的。
A.程序编译B.创建对象C.创建类D.程序装入内存
4、假定AB为一个类,则执行ABx;
语句时将自动调用该类的(B)
A、有参构造函数B、无参构造函数C、拷贝构造函数D、赋值重载函数
5、构造函数不具备的特征的是(D)
A、构造函数的函数名与类名相同B、构造函数可以重载
C、构造函数可以设臵默认参数D、构造函数必须指定类型说明
6、具有转换函数功能的构造函数,应该是(B)。
A、不带参数的构造函数;
B、带有一个参数的构造函数;
C、带有两个以上参数的构造函数;
D、缺省构造函数。
7、假定AB为一个类,则执行“ABa
(2),b[3],*p[4];
”语句时调用该类构造函数的次数
为()
A.3
B.4
C.5
D.9
a
(2)调用1次带参数的构造函数,b[3]调用3次无参数的构造函数,指针没有给它
分配空间,没有调用构造函数。
所以共调用构造函数的次数为4。
8、假定一个类的构造函数为“A(inti=4,intj=0){a=i;
b=j;
}”,则执行“Ax
(1);
”语
句后,x.a和x.b的值分别为()
A.1和0
B.1和4
C.4和0
D.4和1
带默认的构造函数,对应实参没有值时就采用形参值。
调用构造函数时,i=1,不采
用默认值,而只有一个参数,j采用默认值0即j=0,因此a=1,b=0,选择A项。
函数重载
1、函数重载的目的是________B
A.实现共享B.使用方便,提高可读性C.提高速度D.减少空间
2、不能作为函数重载判断的依据的是(B)
A.返回类型B.constC.参数个数D.参数类型
3、系统在调用重载函数时,往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是(D)
A、参数个数B、参数的类型C、函数名称D、函数的类型
4、下列对重载函数的描述中,(A)是错误的。
A、重载函数中不允许使用缺省参数;
//注:
可以使用,但要求不存在二义性。
B、重载函数中编译系统根据参数表进行选择;
C、不要使用重载函数来描述毫无相干的函数;
D、构造函数重载将会给初始化带来多种方式。
5、下列有关重载函数的说法中正确的是()
A.重载函数必须具有不同的返回值类型
B.重载函数参数个数必须相同
C.重载函数必须有不同的形参列表
D.重载函数名可以不同
函数的重载必须函数名相同而形参类型或个数不同,与返回值无关。
继承
1、在C++中继承方式有几中(C)
A.1B.2C.3D.4
2、继承的情况下,基类成员在派生类中的访问权限(A)
A、受限制B、保持不变C、受保护D、不受保护
3、C++类体系中,不能被派生类继承的有(B)
A、转换函数B、构造函数C、虚函数D、静态成员函数
4、在C++中,数据封装要解决的问题是(D)
A、数据规范化排列B、数据高速转换
C、避免数据丢失D、切断了不同模块之间的数据的非法使用
5、继承机制的作用是(C)
A、信息隐藏B、数据封装C、定义新类D、数据抽象
6、关于多继承二义性的描述中,(C)是错的。
A、一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性;
B、解决二义性的最常用的方法是对成员名的限定法;
C、基类和派生类中同时出现的同名函数,也存在二义性问题;
D、一个派生类是从两个基类派生来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,也可能出现二义性。
类的概念
1、在下列关于类概念的各描述中,A是错误的。
A)类就是C语言中的结构体类型;
B)类是具有共同行为的若干对象的统一描述体;
C)类是创建对象的样板;
D)类是抽象数据类型的实现。
2、类是逻辑上相关的函数与数据的封装。
特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。
3、下面有关类说法不正确的是(C)
A、一个类可以有多个构造函数B、一个类只有一个析构函数
C、析构函数需要指定参数D、在一个类中可以说明具有类类型的数据成员
类(函数)模版
1、类模板的使用实际上是将类模板实例化成一个具体的(A)
A、类B、对象C、函数D、模板类
2、实现两个相同类型数加法的函数模板的声明是()
A.add(Tx,Ty)
B.Tadd(x,y)
C.Tadd(Tx,y)
D.Tadd(Tx,Ty)
实现两个相同类型数加法结果应该和操作数具有相同类型。
进行加法运算后结果也
是和参数具有相同类型,需要返回值。
A无返回值时要用void,B形参无类型,C形参y没有类型
,所以选择D项。
面向对象
1、______不是属于面向对象程序设计的特性B
A.抽象性B.数据相关性C.多态性D.继承性
内存分配
1、动态内存分配的主要目的是_______B
A.使程序按动态联编方式运行B.正确合理的使用内存
C.提高程序的运行速度D.提高程序的可维护性
内联函数
1、一个函数功能不太复杂,但要求被频繁调用,选用(A)
A、内联函数B、重载函数C、递归函数D、嵌套函数
2、在(C)情况下适宜采用inline定义内联函数。
A、函数体含有循环语句B、函数体含有递归语句
C、函数代码少、频繁调用D、函数代码多、不常调用
3、一个函数功能不太复杂,但要求被频繁调用,则应把它定义为()
A.内联函数
B.重载函数
C.递归函数
D.嵌套函数
内联函数特征代码少,频繁调用,执行效率高。
重载函数解决统一接口的问题;
递
归是子程序调用,程序调用要耗费很多空间和时间,循环/迭代都比递归有效率得多,递归只是
从形式上,逻辑比较简洁。
嵌套函数即反复调用,速度较慢。
所以选择A项。
new运算符
1、关于new运算符的下列描述中,(D)是错误的。
A、它可以用来动态创建对象和对象数组;
B、使用它创建的对象或对象数组可以使用运算符delete删除;
C、使用它创建对象时要调用构造函数;
D、使用它创建对象数组时必须指定初始值;
派生类
1、使用派生类的主要原因是(A)
A.提高代码的可重用性B.提高程序的运行效率
C.加强类的封装性D.实现数据的隐藏
2、假设已经定义好了类student,现在要定义类derived,它是从student私有派生的,则定义类derived的正确写法是(D)
A.classderived:
:
studentprivate{//………….}
B.classderived:
studentpublic{//………….}
C.classderived:
publicstudent{//………….}
D.classderived:
privatestudent{//………….}
3、派生类的对象对它的基类成员中(A)是可以访问的。
A.公有继承的公有成员;
B.公有继承的私有成员;
C.公有继承的保护成员;
D.私有继承的公有成员。
4、可以用p.a的形式访问派生类对象p的基类成员a,其中a是(D)
A、私有继承的公有成员B、公有继承的私有成员
C、公有继承的保护成员D、公有继承的公有成员
5、在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是(C)
A、派生类的对象可以赋给基类的对象B、派生类的对象可以初始化基类的引用
C、派生类的对象可以直接访问基类中的成员D、派生类的对象的地址可以赋给指向基类的指针
6、下列对派生类的描述中,(D)是错的。
A、一个派生类可以作另一个派生类的基类;
B、派生类至少有一个基类;
C、派生类的成员除了它自己的成员外,还包含了它的基类的成员;
D、派生类中继承的基类成员的访问权限到派生类保持不变。
7、对基类和派生类的关系描述中,(B)是错的。
A、派生类是基类的具体化;
B、派生类是基类的子集;
C、派生类是基类定义的延续;
D、派生类是基类的组合。
8、派生类的构造函数的成员初始化列中,不能包含(C)。
A、基类的构造函数;
//用于基类子对象的构造(初始化)
B、派生类中子对象的初始化;
C、基类的子对象初始化;
//基类子对象的初始化,可以!
D、派生类中一般数据成员的初始化。
static成员
1、下列静态数据成员特性中,D是错误的。
A)说明静态数据成员时前边要加修饰符static;
B)静态数据成员要在类体外进行初始化;
C)引用静态数据成员时,要在静态数据成员名前加<
类名>
和作用域分辨符;
D)静态数据成员不是所有对象共有的。
2、下面有关静态成员函数的描述中,正确的是(B)
A.在静态成员函数中可以使用this指针
B.在建立对象前,就可以为静态数据成员赋值
C.静态成员函数在类外定义是,要用static前缀
D.静态成员函数只能在类外定义、
3、下面对静态数据成员的描述中,正确的是(C)
A类的不同对象有不同的静态数据成员值
B类的每个对象都有自己的静态数据成员
C静态数据成员是类的所有对象共享的数据
D静态数据成员不能通过类的对象调用、
4、静态成员函数不能说明为(C)
A、整型函数B、浮点函数C、虚函数D、字符型函数
5、静态成员函数没有(B)
A、返回值B、this指针C、指针参数D、返回类型
6、静态成员函数仅能访问(D)。
A、静态的数据成员B、非静态的成员函数C、非静态的数据成员D、以上都不对
数组
1、下列关于对象数组的描述中,(D)是错的。
A、对象数组的下标是从0开始的;
B、对象数组的数组名是一个常量指针:
C、对象数组的每个元素是同一个类的对象;
D、对象数组只能赋初值,而不能被赋值。
2、下列定义中,(B)是定义指向数组的指针p。
A、int*p[5];
//指针数组B、int(*p)[5];
//行数组指针
C、(int*)p[5];
D、int*p[];
//指针数组
实参
1、下面哪种定义方式是正确的,并且使得p可以作为函数voidf(A*constpp);
的实参:
(A)A*p=newA;
(B)Aa;
A*p=a;
(C)constA*p=newA;
(D)Aa;
constA*p=a;
2、使用地址作为实参传给形参,下列说法正确的是()
A.实参是形参的备份
B.实参与形参无联系
C.形参是实参的备份
D.实参与形参是同一对象
地址作为实参,表示实参与形参代表同一个对象。
如果实参是数值,形参也是普通
变量,此时形参是实参的备份。
所以选择D项。
私有数据成员
1、下面关于访问类A的私有数据成员的说法,错误的是:
C
(A)类A的友元函数可以访问类A的私有成员。
(B)类A的友元类中的非静态成员函数可以访问类A的私有成员。
(C)类A的嵌套类中的非静态成员函数可以访问类A的私有成员。
(D)类A中的非静态成员函数可以访问类A的私有成员。
输入输出
1、在C++中,使用流进行输入输出,其中用于屏幕输入()
A.cin
B.cerr
C.cout
D.clog
(1)标准输入流cin:
istream类的对象。
(2)标准输出流cout:
ostream类的对象。
(3)非缓冲型标准出错流cerr:
(4)缓冲型标准出错流clog:
ostream类的对象
this指针
1、下列关于this指针的说法,哪个是正确的:
D
(A)this指针一定指向常量型数据(B)this指向的数据不可更改
(C)静态成员函数中也可以访问this指针(D)this指针本身可直接作为成员函数的返回值
2、关于this指针使用说法正确的是()
A.保证每个对象拥有自己的数据成员,但共享处理这些数据的代码
B.保证基类私有成员在子类中可以被访问。
C.保证基类保护成员在子类中可以被访问。
D.保证基类公有成员在子类中可以被访问。
this指针是隐藏的,可以使用该指针来访问调用对象中的数据。
基类的成员在派生
类中能否访问,与继承方式有关,与this没有关系。
3、this指针存在的目的是()
A.保证基类私有成员在子类中可以被访问
B.保证基类保护成员在子类中可以被访问
C.保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码
D.保证基类公有成员在子类中可以被访问
C++要求函数在被调用之前,应当让编译器知道该函数的原型,以便编译器利用函数
原型提供的信息去检查调用的合法性,强制参数转换成为适当类型,保证参数的正确传递。
对于
标准库函数,其声明在头文件中,可以用#include宏命令包含这些原型文件;
对于用户自定义函
数,先定义、后调用的函数可以不用声明,但后定义、先调用的函数必须声明。
一般为增加程序
的可理解性,常将主函数放在程序开头,这样需要在主函数前对其所调用的函数一一进行声明
,以消除函数所在位置的影响。
所以选择C项。
虚基类
1、设置虚基类的目的是________D
A.简化程序B.使程序按动态联编方式运行
C.提高程序运行效率D.消除二义性
析构函数
1、对于任意一个类,析构函数的个数最多为(B)
A、0B、1C、2D、3
2、(D)是析构函数的特征。
A、析构函数可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 期末考试 选择题 整理