C++期末考试复习题Word文档格式.docx

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

C++期末考试复习题Word文档格式.docx

《C++期末考试复习题Word文档格式.docx》由会员分享,可在线阅读,更多相关《C++期末考试复习题Word文档格式.docx(26页珍藏版)》请在冰点文库上搜索。

C++期末考试复习题Word文档格式.docx

下面正确的叙述是(C)

A.A:

func2()和B:

func1()都是虚函数B.A:

func1()都不是虚函数

C.B:

func1()是虚函数,而A:

func2()不是虚函数D.B:

func1()不是虚函数,而A:

func2()是虚函数

第二部分非选择题(共80分)

二、填空题(本大题共10小题,每小题2分,共20分)

11.定义类的动态对象数组时,系统只能够自动调用该类的____默认_____构造函数对其进行初始化。

12.在C++程序设计中,建立继承关系倒挂的树应使用____单_____继承。

13.表达式cout<

end1还可表示为____cout<

`\n`_____。

14.基类的公有成员在派生类中的访问权限由___访问控制______决定。

15.C++支持的两种多态性分别是____静态_____多态性和____动态_____多态性。

16.C++中语句constchar*constp=″hello″;

所定义的指针p和它所指的内容都不能被__改变____。

17.假定AB为一个类,则语句AB(AB&

x);

为该类_____拷贝____构造函数的原型说明。

18.将关键字const写在成员函数的____函数头_____和____函数体_____之间时,所修饰的是this指针。

19.在C++中,访问一个对象的成员所用的运算符是__·

___,访问一个指针所指向的对象的成员所用的运算符是__>

___。

20.派生类从一个或多个以前定义的该类的__基类__

1.D2.B3.B4.A5.A6.A7.B8.D9.C10.C

11.无参12.单一(或单)13.cout<

′\n′(或cout<

′\12′,或cout<

′\xA′,或其它等价形式)

14.访问控制(或其它等价形式)15.编译时的(或静态,或操作重载)运行时的(或动态,或虚函数)

16.改变(或重新赋值)17.复制初始化(或拷贝)18.函数头(或参数表)函数体

19.成员选择运算符(或“.”)成员访问运算符(或“>

”)20.基类

一、单项选择题(每题2分,共20分)

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

A.公有继承的公有成员 

 

B.公有继承的私有成员 

C.公有继承的保护成员 

D.私有继承的公有成员

2.定义析构函数时,应该注意( 

 

A.其名与类名完全相同 

B.返回类型是void类型 

C.无形参,也不可重载 

D.函数体中必须有delete语句

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

)。

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

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

C.类A的成员函数不得访问类B的成员 

D.类B不一定是类A的友元 

4.应在下列程序划线处填入的正确语句是()

#include

class 

Base

 public:

void 

fun(){cout<

"

Base:

fun"

endl;

}

};

Derived:

public 

 void 

fun()

