程序设计二复习题库.docx

上传人:b****5 文档编号:28472756 上传时间:2023-07-14 格式:DOCX 页数:35 大小:28.65KB
下载 相关 举报
程序设计二复习题库.docx_第1页
第1页 / 共35页
程序设计二复习题库.docx_第2页
第2页 / 共35页
程序设计二复习题库.docx_第3页
第3页 / 共35页
程序设计二复习题库.docx_第4页
第4页 / 共35页
程序设计二复习题库.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

程序设计二复习题库.docx

《程序设计二复习题库.docx》由会员分享,可在线阅读,更多相关《程序设计二复习题库.docx(35页珍藏版)》请在冰豆网上搜索。

程序设计二复习题库.docx

程序设计二复习题库

1.C++语言是从早期的C语言逐渐发展演变而来的。

与C语言相比,它在求解问题方法上进行的最大改进是()。

A、面向过程  B、面向对象  C、安全性  D、复用性

2.关于构造函数,下列说法不正确的是()。

A、构造函数名字和类名相同B、构造函数在创建对象时自动执行

C、构造函数无任何函数返回类型D、构造函数有且只有一个

3.如果类A被说明成类B的友元,则()。

A、类A的成员即类B的成员 B、类B的成员即类A的成员

C、类A的成员函数不得访问类B的成员 D、类B不一定是类A的友元

4.如果派生类以public方式继承基类,则原基类的protected成员和public成员在派生类中的访问类型分别是()。

A、public和publicB、public和protected

C、protected和publicD、protected和protected

5.使用派生类的主要原因是()。

A、提高代码的可重用性B、提高程序的运行效率

C、加强类的封装性D、实现数据的隐藏

6.关于虚函数,正确的是()。

A、构造函数不能是虚函数B、析构函数不能是虚函数

C、虚函数可以是友元函数D、虚函数可以是静态成员函数

7.要实现动态链接,派生类中的虚函数()。

A、返回的类型可以与虚函数的原型不同

B、参数个数可以与虚函数的原型不同

C、参数类型可以与虚函数的原型不同

D、以上都不对

8.在语句cout<

A、变量名  B、类名  C、对象名  D、函数名

9.有关运算符重载正确的描述是()。

A、C++语言允许在重载运算符时改变运算符的操作数个数

B、C++语言允许在重载运算符时改变运算符的优先级

C、C++语言允许在重载运算符时改变运算符的结合性

D、C++语言允许在重载运算符时改变运算符的原来的功能

10.template

Tsquare(Tx)

{returnx*x;}

其中T是()。

A、函数形参 B、函数实参 C、模板形参 D、模板实参

11.函数重载是指()。

A、两个或两个以上的函数取相同的函数名,但形参的个数或类型不同

B、两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同

C、两个以上的函数名字不同,但形参的个数或类型相同

D、两个以上的函数取相同的函数名,并且函数的返回类型相同

12.假定A类已经定义,对于以A类为基类的单一继承类B类,以下定义中正确的是()。

A、classB:

