c++题库文档格式.docx

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

c++题库文档格式.docx

《c++题库文档格式.docx》由会员分享,可在线阅读,更多相关《c++题库文档格式.docx(80页珍藏版)》请在冰点文库上搜索。

c++题库文档格式.docx

呵B.提高代码执行效率

C.减少代码量,增强代码可读性

D.隐藏内部实现

4•下列不是函数重载所要求的条件是()。

鼻A.函数名相同

*B.函数返回值类型不同

皿C.参数类型不同

D.参数个数不同

5.下列哪两个函数为重载函数()。

A.voida1(),voida2()

B.intb(intx),floatb(intx)

C.charc(doubley),charc(inty,doublez)

c

D.boold(doubley),boold(doubley,intx=0)

6.在面对对象方法中,实现信息隐蔽依靠的是()。

*A.对象的封装

pl

B.对象的继承

'

C.对象的多态

D.对象的分类

7.所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是()。

A.类

B.对象

财C.函数体

垃1D.数据块

8.下列关于类定义的说法中,正确的是()。

*A.在类里定义的函数为内联函数

B.类成员的默认访问权限是保护的

C.数据成员必须被声明为私有的

已D.成员函数只能在类体外进行定义

9.

关于类和对象不正确的说法是()。

C.friend

D.protected

