C++复习题+答案.docx

上传人:b****2 文档编号:3086786 上传时间:2023-05-05 格式:DOCX 页数:87 大小:51.05KB
下载 相关 举报
C++复习题+答案.docx_第1页
第1页 / 共87页
C++复习题+答案.docx_第2页
第2页 / 共87页
C++复习题+答案.docx_第3页
第3页 / 共87页
C++复习题+答案.docx_第4页
第4页 / 共87页
C++复习题+答案.docx_第5页
第5页 / 共87页
C++复习题+答案.docx_第6页
第6页 / 共87页
C++复习题+答案.docx_第7页
第7页 / 共87页
C++复习题+答案.docx_第8页
第8页 / 共87页
C++复习题+答案.docx_第9页
第9页 / 共87页
C++复习题+答案.docx_第10页
第10页 / 共87页
C++复习题+答案.docx_第11页
第11页 / 共87页
C++复习题+答案.docx_第12页
第12页 / 共87页
C++复习题+答案.docx_第13页
第13页 / 共87页
C++复习题+答案.docx_第14页
第14页 / 共87页
C++复习题+答案.docx_第15页
第15页 / 共87页
C++复习题+答案.docx_第16页
第16页 / 共87页
C++复习题+答案.docx_第17页
第17页 / 共87页
C++复习题+答案.docx_第18页
第18页 / 共87页
C++复习题+答案.docx_第19页
第19页 / 共87页
C++复习题+答案.docx_第20页
第20页 / 共87页
亲,该文档总共87页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C++复习题+答案.docx

《C++复习题+答案.docx》由会员分享,可在线阅读,更多相关《C++复习题+答案.docx(87页珍藏版)》请在冰点文库上搜索。

C++复习题+答案.docx

C++复习题+答案

C++总复习题

一、单项选择题

1.说明虚函数的关键字是()。

A.inlineB.virtualC.defineD.static

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

A.mainB.MAINC.nameD.function

3.cout是某个类的标准对象的引用,该类是()。

A.ostreamB.istreamC.stdoutD.stdin

4.如果在类外有函数调用CPoint:

:

func();则函数func()是类CPoint的()。

A.私有静态成员函数B.公有非静态成员函数C.公有静态成员函数B.友元函数

5.如果class类中的所有成员在定义时都没有使用关键字public、private或protected,则所有成员缺省定义为()。

A.publicB.protectedC.privateD.static

6.一个类的所有对象共享的是()。

A.私有数据成员B.公有数据成员C.保护数据成员D.静态数据成员

7.动态联编所支持的多态性称为()。

A.虚函数B.继承C.编译时多态性D.运行时多态性

8.定义类模板时要使用关键字()。

A.constB.newC.deleteD.template

9.对虚基类的定义()。

A.不需要使用虚函数B.必须使用虚函数C.必须使用privatD.必须使用public

10.类型转换函数()。

A.不能带有参数B.只能带一个参数C.只能带2个参数D.只能带3个参数

参考答案:

1.B2.A3.A4.C5.C6.D7.D8.D9.A10.A

1.下面有关重载函数的描述中,正确的是()。

A)重载函数必须具有不同的返回值类型B)重载函数形参个数必须不同

C)重载函数必须具有不同的形参表D)重载函数名可以不同

2.假定MyCIass为一个类,那么下列的函数说明中,()为该类的析构函数。

A)void~MyClass();B)~MyClass(intn);C)MyClass();D)~MyClass();

3.()是以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个对象的类型。

A)模板B)类C)对象D)函数

4.下面关于静态成员函数的途术中错语的是()。

A.静态成员函数可以有返回值B.this指针可以指向静态成员函数

C.静态成员函数可以具有指针参数D.静态成员函数可有具有返回值类型

5.定义类模板时要使用关键字()。

A.privateB.publicC.deleteD.template

6.下列是重载乘法运算符的函数原型声明,其中错误的是()。

A)MyClassoperator*(double,double);B)MyClassoperator*(double,MyClass);

C)MyClassoperator*(MyClass,double);D)MyClassoperator*(MyClass,MyClass);

7.以下()成员函数表示纯虚函数。

A)virtualintfun(int)B)voidfun(int)=0C)virtualvoidfun()=0D)virtualvoidfun(int){}

8.关于纯虚函数,下列表述中正确的是()。

A)纯虚函数的声明总是以"=0"结束B)含有纯虚函数的类可以定义对象

C)含有纯虚函数的类是抽象类D)上面都是错误的

9.()解决二义性问题。

