面向对象程序设计复习题库.docx
- 文档编号:2883776
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:16
- 大小:529.87KB
面向对象程序设计复习题库.docx
《面向对象程序设计复习题库.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计复习题库.docx(16页珍藏版)》请在冰豆网上搜索。
面向对象程序设计复习题库
判断题
1.C++中标识符内的大小写字母是没有区别的。
2.C++是一种以编译方式实现的高级语言。
3.在私有继承中,基类中所有成员对派生类都是不可见的。
4.在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。
5.使用关键字class定义的类中缺省的访问权限是私有(private)的。
6.引用就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。
7.类封装了数据和操作。
8.析构函数可以有形参。
9.派生类至少有一个基类。
10.全局函数和静态成员函数也能声明为虚函数。
11.在公有和保护继承方式下,派生类的对象可以对基类的保护成员进行访问
12.友元本身就是类的成员。
13.一个类只能有一个对象。
14.构造函数没有函数类型。
15.构造函数没有函数类型。
16.只有类的成员函数才能声明为虚函数。
17.所谓私有成员是指只有类中所提供的成员函数才能直接访问它们,任何类以外的函数对它们的访问都是非法的。
18.For循环是只有可以确定的循环次数时才可使用,否则不能用for循环。
19.通常的拷贝初始化函数的参数是某个对象的成员名或对象的引用名。
20.已知:
类A中一个成员函数说明如下:
voidSet(A&a);其中A&a的含意是将a的地址值赋给变量Set。
选择题
1.一个最简单的C++程序,可以只有一个(2分)
A.库函数B.自定义函数C.main函数D.空函数
2.C++程序中的简单语句必须以()结束(2分)
A.冒号B.分号C.空格D.花括号
3.下列选项中,全部都是C++关键字的选项为(2分)
A.whileIFStaticB.breakchargoC.sizeofcaseexternD.switchfloatinteger
4.下列正确的字符常量为(2分)
A."a"B.'name'C.aD.'\101'
5.下列选项中,()不能交换变量a和b的值。
(2分)
A.t=b;b=a;a=t;B.a=a+b;b=a-b;a=a–b;C.t=a;a=b;b=t;D.a=b;b=a;
6.已知inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则不能表示数组a中元素的式子是()(2分)
A.*aB.*pC.aD.a[p-a]
7.在下列运算符中,()优先级最高。
(2分)
A.<=B.*=C.+D.*
8.对于以下程序段,表达式正确的是
classbase{public:
intb;};
classbase1:
publicbase{};
classbase2:
publicbase{};
classderived:
publicbase1,publicbase2{public:
intfun();};
derivedd;(2分)
A.d.base1:
:
bB.d.base:
:
bC.d.bD.d.base:
:
fun()
9.派生类的对象与基类的对象的关系是(2分)
A.属于前者则不属于后者
B.属于前者,不一定属于后者
C.不属于前者则一定不属于后者
D.属于前者则一定属于后者
10.如果没有使用关键字,则所有成员(2分)
A.都是public权限B.都是protected权限C.都是private权限D.权限情况不确定
11.下列说法中正确的是(2分)
A.运算符new用于建立生存期可控的对象
B.new建立动态对象的语法完全不同于建立动态变量的情况
C.使用new建立的动态对象不用时必须调用析构函数删除
D.new和构造函数不能同时使用
12.一个类最多可有几个虚析构函数(2分)
A.不定B.4C.3D.1
13.关于下面程序段,说法正确的是
classA{
private:
intn;
public:
A(A&);
};
A:
:
A(A&a){n=a.n;}(2分)
A.Aobj2(obj1);用对象obj1初始化具有相同类类型的对象obj2
B.Aobj2(obj1);用对象obj2初始化具有相同类类型的对象obj1
C.A(A&a)也可以不使用引用参数而仍然是复制初始化构造函数
D.A(A&a)不能访问对象的私有成员
14.析构函数不用于(2分)
A.在对象创建时执行一些清理任务
B.在对象消失时执行一些清理任务
C.释放由构造函数分配的内存
D.在对象的生存期结束时被自动调用
15.形如X:
:
X(X&)的构造函数称为(2分)
A.拷贝函数B.复制函数C.初始化构造函数D.拷贝初始化构造函数
16.有关类作用域,下列说法中不正确的是(2分)
A.说明类时使用的一对花括号形成所谓的类作用域
B.类作用域不包含类中成员函数的作用域
C.类作用域中说明的标识符只在类中可见
D.在可能出现两义性的情况下,必须使用作用域限定符“:
:
”
17.缺省的析构函数的函数体是(2分)
A.不存在的B.随机产生的C.空的D.无法确定的
18.以下说法中正确的是(2分)
A.一个类只能定义一个构造函数,但可以定义多个析构函数
B.一个类只能定义一个析构函数,但可以定义多个构造函数
C.构造函数与析构函数同名,只是名字前加了一个波浪号(~)
D.构造函数可以指定返回类型;而析构函数不能指定任何返回类型,即使是void类型也不可以
19.getline函数的功能是从输入流中读取()(2分)
A.一个字符B.当前字符C.一行字符D.指定若干个字节
20.要求打开文件D:
\file.dat,并能够读写数据,正确的语句是()(2分)
A.ifstreaminfile(“D:
\\file.dat”,ios:
:
in);
B.ifstreaminfile(“D:
\\file.dat”,ios:
:
out);
C.ofstreamoutfile(“D:
\\file.dat”,ios:
:
in);
D.fstreaminfile(“D:
\\file.dat”,ios:
:
in|ios:
:
out);
21.关于C++语言,下列说法不正确的是(2分)
A.A.C++具有简洁、高效和接近汇编语言的特点
B.B.C++本身几乎没有支持代码重用的语言结构
C.C.C++语言不是一种纯面向对象的语言
D.D.C++支持面向对象的程序设计,这是它对C的重要改进
22.下列流类中可以用于处理文件的是()。
(2分)
A.iosB.iostreamC.strstreamD.fstream
23.若一个类中含有纯虚函数,则该类称为()。
(2分)
A.基类B.纯基类C.抽象类D.派生类
24.下面函数原型中,()声明了fun为纯虚函数。
(2分)
A.voidfun()=0;B.virtualvoidfun()=0;C.virtualvoidfun();D.virtualvoidfun(){};
25.下列函数中,不能说明为虚函数的是()(2分)
A.私有成员函数B.公有成员函数C.构造函数D.析构函数
26.在创建派生类对象时,构造函数的执行顺序是()。
(2分)
A.对象成员构造函数—基类构造函数—派生类本身的构造函数
B.派生类本身的构造函数—基类构造函数—对象成员构造函数
C.基类构造函数—派生类本身的构造函数—对象成员构造函数
D.基类构造函数—对象成员构造函数—派生类本身的构造函数
27.在c++中,可以被派生类继承的函数是()。
(2分)
A.成员函数B.构造函数C.析构函数D.友员函数
28.下面描述中,错误的是()。
(2分)
A.在基类定义的public成员在公有继承的派生类中可见,也能在类外被访问。
B.在基类定义的protected成员在私有继承的派生类中可见。
C.在基类定义的公有静态成员在私有继承的派生类中可见。
D.访问声明可以在公有继承派生类中把基类的public成员声明为private成员。
29.若classB中定义了一个classA的类成员Aa,关于类成员的正确叙述是()(2分)
A.在类B的成员函数中可以访问A类的私有数据成员
B.在类B的成员函数中可以访问A类的保护数据成员
C.类B的构造函数可以调用类A的构造函数做数据成员初始化
D.类A的构造函数可以调用类B的构造函数做数据成员初始化
30.在c++中,类之间的继承关系具有()。
(2分)
A.自反性B.对称性C.传递性D.反对称性
31.下列关于类的继承描述中,()是正确的。
(2分)
A.派生类公有继承基类时,可以访问基类的所有数据成员,调用所有成员函数。
B.派生类也是基类,所以它们是等价的。
C.派生类对象不会建立基类的私有数据成员,所以不能访问基类的私有数据成员。
D.一个基类可以有多个派生类,一个派生类可以有多个基类。
32.下面对构造函数的不正确描述是()。
(2分)
A.系统提供默认的构造函数
B.构造函数可以有参数,所以也可以有返回值
C.构造函数可以重载
D.构造函数可以设置默认参数
33.下面对析构函数的正确描述是()。
(2分)
A.系统不提供默认的析构函数
B.析构函数必须由用户定义
C.析构函数没有参数,也没有返回值
D.析构函数可以设置默认参数
34.说明一个类的对象时,系统自动调用构造函数;撤消对象时,系统自动调用()。
(2分)
A.成员函数B.构造函数C.析构函数D.友员函数
35.说明一个类的对象时,系统自动调用();(2分)
A.成员函数B.构造函数C.析构函数D.友元函数
36.以下不能对二维数组a进行正确初始化的语句是()。
(2分)
A.inta[2][3]={0};
B.inta[][3]={{0,1},{0}};
C.inta[2][3]={{0,1},{2,3},{4,5}};
D.inta[][3]={0,1,2,3,4,5};
37.已知inta[][3]={{0,1},{2,3,4},{5,6},{7}};则a[2][1]的值是()。
(2分)
A.0B.2C.6D.7
38.已知char*a[]={"fortran","basic","pascal","java","c++"};则cout< (2分) A.tB.一个地址值C.javaD.javac++ 39.有函数原型voidfun4(int&);下面选项中,正确的调用是()。 (2分) A.inta=2.17;fun4(&a); B.int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 复习 题库