11.类中定义的成员默认的访问属性为(

A.public

B.private

C.friend

D.protected

12.有关构造函数的叙述不正确的是(

F'

1

A.构造函数名必须和类名一致

B.构造函数在定义对象时自动执行

C.构造函数无任何函数类型

E

D.在一个类中构造函数有且仅有一个

13.

下列关于析构函数的描述中,错误的是()。

A.析构函数可以重载

B.析构函数由系统自动调用

C.每个对象的析构函数只被调用一次

Cl

D.每个类都有析构函数

14.

通常拷贝构造函数的参数是()。

r

A.对象名

B.对象的成员名

C.对象的引用名

D.对象的指针名

15.

在类外定义成员函数时,需要在函数名前加上()。

A.类名

B.对象名

C囲

C.作用域运算符

D.类名和作用域运算符

16.

在类疋义中,为说明成员的访冋权限,private,protected,public可以出现次数()。

A.次数没有具体限制

厂.

B.每种至多一次

剧C.public至少一次

炒D.每种至少一次

17.关于静态数据成员的描述中错误的是()。

A.类的静态数据成员是该类所有对象所共享的

耐B.类的静态数据成员在在该类每个对象中都保留一个备份

C.类的静态数据成员必须进行初始化

已D.类的静态数据成员可以不通过对象来访问

18.若一个类的数据成员用const关键字修饰,则该数据成员()。

A.静态函数中可以对该成员赋值

同B.构造函数只能通过初始化列表对该成员初始化

C.任何函数都不能使用该成员

因D.外部函数可以对该成员赋值

19.有两个类X和Y,且丫有一个构造函数Y:

:

Y(Xx);

那么以下语句:

Xa;

Yb(a);

不会调用下面的哪个函数()。

A.Y的构造函数Y(Xx)

口B.Y的拷贝(复制)构造函数

C.X的默认构造函数

D.X的拷贝(复制)构造函数

20.已知类A的定义。

假设x为A的对象,则在类外访问x对象中数据成员a和b分

别应采用()。

classA{

private:

inta;

public:

intgetValue(){

returna;

}

intb;

};

A.x:

getValue(),x:

b

B.x.a,x.b

皿C.x.a(),x.b()

D.x.getValue(),x.b

21•假设程序中先前已经定义了A、B、C三个类,他们的构造函数分别会输出Aconstructed、

Bconstructed和Cconstructed,那么又定义了类D,并在main函数中定义了一个D类的对象,部分代码如下:

classD{

D():

a(),b(),c(){}

Aa;

Bb;

Cc;

};

intmain(){

Dd;

return0;

程序的输出结果为()。

A.AconstructedBconstructedCconstructed

B.CconstructedBconstructedAconstructed

财C.编译错误

炒D.编译器决定

22.已知类CA中的某个成员是类CB的对象,若要把这两个类定义在同一个文件中,则()°

均A.CA必须定义在CB之前

诩B.CB必须定义在CA之前

心C.若CA定义在CB之后,则CA的声明必须出现在CB的定义之前

口D.若CB定义在CA之后,则CB的声明必须出现在CA的定义之前

23.在设计一个类的时候,如果希望允许一个不属于该类的函数访问该类的私有成员,应该使用哪个关键字()°

A.

public

关于友元函数的描述中,错误的是()。

A.友元函数是成员函数

B.友元函数能访问类中私有成员

C.友元函数破坏封装性

D.友元函数声明在类体内

如果类A是类B的友元,则()。

A.类A的成员是类B的成员

B.类B的成员是类A的成员

C.类A的成员函数可以访问类B的私有成员

D.类B是类A的友元

26.已知类A是类B的友元类,类B是类C的友元类,则()。

dA.类A一定是类C的友元

B.类C一定是类A的友兀

C.类C的成员函数可以访问类B的对象的任何成员

‘D.类A的成员函数可以访问类B的对象的任何成员

27.已知Point类含有无参(默认)构造函数和有参构造函数,使用Pointa[3]={Point(1,2),

Point(3,4),Point()};

时,调用了()次Point类的无参(默认)构造函数。

A.1

B.2

C.3

D.4

28.

要疋义一个引用变量p使之引用类MyClass的一个对象,正确的疋义语句是()。

A.MyClassp=MyClass;

QI

B.MyClassp=newMyClass;

C.MyClass&

p=newMyClass;

K

D.MyClassa,&

p=a;

29.

关于this指针的说法不正确的是()。

u

A.不能在程序中修改this指针

B.this指针可以给其他指针赋值,但不能修改this指针

C.静态成员函数中没有this指针

D.this指针可以被赋值

30.

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

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

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

C.当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用

delete释

放内存空间

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

31.观察程序

#include<

iostream>

usingnamespacestd;

intmain(){

int*first,*second;

first=newint[5];

second=first;

delete[]second;

delete[]first;

该程序是否正确,原因是什么?

new

A.正确,因为first和second都是独立的指针变量

DB.不正确,因为first和second是相关而非独立的指针变量

C.正确,second会拷贝first的内容

D.不正确,second和first指向相同的内容

32.C++中,不能被派生类继承的有()。

A.析构函数

B.虚函数

C.静态成员函数

D.友元函数

F列关于派生类的叙述中,错误的是(

)。

财A.派生类至少要有一个基类

炒B.派生类中包括了从基类继承的成员

炒C.一个派生类可以作为另一个派生类的基类

*D.基类成员被派生类继承以后访问权限保持不变

34.下列关于类型转换正确的是()。

A.基类的对象可以被当作公有派生类对象使用

因B.派生类对象必须显式的转换为基类对象

*C.派生类对象可以初始化基类的引用

㈡D.基类的指针可以隐含转换为派生类的指针

35.下列关于虚基类的描述中,错误的是()。

A.使用虚基类可以消除由多继承产生的二义性

已B.构造派生类对象时,虚基类的构造函数只被调用一次

C.声明“classB:

virtualpublicA说明类B为虚基类

©

D.建立派生类对象时,首先调用虚基类的构造函数

36.以下说法正确的是()。

冈A.同一个运算符可以被重载多次

B.可以通过运算符重载来创建C++中原来没有的运算符

C.自增运算符重载时,重载函数不允许有输入参数

D.运算符函数的返回类型不能声明为基本数据类型

37.若A是一个类名,则如下语句将会产生的A对象个数为()。

Aa1,*a2;

A*a3=newA();

A&

a4=a1;

C.3

诃D.4

38.类C2是类C1的派生类,下列说法中错误的是(

A.C1的成员都是C2的成员

因B.C2的对象可以赋值给C1的变量

*C.C1的友元函数都是C2的友元函数

D.创建C2的对象时,要执行C1的构造函数

39.若类A和类B都是类模板T的模板类,则以下说法正确的是()。

A.A的友元函数中,可以访问B的私有成员

心B.A的对象可以赋值给B类型的变量

◎C.A和B共享T的静态成员变量

*D.A的成员函数中,不能访问B的私有成员

40.若类B是从类A派生而来,而语句p.Do();

在被多次执行时,有的时候调用的是类Do成员函数,有的时候调用的是类B的Do成员函数,那么p的类型可以是()

A.A&

B.A*

D.A

41.

将一个对象放入STL中的容器里时,

B.实际上被放入的是该对象的指针

C.实际上被放入的是该对象的引用

垃1D.实际上被放入的就是该对象自身

42.以下说法正确的是()。

诩A.在multiset容器中,可以同时存储多个相同的元素

垃!

B.在set容器中,各元素的存储位置取决于它们的插入顺序胡C.向deque容器添加新对象时,需要比较对象的大小因D.在list容器中,各元素的存储位置取决于它们的值

43.若有如下定义:

set<

int>

iteratorit1,it2,it3;

int>

s;

则以下语句不符合语法的是()。

因A.it1++;

B.--it2;

倒1

C.it3=it1+1;

D.boolisEnd=(it1==s.end());

44.关于函数对象,如下说法中正确的是()。

*A.如果一个类重载了“(运算符,该类的对象是函数对象

口B.如果一个类定义了函数指针成员变量,则该类的对象是函数对象

C.函数对象类中只能定义成员函数,不能定义成员变量

R

D.函数对象类只能定义一个函数对象

45.有如下两个类定义:

classAA{};

classBB{

AAv1,*v2;

BBv3;

ci

46.

2

3

4

5

6

7

8

9

10

11

12

47.

intv4;

其中有一个成员变量的定义是错误的,这个变量是(

A.v1

B.v2

C.v3

D.v4

对于如下代码,请指出错误的代码行号是()°

A(inta=0){

x=a;

staticvoidf1(){

x++;

int兀

staticinty;

A.3

B.4

C.7

D.11

对于如下代码

classB{

3voidf(){}

4voidg(){f();

}

5}

6classD:

publicB{

7public:

8voidf(){}

9voidg(){B:

f()}

10}

11intmain(){

12Bb,pb=&

b;

13Dd,pd=&

d;

14b.f();

15pd->

f();

16return0;

17}

其中第14行代码和第15行代码分别调用的是()。

A.B:

f()与D:

f()

B.B:

f()与B:

C.D:

D.D:

48.以下程序的输出结果是()。

A(inta1,inta2):

a1(a1),a2(a2){}

voidprint();

voidprint()const;

inta1,a2;

voidA:

print(){

cout<

<

al<

"

"

;

print()const{

a2<

Aa(1,2);

constAb(1,2);

a.print();

b.print();

return0;

A.11

因B.12

L3C.21

GD.22

49.有如下程序:

usingnamespacestd;

classA{private:

A(inta=0):

a(a){cout<

1"

A(A&

x){

a=x.a;

2"

~A(){

a;

intget_a(){

Ad1(5),d2(d1);

A*pd=newA(8);

pd_>

get_a();

deletepd;

程序运行时的输出结果是()。

因A.12185

B.1215588

」C.128512

D.1218855

50.有如下程序:

voidsetA(int);

voidsetB(int);

classC:

publicA,privateB{

voidsetC(int,int,int);

intc;

setA(intx){

a=x;

voidB:

setB(intx){

b=x;

voidC:

setC(intx,inty,intz){

setA(x);

setB(y);

c=z;

Cobj;

obj.setA(5);

//A

obj.setB(6);

//B

obj.setC(6,7,9);

//C

main函数中()是错误的。

A.A语句

劇B.B语句

□C.C语句

51.设置虚基类的目的是()。

A.区分类是否有虚函数

B.使类成为抽象类

JC.提高程序运行效率

冏D.消除二义性

52.运行时多态是基于()。

0A.友元函数

‘B.虚函数

C.函数重载

D.运算符重载

53.C++泛型编程通过()实现。

A.class

B.template

C]

C.virtual

D.

F列叙述正确的是()。

typedef

54.关于函数声明floatfun(inta,intb)throw,

IA.表明函数抛出float类型异常

炒B.表明函数抛出任何类型异常

呵C.表明函数不抛出任何类型异常

D.语法错误

55.有如下两个程序片段:

vector>

//程序片段一

std:

vector<

vec;

for(autoitr=vec.begin();

itr!

=vec.end();

itr++)

itr->

print();

//程序片段二

for(autoitr=vec.begin();

++itr)

则下列说法中,正确的有()。

(a)itr的类型为auto

(b)程序二性能上要比程序一更好

(c)程序一和程序二性能上没有区别

A.ab

-B.b

C.ac

D.c

56.如果X是整型变量,则合法的形式是()。

C

A.&

(X+1)

B.*X

C.*&

x

D.&

*X

57.判断以下程序的正确性,并说明原因。

#inelude<

intmain(){int*first,*second;

正确,因为first和second都指向动态内存,需要手动释放

不正确,second和first指向相同的动态内存,重复释放会可能导致未定义行为

58.C++中既可以用于文件输入又可以用于文件输出的流类是(

A.fstream

B.ifstream

C.ofstream

D.iostream

59.下列是关于函数模板的程序,则下列说法中正确的有(

#include<

template<

typenameT>

voidf(T&

i){cout<

>

voidf(constint&

inti=42;

f(i);

(a)程序输出1

(b)程序输出2

(c)

voidf(constint&

voidf(constint&

i)显式实例化

(d)f(i)隐式实例化函数voidf(int&

均A.ad

财B.bc

C.acd

D.bcd

60.下列程序的输出为()。

classShape{

virtualvoidprint(){

SHAPE"

<

endl;

virtual~Shape(){}

classBox:

publicShape{

virtualvoidprint(inti){

BOX"

Shape*s=newBox();

s->

deletes;

同A.SHAPE

—B.BOX

财C.未定义行为

1从完成C++源文件编辑,到生成执行文件,C++编译器必须执行的步骤依次为编译、链

接。

QA.对

B^

C++是强类型语言。

因A.对

3、如果a为int型变量,b为int型变量,则a/static_cast<

double>

(b)的值为int型。

述BE

4、数组可以通过值参数和

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

当前位置:首页 > 总结汇报 > 其它

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

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