A.只能使用作用域分辨操作符B.只能使用虚基类

C.使用作用域分辨操作符或虚基类D.上面都不能

10.实现编译时的多态性要使用()。

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

参考答案:

1.C2.D3.A4.B5.D6.A7.C8.C9.C10.A

1.下列关于C++函数的说明中,正确的是()。

A)内联函数就是定义在另一个函数体内部的函数B)函数体的最后一条语句必须是return语句

C)调用一个函数之前,如果还没有定义这个函数,必须先声明其原型

D)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式

2.假定MyCIass为一个类,那么下列的函数说明中,()为该类的无参构造函数。

A)voidMyClass();B)~MyClass(intn);C)MyClass();D)~MyClass();

3.下列叙述中,错误的是()。

A)派生类可以使用private派生B)对基类成员的访问必须是无二义性的

C)基类成员的访问能力在派生类中维持不变D)赋值兼容规则也适用于多继承的组合

4.当一个类的某个函数被说明为virtual时,该函数在该类及其所有派生类中()。

A.都是虚函数B.只有被重新说明为vittual时才是虚函数C.都不是虚函数D.上面都不正确

5.派生类的构造函数的成员初始化表中,不能包含()。

A)基类的构造函数B)派生类中子对象的初始化C)基类中子对象的初始化D)派生类中一般数据成员的初始化

6.下列是重载加法运算符的函数原型声明,其中错误的是()。

A)MyClassoperator+(double,double);B)MyClassoperator+(double,MyClass);

C)MyClassoperator+(MyClass,double);D)MyClassoperator+(MyClass,MyClass);

7.派生类中的成员不能直接访问基类中的()成员。

A)publicB)privateC)virtualD)protected

8.实现运行时的多态性要使用()。

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

9.如果在类MyClass的外面使用函数调用MyClass:

:

f();则函数f()是类MyClass的()。

A.静态成员函数B.非静态成员函数C.友元函数D.前面都不正确

10.由于常对象不能被更新,因此()。

A)通过常对象只能调用它的常成员函数B)通过常对象只能调用静态成员函数

C)常对象的成员都是常成员D)通过常对象可以调用任何不改变对象值的成员函数

参考答案:

1.C2.C3.C4.A5.C6.A7.B8.D9.A10.A

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

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

C)构造函数可以重载,析构函数可以重载D)构造函数不能重载,析构函数不能重载

2.在函数定义前加上关键字“inline”,表示该函数被定义为()。

A)重载函数B)内联函数C)成员函数D)普通函数

3.下面有关重载函数的说明中,()是正确的。

A)重载函数必须具有不同的返回值类型B)重载函数形参个数必须不同

C)重载函数必须具有不同的形参列表D)重载函数名可以不同

4.下列有关类与对象的说法中,()是不正确的。

A)对象是类的一个实列B)任何一个对象只能属于一个具体的类

C)一个类只能有一个对象D)类和对象的关糸和数椐类型与变量的关糸类似

5.已知:

Print()函数是一个类的常成员函数,它无返回值,下列表示中,正确的是()。

A)voidPrint()const;B)constvoidPrint();C)voidconstPrint();D)voidPrint(const)

6.假定Myclass为一个类,那么下列的函数说明中()为该类的析构函数。

A)void~Myclass();B)~Myclass(intn);C)Myclass();D)~Myclass()

7.下面类的定义中有()处错误。

classmyclass

{

inti=0;

public:

voidmyclass(){};

~myclass(value);

};A)1B)2C)3D)4

8.说明虚函数的关键字是()。

A.inlineB.virtualC.defineD.static

9.cout是某个类的标准对象的引用,该类是()。

A.ostreamB.istreamC.stdoutD.stdin

10.如果class类中的所有成员在定义时都没有使用关键字public、private或protected,则所有成员缺省定义为()。

A.publicB.protectedC.privateD.static

11.定义类模板时要使用关键字()。

A.constB.newC.deleteD.template

12一个类的所有对象共享的是()。

A.私有数据成员B.公有数据成员C.保护数据成员D.静态数据成员

13.静态成员函数没有()。

A.返回值B.this指针C.指针参数D.返回类型

14.解决多重继承中二义性问题的方法有()。

A.只能使用作用域分辨操作符B.使用作用域分辨操作符或赋值兼容规则

C.使用作用域分辨操作符或虚基类D.使用虚基类或赋值兼容规则

15.如果在类CTest的外面函数调用CTest:

:

f();则函数f()是类CTest的()。

A.静态成员函数B.非静态成员函数C.友元函数D.前面都不正确

