CC++ 练习题2Word文件下载.docx
- 文档编号:20693966
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:32
- 大小:29.80KB
CC++ 练习题2Word文件下载.docx
《CC++ 练习题2Word文件下载.docx》由会员分享,可在线阅读,更多相关《CC++ 练习题2Word文件下载.docx(32页珍藏版)》请在冰豆网上搜索。
D)析构函数可以设置默认参数
7.
对静态成员的不正确描述是(
A)静态成员不属于对象,是类的共享成员
B)静态数据成员要在类外定义和初始化
C)调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针
D)非静态成员函数也可以操作静态数据成员
8.
下面选项中,不是类的成员函数为(
A)构造函数
B)析构函数
C)友元函数
D)缺省参数的构造函数方言
9.
下面对友元的错误描述是(
A)关键字friend用于声明友元
B)一个类的成员函数可以是另一个类的友元
C)友元函数访问对象的成员不受访问特性影响
D)友元函数通过this指针访问对象成员
10.在C++中,类与类之间的继承关系具有(
A)自反性
B)对称性
C)传递性
D)反对称性
11.
下列关于类的继承描述中,(
)是错误的
派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数
派生类也是基类,但基类不一定具有派生类的全部属性和方法
继承描述类的层次关系,派生类可以具有与基类相同的属性和方法
一个基类可以有多个派生类,一个派生类可以有多个基类
12.
当一个派生类仅有继承一个基类时,基类中的所有公有成员成为派生类的(
A)public成员
B)private成员
C)protected成员
D)友元
13.
当一个派生类私有继承一个基类时,基类中的所有仅有成员和保护成员成为派生类的(
14.
不论派生类以何种方法继承基类,都不能使用基类的(
D)public成员和protected成员
15.
下面描述中,错误的是(
)(两个答案)
在基类定义的public成员在公有继承的派生类中可见,也能在类外被访问
在基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问
在基类定义的public和protected成员在保护继承的派生类中不可见
D)在派生类中不可见的成员要变成可访问的,需要进行访问声明
16.
在C++中,不能被派生类继承的函数是(
D)静态成员函数
17.在创建派生类对象时,构造函数的执行顺序是(
对象成员构造函数、基类构造函数、派生类本身的构造函数
派生类本身的构造函数、基类构造函数、对象成员构造函数
基类构造函数、派生类本身的构造函数、对象成员构造函数
基类构造函数、对象成员构造函数、派生类本身的构造函数
18.当不同的类具有相同的间接基类时,有特点(
各派生类对象将按继承路线产生自己的基类版本
B)派生类对象无法产生自己的基类版本
为了建立惟一的间接基类版本,在基类定义前加virtual即可
为了建立惟一的间接基类版本,应该声明虚继承
19.
在C++中,要实现动态联编,必须使用(
)调用虚函数
A)类名
B)派生类指针
C)对象名
D)基类指针
20.
下列函数中,可以作为虚函数的是(
A)普通函数
C)成员函数
D)析构函数
21.
在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值(
A)不同
B)相同
C)相容
D)部分相同
22.下面函数原型声明中,(
)声明了fun为虚函数
A)voidfun()=0;
B)virtualvoidfun()=0;
C)virtualvoidfun();
D)virtualvoidfun(){};
23.
若一个类中含有纯虚函数,则该类称为(
A)基类
B)纯基类
C)派生类
D)抽象类
24.假设A为抽象类,下列声明(
)是正确的
A)Afun(int);
B)A*p;
C)intfun(A);
D)AObj;
25.
下面描述中,正确的是(
A)虚函数是没有实现的函数
B)纯虚函数的实现在派生类中
C)抽象类是没有纯虚函数的类
D)抽象类指针可以指向不同的派生类
26.关于函数模板,描述错误的是(
函数模板必须由程序员实例化为可执行的函数模板
函数模板的实例化由编译器实现
一个类定义中,只要有一个函数模板,则这个类是类模板
类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化
27.
下列的模板说明中,正确提(
template<
typenameT1,typenameT2>
classT1,T2>
classT1,classT2>
typenameT1;
typenameT2>
28.
假设有函数模板定义如下:
Template<
typenameT>
Max(Ta,Tb,T&
c)
{c=a+b;
}
下列选项正确的是(
floatx,y;
floatz;
Max(x,y,z);
B)
intx,y,z;
intx,y;
D)
floatx;
inty,z;
29.关于类模板,描述错误的是(
一个普通基类不能派生类模板
类模板从普通类派生,也可以从类模板派生
根据建立对象时的实际数据类型,编译器把类模板实例化为模板类
函数的类模板参数须通过构造函数实例化
30.
建立类模板对象的实例化过程为(
A)基类à
派生类
B)构造函数à
对象
C)模板类à
对象
D)模板类à
模板函数
31.在C++中,容器是一种(
A)标准类
B)标准对象
C)标准函数
D)标准类模板
32.下列类中(
)(两个答案)不是输入/输出流类iostream的派生类
A)fstream
B)ofstream
C)strstream
D)ostrstream
33.在下列选项中(
)(三个答案)是ostream类的对象
A)cin
B)cerr
C)clog
D)cout
34.
read函数的功能是从输入流中读取(
A)一个字符
B)当前字符
C)一行字符
D)指定若干个字符
35.下列选项中,用于清除基数格式位置以十六制输出的语句是(
cout<
<
setf(ios:
:
dec,ios:
basefield);
cout<
hex,ios:
oct,ios:
cin>
>
36.
下列格式控制符,在iostream.h中定义的是(
)(两个答案),在iomanip.h中定义的是(
A)endl
B)setfill
C)setw
D)oct
37.下列串流类,在strstream.h中定义的是(
)(两个答案),在sstream.h中定义的是(
A)istringstream
B)istrstream
C)ostringstream
D)ostrstream
38.
包含类fstream定义的头文件是(
A)fstream.h
B)ofstream.h
C)ifstream.h
D)iostream.h
39.
要求打开文件d:
\file.dat,可写入数据,正确的语句是(
ifstreaminfile(“d:
\file.dat”,ios:
in);
\\file.dat”,ios:
ofstreaminfile(“d:
out);
D)fstreaminfile(“d:
in|ios:
40.
假定已定义浮点型变量data,以二进制方式把data的值写入输出文件流对象outfile中去,正确的语句是(
outfile.write((float*)&
data,sizeof(float));
data,data);
outfile.write((char*)&
参考答案1-10CCA(BC)B
CCCDC11-20AABB(BC)
(BC)D(AD)D(CD)
21-30BBDB(BD)
A(AD)(AD)DC
31-40D(BD)(BCD)DB(ADBC)(BDAC)ADC
C++程序设计练习2
1、类aClass的定义如下:
classaClass{public:
aClass(){}aClass(inti){value=newint(i);
}int*value;
}若要对类中的value赋值,则下面的语句中,正确的是()
A、aClassmy;
my.value=10;
B、aClassmy;
*my.value=10;
C、aClassmy;
my.*value=10;
D、aClassmy(10);
2、每个类()构造函数
A、只能有一个B、只可有公有的C、可以有多个D、只可有缺省的
3、已知类A中的一个成员函数的说明如下:
voidSet(A&
a);
则该函数的参数“A&
a”的含义是()
A、指向A的指针为aB、将变量a的地址赋给类A
C、类A对象引用a用作函数的形参D、变量A与a按位与后作函数参数
4、下列特性中,C与C++共有的是()
A、继承B、封装C、多态性D、函数定义不能嵌套
5、假定AB为一个类,则执行ABx;
语句时将自动调用该类的()
A、有参构造函数B、无参构造函数C、拷贝构造函数D、赋值构造函数
6、如果类A被说明成类B的友元,则()
A、类A的成员即类B的成员B、类B的成员即类A的成员
C、类A的成员函数不得访问类B的成员D、类B不一定是类A的友元
7、下列不是类的成员函数的是()
A、构造函数B、析构函数C、友元函数D、拷贝构造函数
8、拷贝(复制)构造函数的作用是
A、进行数据类型的转换B、用对象调用成员函数
C、用对象初始化对象D、用一般类型的数据初始化对象
9、若要把函数voidf()定义为类aClass的友元函数,则应该在类aClass的定义中加入的语句是()
A、voidf();
B、staticvoidf();
C、friendf();
D、friendvoidf();
10、下列关于析构函数的描述中,错误的是()
A、类中有且仅有一个析构函数B、析构函数可以有形参
C、析构函数没有函数类型D、析构函数在对象消失时被自动执行
11、下面对静态数据成员的描述中,正确的是()
A、静态数据成员可以在类体内进行初始化B、静态数据成员不可以被类的对象调用
C、静态数据成员不能受private控制符的作用D、静态数据成员可以直接用类名调用
12、下面关于友元函数的描述中,正确的是()
A、友元函数的实现必须在类的内部定义B、友元函数是类的成员函数
C、友元函数破坏了类的封装性和隐藏性D、友元函数不能访问类的私有成员
13、下列关于new运算符的描述中,错误的是()
A、使用运算符new创建对象组时必须定义初始值
B、使用运算符new创建对象时,会调用类的构造函数
C、运算符new可以用来动态创建对象和对象数组
D、使用new运算符创建的对象可以运用运算符delete删除
14、下列对类的构造函数和析构函数的描述中,正确的是()
A、构造函数可以重载,析构函数不能B、构造函数不能重载,析构函数可以
C、构造函数可以重载,析构函数也可以重载D、构造函数不能重载,析构函数也不能重载
15、在C++中,数据封装要解决的问题是()
A、数据的规范化B、便于数据转换
C、避免数据丢失D、防止不同模块之间数据的非法访问
16、假定MyClass为一个类,那么下列的函数说明中,()为该类的析构函数.
A、void~MyClass();
B、~MyClass(intn);
C、MyClass();
D、~MyClass();
17、为了使类中的成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为()
A、publicB、protectedC、privateD、static
18、对于下面定义的类MyClass,在函数f()中将对象成员n的值修改为50的语句(划线处)应该是()
classMyClass
{
public:
MyClass(intx)
n=x;
}
voidSetValue(intn1)
n=n1;
private:
intn;
};
intf()
MyClass*ptr=newMyClass(45);
__________;
A、MyClass(50)B、SetValue(50)
C、ptr->
SetValue(50)D、ptr->
n=50
19、类MyClass的定义如下:
MyClass()
value=0;
setVariable(inti)
value=i;
intvalue;
则以下各项对如下语句序列的描述中,正确的是().
MyClass*p,my;
p=&
my;
A、语句”p=&
”是把对象my赋值给指针变量p
B、语句”MyClass*p,my;
”会调用两次类MyClass的构造函数
C、对语句”*p.SetVariable(5)”的调用是正确的
D、语句”p->
SetVariable(5)”与语句”my.SetVariable(5)”等价
20、下面类的定义,有()错误.classMyClass{inti=0;
voidMyClass();
~MyClass(intValue);
A、1B、2C、3D、4
21、定义析构函数时,应该注意()
A、其名与类名完全相同B、返回类型是void类型
C、无形参,也不可重载D、函数体中必须有delete语句
22、构造函数不具备的特征的是()
A、构造函数的函数名与类名相同B、构造函数可以重载
C、构造函数可以设置默认参数D、构造函数必须指定返回类型
23、类的析构函数是在什么时间被自动调用的?
()
A、类创建时B、创建对象时
C、删除对象时D、不自动调用
24、对于任何一个类,析构函数最多有()个
A、0B、1C、2D、3
25、通常,拷贝构造函数的参数是()
A、某个对象名B、某个对象的成员名
C、某个对象的引用名D、某个对象的指针名
26、面向对象程序设计中的数据隐藏指的是()
A、输入数据必须输入保密口令
B、数据经过加密处理
C、对象内部数据结构上建有防火墙
D、对象内部数据结构的不可访问性
27、下列关于类的访问权限的描述中,错误的是().
A、说明为公有的成员可以被程序中的任何代码访问
B、说明为私有的成员只能被类的成员和说明为友元类的成员函数访问
C、说明为保护的成员,除了能被本身的成员函数和说明为友元类的成员函数访问外,该类的派生类的成员也可以访问
D、类的所有成员都可以被程序中的任何代码访问
28、一个类的友元函数或友元类可以访问该类的()
A、私有成员
B、保护成员
C、公有成员
D、所有成员
29、下列关于成员函数特征的描述中,错误的是()
A、成员函数一定是内联函数
B、成员函数可以重载
C、成员函数可以设置参数的默认值
D、成员函数可以是静态的
继承和派生---练习题
1、下列虚基类的声明中,正确的是( )。
A、classvirtualB:
publicAB、virtualclassB:
publicA
C、classB:
publicAvirtualD、classB:
virtualpublicA
2、C++类体系中,不能被派生类继承的有()。
A、构造函数B、虚函数C、静态成员函数D、赋值操作函数
3、下列说法错误的是()。
A、公有继承的基类中的public成员在派生类中仍是public的
B、公有继承的基类中的private成员在派生类中仍是private的
C、私有继承的基类中的public成员在派生类中变成private的
D、保护继承的基类中的public成员在派生类中变成protected的
4、下列对继承的描述中,错误的是()。
A、析构函数不能被继承
B、派生类也是基类的组合
C、派生类的成员除了它自己的成员外,还包含了它的基类的成员
D、派生类中继承的基类成员的访问权限到派生类保持不变
5、下列对基类和派生类关系的描述中,错误的是()。
A、派生类是基类的具体化
B、派生类是基类的子集
C、派生类是基类定义的延续
D、派生类是基类的组合
6、C++中的类有两种用法:
一种是类的实例化,即生成类对象,并参与系统的运行;
另一种是通过()派生了新的类。
A、复用B、继承C、封装D、引用
7、C++类体系中,能被派生类继承的是()
A、构造函数B、虚函数C、析构函数D、友元函数
8、关于多继承二义性的描述,()是错误的。
A、派生类的多个基类中存在同名成员时,派生类对这个成员访问可能出现二义性
B、一个派生类是从具有共同的间接基类的两个基类派生来的,派生类对该公共基类的访问可能出现二义性
C、解决二义性最常用的方法是作用域运算符对成员进行限定
D、派生类和它的基类中出现同名函数时,将可能出现二义性
9、下列对派生类的描述中,()是错误的。
A、一个派生类可以作为另一个派生类的基类
B、派生类至少有一个基类
C、派生类的成员除了它自己的成员外,还包含了它的基类成员
10、若类A和类B的定义如下:
classA
inti,j;
intgeti(){returni;
classB:
publicA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CC+ 练习题2 CC 练习题