{_____________ 

//显示调用基类的函数fun()

cout<

ENDL;

A.fun();

B.Base.fun();

C.Base:

fun();

D. 

Base->

5.面向对象程序设计将数据与( 

)放在一起,做为一个相互依存、不可分割的整体来处理。

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

6.在类中声明转换函数时不能指定( 

A.参数 

B.访问权限 

C.操作 

D.标识符 

7.在派生类中重新定义虚函数时必须在( 

)方面与基类保持一致。

A.参数类型 

B.参数名字 

C.操作内容 

D.赋值

8.下面关于C++中类的继承与派生的说法错误的是()。

A.基类的protected成员在公有派生类的成员函数中可以直接使用

B.基类的protected成员在私有派生类的成员函数中可以直接使用

C.公有派生时,基类的所有成员访问权限在派生类中保持不变

D.基类的protected成员在保护派生类的成员函数中可以直接使用

9.重载赋值操作符时,应声明为( 

)函数。

A.友元 

B.虚 

C.成员 

D.多态

10.语句 

ofstream 

f(″SALARY.DAT″,ios:

binary);

的功能是建立流对象 

f,试图打开文件 

SALARY.DAT 

并与之连接,并且 

( 

) 

A. 

若文件存在,将文件写指针定位于文件尾;

若文件不存在,建立一个新文件 

B. 

若文件存在,将其置为空文件;

若文件不存在,打开失败 

C. 

若文件存在,将文件写指针定位于文件首;

D. 

若文件存在,打开失败;

二、填空题(每空2分,共30分)

1.假定 

AB 

为一个类,则语句 

AB(AB&

x) 

为该类 

_________ 

构造函数的原型说明。

2.C++ 

支持的两种多态性分别是 

多态性和 

多态性。

3.定义类的动态对象数组时,系统只能够自动调用该类的 

构造函数对其进行初始化。

4.运算符重载时,其函数名由___构成。

成员函数重载双目运算符时,左操作数是___,右操作数是___。

C++标准库中的异常层次的根类为_____类;

MFC类库中绝大多数类都源自根类_______类。

在下面横线处填上适当字句,完成类中成员函数的定义。

A{ 

int 

a;

A(int 

aa=0) 

a=_________;

// 

用 

aa 

初始化 

所指向的动态对象 

~ 

A(){_________;

}// 

释放动态存储空间 

7.C++支持面向对象程序设计的四个要素是:

封装性、继承性、和。

8.模板分为模板和模板。

1.A2.C3.D4.C5.A6.A7.A8.C9.C10.A

拷贝或复制

运行(时)编译(时)(二者位置可互换)(或改为静态和动态也可)

无参(缺省或默认均可)

operator运算符(运算符可写为@,若没写扣1分)(当前)对象函数的形参(参数)

exception(若e写为大写字母则扣0.5分,单词稍微写错扣0.5分)CObject(字母CO为大写字母,写为小写各扣0.5分)

newint(aa)deletea(有new、delete各给1分,int给0.5分)

抽象性多态性(二者位置可互换)

类函数(二者位置可互换)

1.在下面选项中,对类的拷贝构造函数的声明形式是()

A(&

)B.A:

A(constA&

)C.A:

A(A)D.voidA:

A(A&

a)

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

A.成员函数不可以设置参数的默认值B.成员函数可以重载C.成员函数可以是内联函数D.成员函数可以是静态的

3.下面关于类模板叙述不正确的是()

A.可以有多个构造函数B.类模板是模板类的实例C.一个类模板可以用来实例化多个模板类D.类模板可以有多个参数

4.要使一个类成为抽象类,这个类应具有的条件是()

A.至少有一个纯虚函数 

B.至少有一个虚函数C.只含有一个纯虚函数 

只含有一个虚函数

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

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

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

6.下列说法正确的是()。

A.一个类的对象可以是另一个类的成员B.一个类可以作为另一个类的派生类

C.一个类可以在另一个类定义体进行定义D.以上说法均正确

7.有如下程序:

#include<

iostream.h>

classBASE{

charc;

BASE(charn):

c(n){}

virtual~BASE(){cout<

c;

classDERIVED:

publicBASE

{

charc;

DERIVED(charn):

BASE(n+1),c(n){}

~DERIVED(){cout<

intmain()

{

DERIVED('

X'

);

return0;

}

执行上面的程序将输出()。

A)X 

B)YX 

C)XY 

D)Y

8.类MyClass的定义如下:

classMyClass

{public:

MyClass(){value=0;

SetValue(inti){value=i;

private:

intvalue;

则对语句:

MyClass*p,my;

p=&

my;

正确的描述是()。

A.语句p=&

是把对象my赋值给指针变量p;

B.语句MyClass*p,my;

会调用两次类MyClass的构造函数

C.对语句*p.SetValue(5)的调用是正确的D.语句p->

SetValue(5)与my.SetValue(5)等价

9.下列各类函数中,不是类的成员函数。

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

10. 

派生类的对象对它的基类成员中是可以访问的。

A.公有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.私有继承的公有成员

1.定义内联函数所用的关键字,定义友元所用的关键字为。

2.当一个派生类具有多个基类时,这种继承方式称为___。

3.通过一个构造函数调用虚函数时,C++系统对该调用采用联编。

4.任何类中允许有_____、____、_____三种访问控制类型的成员,数据成员和成员函数的默认类型为______。

5.只有在继承的情况下,基类和派生类之间才有赋值兼容性规则。

6.C++标准库中的异常层次的根类定义在库的头文件_______中。

7.运算符重载使用的两种方式是___________和_______。

8.C++支持面向对象程序设计的四个要素是:

抽象性、________、________和________。

1.B2.A3.B4.A5.D6.D7.C8.D9.C10.A

inlinefriend

多重继承

静态

privateprotectedpublic(三者位置可以互换)private

公有

exception.h

成员函数友元函数(二者位置可互换)

多态性继承性封装性(三者位置可互换)

1.下面有关构造函数和new运算符关系正确的说法是()

A.new运算符不调用构造函数B.构造函数一定调用new运算符

C.当生成新类的实例时,先调用new运算符,然后调用构造函数进行初始化

D.当new运算符动态产生类的对象时,new运算符也自动调用构造函数

2.下面有关类性质的说法错误的是()

A.一个类可以有多个构造函数,但只有一个析构函数B.析构函数和构造函数都不能有返回类型

C.不能给析构函数指定参数D.一个类中不可以声明具有类类型的数据成员

3.下面关于友元函数描述正确的是()

A.友元函数是类的成员B.友元函数在类的外部声明C.友元函数在类中声明D.友元函数能够派生

4.下面叙述正确的是()

A.派生类不可以使用私用派生B.保护派生时,基类的保护成员在派生类中是公有的

C.对基类成员的访问允许二义性D.赋值兼容规则也适用于多重继承的组合

6.下面描述中,表达错误的是()

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

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

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

7.拷贝构造函数的参数是()

A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名

8.下列关于构造函数的描述中,错误的是()

A.构造函数可以设置默认参数B.构造函数在定义类对象时自动执行C.构造函数可以是内联函数D.构造函数不可以重载

9.数组作为函数的形参时,把数组名作为实参,传递给函数的是()

A.该数组的首地址B.该数组的元素个数C.该数组中的各元素值D.该数组的大小

10.通过一个析构函数调用虚函数时,C++系统对该调用采用( )。

A.动态联编B.静态联编C.不确定是哪种联编D.函数重载

1.成员名限定的符号是,它可以在引用成员时避免。

2.只有在继承的情况下,基类和派生类之间才有赋值兼容性规则。

3.模板分为模板和模板。

4.在用class定义一个类时,数据成员和成员函数的默认访问权限是。

5.已知intDBL(intn){returnn+n;

}和longDBL(longn){returnn+n;

}是一个函数模板的两个实例,则该函数模板的定义是。

(要求写出函数模板的完整定义)

6.静态数据成员必须在进行初始化。

7.含有纯虚函数的类称为。

8.若Queue是一个类,aQueue是它的一个对象,而且该类中定义了一个静态成员函数show()则在类外对该成员的函数进行调用的方式可以为和。

9.定义内联函数所用的关键字为,定义友元所用的关键字为。

10.使用成员函数重载运算符时,若运算符是二元的,则参数表中有个操作数,此时作为此运算符的左操作数。

1.D2.D3.C4.D5.D6.B7.C8.D9.A10.B

1.:

二义性2.公有3.类函数4.private

5.template<

classT>

TDBL(Tn){returnn+n;

}6.类外7.抽象类

8.aQueue.show()Queue:

show()9.inlinefriend10.1当前对象

1.下面有关重载函数的说法中正确的是()

A.重载函数必须具有不同的返回值类型;

  B.重载函数形参个数必须不同;

  

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

2.使用string类建立对象的不正确方式是()。

A.stringstr(“OK”);

B.stringstr=”OK”;

C.stringstr;

D.stringstr=’OK’;

3.面关于C++中类的继承与派生的说法错误的是()

C.私有派生时,基类的所有成员访问权限在派生类中保持不变

D.继承可以分为单一继承与多重继承

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

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

5.一个类的析构函数。

A.唯一的B.允许重载C.至多可有两个D.只能是缺省的

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

7.在下面选项中,对类的拷贝构造函数的声明形式是()

A.A:

8.下面关于静态成员描述正确的是()

A.静态成员是对象的数据成员B.静态成员是对象的成员C.静态成员是对象的成员函数D.静态成员不是对象的成员

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

A.成员函数不可以设置参数的默认值B.成员函数可以重载C.成员函数可以是内联函数D.成员函数可以是静态的

10.下面叙述正确的是()

A.基类的保护成员在派生类中仍然是保护的B.基类的公有成员在派生类中仍然是公有的

C.基类的私有成员在派生类中是私有的D.从基类派生时,可以有3种派生方法

1.C2.D3.C4.A5.A

6.C7.B8.B9.A10.D

1.classbase{

inta;

intb;

intf(inti,intj);

classderive:

base{

intc;

intbase:

b;

base:

f(inti,intj);

[1]

[2]

2.#include<

voidA(inti=0){m=i;

voidshow(){cout<

m;

void~A(){}

private:

intm;

};

voidmain()

Aa(5);

a.m+=10;

a.show();

[3]

[4]

[5]

3.#include<

iostream>

usingnamespacestd;

classbase{

staticintb;

base(intm,intn):

a(m),b(n){}

staticintgeta(){returna;

staticintgetb(){returnb;

voidshow(){cout<

geta()<

”,”<

getb()<

intb=45;

voidmain(){}

[6]

[7]

[8]

[1]intbase:

[2]base:

[1]base:

(或访问声明仅仅调整名字的访问,不可为它说明任何类型)

f;

(或访问声明不应说明函数参数)

[3]voidA(inti=0){m=i;

[4]void~A(){}

[5]a.m+=10;

[3]构造函数去掉void(或构造函数不能指定返回值类型)

[4]析构函数去掉void(或析构函数不能指定返回值类型)

[5]对象不能访问私有成员

[6]base(intm,intn):

[7]staticintgeta(){returna;

[8]base:

[6]不能通过构造函数初始化静态数据成员(只要把b(n)去掉即可)

[7]静态成员函数中不能引用非静态成员数据成员(或去掉

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

当前位置:首页 > 人文社科 > 法律资料

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

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