参考答案:

1.A)2.B)3.C)4.C)5.A)6.D)7.C)8.B)9.A)10.C)11.D)12.D)13.B)14.C)15.A)

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

A)作为类的一般成员函数B)类的初始化C)对象的初始化D)对象的删除

2.一个类的友元函数或友元类可以访问该类的()。

A)私有成员B)保护成员C)公有成员D)所有成员

3.下列关于成员函数特征的描述中,()是错误的。

A)成员函数一定是内联函数B)成员函数可以重载

C)成员函数可以设置参数的默认值D)成员函数可以是静态的

4.下列函数中,()不是类的成员函数。

A)构造函数B)析构函数C)友元函数D)拷贝构造函数

5.下列对派生类的描述中,()是错误的。

A)一个派生类可以作为另一个派生类的基类B)派生类至少有一个基类C)派生类的成员除了它自己的成员外,还包含了它的基类的成员D)派生类中继承的基类成员的访问权限到派生类中保持不变

6.下列的描述中,()是错误的。

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

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

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

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

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

A)classvirtualB:

publicAB)virtualclassB:

publicA

C)classB:

publicAvirtualD)classB:

virtualpublicA

8.若类A和类B的定义如下:

classA

{inti,j;

public:

A(intm,intn):

i(m),j(n){}

intGeti(){returni;}

};

classB:

publicA

{intk;

public:

B(intm,intn,intu):

A(m,n),k(u){}

voidMake(){k=i*j;}

};

intmain()

{Bb(1,2,3);

return0;

}则上述定义中,()是非法的表达式.A)k=i*j;B)intk;C)returni;D)voidMake()

9.若有以下程序:

#include

usingnamespacestd;

classA

{public:

inta;

A(){a=10;}

};

classA1:

publicA1.

{public:

A1(){a=a+1;}\

};

classA2:

publicA

{public:

A2(){a=a+2;}

};

classB:

publicA1,publicA2

{public:

B(){}

voidPrint(){cout<

};

intmain()

{Bobj;

obj.Print();

return0;

}则程序运行后的输出结果为:

A)产生语法错误B)13C)12D)10

10.在下面的4个关键字中,( )是用来说明虚函数的。

A)virtualB)publicC)protectedD)private

11.实现运行时的多态要使用()。

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

12.如果一个类至少有一个纯虚函数,那么该类称为()。

A)抽象类B)虚基类C)派生类D)以上都不对

13.cin是某个类的标准对象,该类是()。

A)ostreamB)istreamC)stdoutD)stdin

14.调用一个成员函数时,使用动态联编的情况是()。

A)通过对象调用一虚函数B)通过指针或引用调用一虚函数

C)通过对象调用一静态函数D)通过指针或引用调用一静态函数

15.假定CTest为一个类,并且有一无默认值的有参构造函数和一无参构造函数,则执行“CTestobjTest;”语句时将自动调用该类的()。

A)有参构造函数B)无参构造函数C)拷贝构造函数D)赋值重载函数

参考答案:

1.D)2.D)3.A)4.C)5.D)6.B)7.D)8.A)9.A)10.A).11.D)12.A)13.B)14.B)15.B)

1、C++是()。

A.面向对象的程序设计语言

B.面向过程的程序设计语言

C.既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言

D.非结构化的程序设计语言

2、面向对象程序设计思想的主要特征中不包括()。

A.封装性B.多态性C.继承性D.功能分解,逐步求精

3、若定义:

stringstr;当语句cin>>str;执行时,从键盘输入:

MicrosoftVisualStudio6.0!

所得的结果是str=()。

A.MicrosoftVisualStudio6.0!

B.Microsoft

C.MicrosoftVisualD.MicrosoftVisualStudio6.0

4、考虑下面的函数原型声明:

voidtestDefaulParam(inta,intb=7,charz='*');

下面函数调用中,不合法的是()。

A.testDefaulParam(5);B.testDefaulParam(5,8);

C.testDefaulParam(5,'#');D.testDefaulParam(0,0,'*');

5、下列语句中,将函数intsum(intx,inty)正确重载的是()。

A.floatsum(intx,inty);B.intsum(inta,intb);

C.floatsum(floatx,floaty);D.doublesum(inty,intx);

6、下列表示引用的方法中,()是正确的。

已知:

inta=1000;A.int&x=a;B.char&y;C.int&z=1000;D.float&t=&a;

7、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。

A.内联函数B.重载函数C.递归调用D.嵌套调用

8、下列有关C++类的说法中,不正确的是()。