publicA{//…};B、classA:

publicB{//…};

C、classB:

publicclassA{//…};D、classA:

classBpublic{//…};

13.下面叙述不正确的是()。

A、派生类一般都用公有派生

B、对基类成员的访问必须是无二义性的

C、赋值兼容原则也适用于多重继承的组合

----------------------------------------装--------------------------------------订-------------------------------------线----------------------------------------------------

D、基类的公有成员在派生类中仍然是公有的

14.C++可以采用动态内存分配在运行时为指针分配内存。

下面对一个100个元素的动态数组进行动态内存分配和释放的是()。

A、int*pi=newint[100];deletepi;pi=NULL;

 B、int*pi=newint(100);delete[]pi;pi=NULL;

 C、int*pi=newint(100);delete()pi;pi=NULL;

 D、int*pi=newint[100];delete[]pi;pi=NULL;

15.下列语句中错误的是()。

A、int*p=newint(100);B、int*p=newint[100];

C、int*p=newint;D、int*p=newint[40](0);

16.编写C++程序一般需经过的几个步骤依次是( )。

A、编辑、调试、编译、连接B、编辑、编译、连接、运行

C、编译、调试、编辑、连接D、编译、编辑、连接、运行

17.面向对象程序设计将数据与()放在一起,作为一个相互依存、不可分割的整体来处理。

A、对数据的操作 B、信息 C、数据隐藏 D、数据抽象

18.派生类对象可访问基类中的什么成员( )?

A、公有继承的公有成员B、公有继承的私有成员

C、公有继承的保护成员D、私有继承的共有成员

19.重载赋值操作符时,应声明为()函数。

A、友元 B、虚 C、成员 D、多态

20.语句ofstreamf(“SALARY.DAT”,ios:

:

app|ios:

:

binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,并且()。

A、若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件

B、若文件存在,将其置为空文件;若文件不存在,打开失败

C、若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件

D、若文件存在,打开失败;若文件不存在,建立一个新文件

21.在C++语言中,自定义的标识符()。

A、能使用关键字并且不区分大小写

B、不能使用关键字并且不区分大小写

C、能使用关键字并且区分大小写

D、不能使用关键字并且区分大小写

22.对类的构造函数和析构函数描述正确的是()。

A、构造函数可以重载,析构函数不能重载

B、构造函数不能重载,析构函数可以重载

C、构造函数可以重载,析构函数也可以重载

D、构造函数不能重载,析构函数也不能重载

3.类的析构函数的作用是()。

A、一般成员函数B、类的初始化C、对象初始化D、删除对象。

4.下面对于友元函数描述正确的是()。

A、友元函数的实现必须在类的内部定义

B、友元函数是类的成员

C、友元函数破坏了类的封装性和隐藏性

D、友元函数不能访问类的私有成员

5.C++中的类有两种用法:

一种是类的实例化,即生成类对象,并参与系统的运行;另一种是通过()派生了新的类。

A、复用B、继承C、封装D、引用

6.下列虚基类的声明中,正确的是()。

A、classvirtualB:

publicA

B、virtualclassB:

publicA

C、classB:

publicAvirtual

D、classB:

virtualpublicA

7.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为()

A、mainB、MAINC、nameD、function

8.下列有关运算符重载描述正确的是()

A、运算符的重载是多态性的一种表现

B、C++可以通过运算符的重载创造新的运算符

C、C++中所有运算符都可以作为非成员函数重载

D、重载运算符时可以改变其结合性

9.classMyclass{

intvalue;

public:

Myclass(intn):

value(n){}

intgetValue()const{returnvlaue;}

};

则类的构造函数的个数是()

A、1个B、2个C、3个D、4个

10.在语句cout<

A、变量名  B、类名  C、对象名  D、函数名

11.模板的使用是为了()。

A、提高代码的可重用性B、提高代码的运行效率

C、加强类的封装性D、实现多态性

12.若Fraction为类重载前增运算符++,应在类体中将其声明为()。

A、Fraction&operator++();B、Fraction&operator++(int);

C、friendFraction&operator++();D、friendFraction&operator++(int)

13.关于动态存储分配,下列说法正确的是()。

A、new和delete是C++语言中专门用于动态内存分配和释放的函数

B、动态分配的内存空间也可以被初始化

C、当系统内存不够时会自动回收不再使用的内存单元,因此程序中不必用delete释放内存空间

D、当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用new

14.在C++中用来实现运行时多态性的是()。

A、重载函数B、析构函数C、构造函数D、虚函数

15.在一个类体的下列声明中,正确的纯虚函数声明是()。

A、virtualvoidvf()=0;B、voidvf(int)=0;

C、virtualintvf(int);D、virtualvoidvf(int){}

1.C++语言是从早期的C语言逐渐发展演变而来的。

与C语言相比,它在求解问题方法上进行的最大改进是。

A.面向过程  B.面向对象  C.安全性  D.复用性

2.如果类A被说明成类B的友元,则。

A.类A的成员即类B的成员B.类B的成员即类A的成员

C.类A的成员函数不得访问类B的成员D.类B不一定是类A的友元

3.通过运算符重载,可以改变运算符原有的。

A.操作数类型B.操作数个数C.优先级D.结合性

4.下面描述中,表述错误的是。

A.公有继承时基类中的public成员在派生类中仍是public的

B.公有继承时基类中的private成员在派生类中仍是private的

C.公有继承时基类中的protected成员在派生类中仍是protected的

D.私有继承时基类中的public成员在派生类中是private的

5.下列关于this指针的描述中,正确的是。

A.类的非静态成员函数都有this指针B.类的友元函数都有this指针

C.任何与类相关的函数都有this指针D.类的成员函数都有this指针

6.假定类A已经定义,对于以类A为基类的单一继承B类,以下定义中正确的是。

A.classB:

publicA{//…};B.classA:

publicB{//…};

C.classB:

publicclassA{//…};D.classA:

classBpublic{//…};

7.template

Tsquare(Tx)

{returnx*x;}

其中T是。

A.函数形参 B.函数实参 C.模板形参 D.模板实参

8.要实现动态链接,派生类中的虚函数。

A.返回的类型可以与虚函数的原型不同B.参数个数可以与虚函数的原型不同

C.参数类型可以与虚函数的原型不同D.以上都不对

9.函数重载是指。

A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同

B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同

C.两个以上的函数名字不同,但形参的个数或类型相同

D.两个以上的函数取相同的函数名,并且函数的返回类型相同

10.C++可以采用动态内存分配在运行时为指针分配内存。

下面对一个100个元素的动态数组进行动态内存分配和释放的是。

A.int*pi=newint[100];deletepi;pi=NULL;

B.int*pi=newint(100);delete[]pi;pi=NULL;

C.int*pi=newint(100);delete()pi;pi=NULL;

D.int*pi=newint[100];delete[]pi;pi=NULL;

11.语句ofstreamf(“SALARY.DAT”,ios:

:

app|ios:

:

binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,并且。

A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件

B.若文件存在,将其置为空文件;若文件不存在,打开失败

C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件

D.若文件存在,打开失败;若文件不存在,建立一个新文件

12.下面对于友元函数描述正确的是。

A.友元函数的实现必须在类的内部定义B.友元函数是类的成员

C.友元函数破坏了类的封装性和隐藏性D.友元函数不能访问类的私有成员

13.下列虚基类的声明中,正确的是。

A.classvirtualB:

publicAB.virtualclassB:

publicA

C.classB:

publicAvirtualD.classB:

virtualpublicA

----------------------------------------装--------------------------------------订-------------------------------------线----------------------------------------------------

14.在一个类体的下列声明中,正确的纯虚函数声明是。

A.virtualvoidvf()=0;B.voidvf(int)=0;

C.virtualintvf(int);D.virtualvoidvf(int){}

15.有如下类的定义:

classPoint{

private:

staticinthow_many;

};

how_many=0;

要初始化Point类的静态成员how_many,下划线处应填写。

A.intB.staticintC.intPoint:

:

D.staticintPoint:

:

1、函数重载是指()。

A、两个或两个以上的函数取相同的函数名,但形参的个数或类型不同

B、两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同

C、两个以上的函数名字不同,但形参的个数或类型相同

D、两个以上的函数取相同的函数名,并且函数的返回类型相同

2、编写C++程序一般需经过的几个步骤依次是()

A、编辑、调试、编译、连接B、编辑、编译、连接、运行

C、编译、调试、编辑、连接D、编译、编辑、连接、运行

3、在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的

A、私有成员B、公有成员()

C、保护成员D、保护成员或私有成员

4、在类中,正确的纯虚函数声明是()

A、virtualvoidf(int){}B、voidf(int)=0;

C、virtualintf(int);D、virtualvoidf()=0;

5、关于this指针使用说法正确的是()

A、保证每个对象拥有自己的数据成员,但共享处理这些数据的代码

B、保证基类私有成员在子类中可以被访问。

C、保证基类保护成员在子类中可以被访问。

D、保证基类公有成员在子类中可以被访问。

6、有如下类的定义:

classPoint{

private:

staticinth;

};

h=0;

要初始化Point类的静态成员h,下划线处应填写()

A、intB、staticintC、intPoint:

:

D、staticintPoint:

:

7、template

Tfun(Tx)

{returnx+x;}

其中T是()

A、函数形参 B、函数实参 C、模板形参 D、模板实参

8、假定类A已经定义,对于以类A为基类的单一继承B类,以下定义中正确的是()

A、classB:

publicA{//…};B、classA:

publicB{//…};

C、classB:

publicclassA{//…};D、classA:

classBpublic{//…};

9、假定一个类定义如下classA{private:

inta,b;public:

A(intaa,intbb)

{a=aa--;b=a*bb;}};则执行Ax(4,5);语句后,x.a和x.b的值分别为()

A、3和15B、5和4

C、4和20D、20和5

10、通过运算符重载,可以改变运算符原有的()

A、操作数个数B、操作数类型C、优先级D、结合性

11、关于虚函数的描述中,()是正确的。

A、虚函数是一个static类型的成员函数

B、虚函数是一个非成员函数

C、基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数

D、派生类的虚函数与基类的虚函数具有不同的参数个数和类型

12、如果类A被说明成类B的友元,则()

A、类A的成员即类B的成员B、类B的成员即类A的成员

C、类A的成员函数不得访问类B的成员D、类B不一定是类A的友元

----------------------------------------装--------------------------------------订-------------------------------------线----------------------------------------------------

13、下面叙述不正确的是()

A、派生类一般都用公有派生

B、对基类成员的访问必须是无二义性的

C、赋值兼容规则也适用于多重继承的组合

D、基类的公有成员在派生类中仍然是公有的

14、下列虚基类的声明中,正确的是()

A、classB:

virtualpublicAB、virtualclassB:

publicA

C、classB:

publicAvirtualD、classvirtualB:

publicA

15、语句ofstreamf(“d:

\\article.dat”,ios:

:

app|ios:

:

binary);的功能是建立流对象f,试图打开文件article.dat并与之连接,并且()

A、若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件

B、若文件存在,将其置为空文件;若文件不存在,打开失败

C、若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件

D、若文件存在,打开失败;若文件不存在,建立一个新文件

1、构造函数是在()时被执行。

A、程序编译B、创建对象

C、创建类D、程序装入内存

2、使用派生类的主要原因是()

A、提高代码的重用性

B、提高程序的运行效率

C、加强类的封装性

D、实现数据的隐藏

3、语句ofstreamf(“d:

\\data.dat”,ios:

:

app|ios:

:

binary);的功能是建立流对象f,试图打开文件data.dat并与之连接,并且()

A、若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件

B、若文件存在,将其置为空文件;若文件不存在,打开失败

C、若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件

D、若文件存在,打开失败;若文件不存在,建立一个新文件

4、在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的

A、保护成员B、公有成员()

C、私有成员D、保护成员或私有成员

5、有如下类的定义:

classRectangle{

private:

staticintx;

};

x=0;

要初始化Rectangle类的静态成员x,下划线处应填写()

A、intB、staticintC、intRectangle:

:

D、staticintRectangle:

:

6、template

Tfun(Tx)

{returnx*x;}

其中T是()

A、函数形参 B、模板形参 C、函数实参 D、模板实参

7、假定类A已经定义,对于以类A为基类的单一继承B类,以下定义中正确的是()

A、classB:

publicA{//…};B、classA:

publicB{//…};

C、classB:

publicclassA{//…};D、classA:

classBpublic{//…};

8、假定一个类定义如下classA{private:

inta,b;public:

A(intaa,intbb):

a(aa),b(bb){a++;}}则执行Ax(7,8);语句后,x.a和x.b的值分别为()

A、7和15B、7和8

C、8和7D、8和8

9、如果类A被说明成类B的友元,则()

A、类A的成员即类B的成员B、类B不一定是类A的友元

C、类A的成员函数不得访问类B的成员D、类B的成员即类A的成员

10、有关运算符重载正确的描述是()

A.C++语言允许在重载运算符时改变运算符的操作数个数

B.C++语言允许在重载运算符时改变运算符的优先级

C.C++语言允许在重载运算符时改变运算符的结合性

D.C++语言允许在重载运算符时改变运算符的原来的功能

11、面向对象程序设计将数据与()在一起,作为一个相互依存、不可分割的整体来处理

A、对数据的操作B、信息

C、数据隐藏D、数据抽象

12、有关多态性说法不正确的是()

A、运行时的多态性可通过模板和虚函数实现

B、编译时的多态性可通过函数重载实现

C、C++语言的多态性分为编译时的多态性和运行时的多态性

D、实现运行时多态性的机制称为动态多态性

----------------------------------------装--------------------------------------订-------------------------------------线----------------------------------------------------

13、下面叙述不正确的是()

A、派生类一般都用公有派生

B、对基类成员的访问必须是无二义性的

C、赋值兼容规则也适用于多重继承的组合

D、基类的公有成员在派生类中仍然是公有的

14、友元关系不能()

A、提高程序的运行效率

B、是类与类的关系

C、是一个类的成员函数与另一个类的关系

D、继承

15、下列语句中错误的是()

A、int*pt=newint(100)B、int*pt=newint[100]

C、int*pt=newintD、int*pt=newint[100](0)

1.下面()的叙述不符合赋值兼容规则。

A.派生类的对象可以赋值给基类的对象

B.基类

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

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

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