A.类是一种用户自定义的数据类型

B.只有类中的成员函数或类的友元函数才能存取类中的私有成员

C.在类中,如果不做特别说明,所有成员的访问权限均为私有的

D.在类中,如果不做特别说明,所有成员的访问权限均为公用的

9、已知X类,则当程序执行到语句:

Xarray[3];时,调用了()次构造函数。

A.0B.1C.2D.3

10、下面说法中,正确的是()

A.一个类只能定义一个构造函数,但可以定义多个析构函数

B.一个类只能定义一个析构函数,但可以定义多个构造函数

C.构造函数与析构函数同名,只要名字前加了一个求反符号(~)

D.构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以

11、已知:

print()函数是一个类的常成员函数,它无返回值,下列表示中,()是正确的。

A.voidprint()const;B.constvoidprint();C.voidconstprint();D.voidprint(const);

12、下面描述中,表达错误的是()

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

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

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

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

13、设置虚基类的目的是( )。

A.简化程序B.消除二义性C.提高运行效率D.减少目标代码

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

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

C.派生类的对象可以初始化基类的对象D.派生类的对象的地址可以赋值给指向基类的指针

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

A.虚函数是一个static类型的成员函数B.虚函数是一个非成员函数

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

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

16、下面关于友元的描述中,错误的是()。

A.友元函数可以访问该类的私有数据成员

B.一个类的友元类中的成员函数都是这个类的友元函数

C.友元可以提高程序的运行效率D.类与类之间的友元关系可以继承

17、下列关于静态数据成员的说法,不正确的是()。

A.类中定义的公用静态数据成员,可以通过类的对象来访问

B.类中定义的所有静态数据成员,都必须在类外初始化

C.静态数据成员不是所有对象所共用的D.普通的成员函数可以直接访问类中的静态数据成员

18、如果表达式++i*k中的“++”和“*”都是重载的友元运算符,若采用运算符函数调用格式,则表达式还可以表示为()。

A.operator*(i.operator++(),k)B.operator*(operator++(i),k)

C.i.operator++().operator*(k)D.k.operator*(operator++(i))

19、下面对模板的声明,正确的是()。

A.templateB.template

C.templateD.template

20、下列的各类函数中,()不是类的成员函数

A.构造函数B.析构函数C.友元函数D.复制构造函数

参考答案:

1-5.CDBCC 6-10.AADDB11-15.ABBBC 16-20.DCBCC

1、关于C++与C语言关系的描述中,()是错误的。

A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的

C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的

2、已知:

intm=10;下列表示引用的方法中,()是正确的。

A.int&x=m;B.int&y=10;C.int&z;D.float&t=&m;

3、考虑下面的函数原型声明:

voidtestDefaulParam(inta,intb=7,charz='*');

下面函数调用中,不合法的是()。

A.testDefaulParam(5);B.testDefaulParam(5,8);C.testDefaulParam(5,'#');D.testDefaulParam(0,0,'*');

4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是()。

A.函数的返回值类型B.参数的类型C.函数名称D.参数个数

5、下列有关C++类的说法中,不正确的是()。

A.类是一种用户自定义的数据类型

B.只有类中的成员函数或类的友元函数才能存取类中的私有成员

C.在类中,如果不做特别说明,所有成员的访问权限均为私有的

D.在类中,如果不做特别说明,所有成员的访问权限均为公用的

6、已知X类,则当程序执行到语句Xarray[3];时,调用了()次构造函数。

A.0B.1C.2D.3

7、有关析构函数的说法,不正确的是()。

A.析构函数有且仅有一个B.析构函数和构造函数一样可以有形参

C.析构函数的功能是在系统释放对象之前作一些内存清理工作

D.析构函数无任何函数类型

8、类定义的内容允许被其对象无限制地存取的是()。

A.private部分B.protected部分C.public部分D.以上都不对

9、关于常数据成员的说法,不正确的是()。

A.常数据成员的定义形式与一般常变量的定义形式相同,只不过常数据成员的定义必须出现在类体中

B.常数据成员必须进行初始化,并且不能被更新

C.常数据成员通过构造函数的成员初始化列表进行初始化

D.常数据成员可以在定义时直接初始化

10、运用运算符delete删除一个动态对象时()。

A.系统首先为该动态对象调用构造函数,再释放其占用的内存

B.系统首先释放该动态对象占用的内存,再为其调用构造函数

C.系统首先为该动态对象调用析构函数,再释放其占用的内存

D.系统首先释放动态对象占用的内存,再为其调用

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2