C++Word下载.docx

上传人:b****4 文档编号:17343660 上传时间:2022-12-01 格式:DOCX 页数:16 大小:19.86KB
下载 相关 举报
C++Word下载.docx_第1页
第1页 / 共16页
C++Word下载.docx_第2页
第2页 / 共16页
C++Word下载.docx_第3页
第3页 / 共16页
C++Word下载.docx_第4页
第4页 / 共16页
C++Word下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

C++Word下载.docx

《C++Word下载.docx》由会员分享,可在线阅读,更多相关《C++Word下载.docx(16页珍藏版)》请在冰豆网上搜索。

C++Word下载.docx

3.下列描述中关于引用调用,正确的是(C)

A.形参是指针,实参是地址值;

B.形参是引用,实参是变量;

C.形参和实参都是变量;

D.形参和实参都是数组名;

4.在重载函数调用时选择的依据中,(B)是错误的。

A.函数名字;

B.函数的返回类型;

C.参数个数;

D.参数的类型;

5.有函数原型voidtest(inta,intb=7,charc='

*'

),在下面的函数调用中,属于不合法的调用是(C)

A.test(5);

B.test(5,8);

C.test(6,"

#"

D.test(0,0,'

1.下列关于静态数据成员的描述中正确的是(C)

A.类的不同对象有不同的静态数据成员

B.类的每个对象都有自己的静态数据成员

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

D.静态数据成员不能通过类的对象调用

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

A.友元函数是独立于当前类的外部函数

B.一个友元函数不能同时定义为两个类的友元函数

C.友元函数必须在类的外部定义

D.在外部定义友元函数时,必须加关键字friend

3.友元的作用之一是(A)

A.提高程序的运行效率

B.加强类的封装性

C.实现数据的隐藏性

D.增加成员函数的种类

4.对于常成员函数,(A)是正确的?

A.常成员函数不能修改任何数据成员

B.常成员函数只能修改一般数据成员

C.常成员函数只能修改常数据成员

D.常成员函数只能修改常对象的数据成员

1.假设AB为一个类,则执行“ABx;

”语句时将自动调用该类的(B)。

A.无参构造函数

B.有参构造函数

C.拷贝构造函数

D.赋值重载函数

2.对于类中定义的成员,其隐含的访问权限为(C)。

A.Public

B.Protected

C.Private

D.Static

3.类的析构函数是在(B)。

A.创建类时调用的

B.创建对象时调用的

C.删除对象时调用的

D.不自动调用

4.假定AB为一个类,则该类的拷贝构造函数的原型为(C)。

A.AB&

(ABx)

B.AB(ABx)

C.AB(AB&

x);

D.AB(AB*x);

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

A.构造函数可以设置默认参数

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

C.构造函数可以是内联函数

D.构造函数不可以重载

6.假设BC为一个类,在下面构造函数原型声明中存在着语法错误的是(B)。

A.BC(inta,int);

B.intBC(int,int);

C.BC(int,int);

D.BC(int,inty);

7.类成员的访问权限不包括(A)。

A.PrivateB.ProtectedC.PublicD.Friend

8.下列关于类和对象的描述中不正确的是(C)。

A.一个对象只能属于一个类

B.对象是类的一个实例

C.一个类只能有一个对象

D.类和对象的关系与数据类型和变量的关系类似

9.若有如下类声明:

classA{inta;

};

则A类的成员a是(B)。

A.公有数据成员

B.私有数据成员

C.公有数据成员函数

D.私有成员函数

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

A.对象名

B.类名

C.类名和作用域运算符

D.作用域运算符

11.下列关于析构函数的描述中不正确的是(B)。

A.析构函数有且只有一个

B.析构函数可以有参数ps:

无参,无返回值,不能重载

C.析构函数没有函数类型

D.析构函数的作用是在对象被撤销时收回其内存

空间

12.下列关于对构造函数的描述中正确的是(B)

A.构造函数可以带有返回值ps:

不能指定返回类型,有隐含的返回值

B.构造函数的名字和类名完全相同

C.构造函数必须带有参数

D.构造函数必须定义,不能默认

13.在声明类时,下面说法正确的是(C)

A.可以在类的声明中给数据成员赋初值

B.数据成员的数据类型可以是register

C.private,public,protected可以按任意顺序出现

D.没有用private,public,protected定义的数据成员是公有成员

14.下列关于析构函数特征的描述中正确的是(A)

A.一个类中可以定义多个析构函数

B.析构函数名与类名完全相同

C.析构函数不能指定返回类型

D.析构函数可以有一个或多个参数

15.构造函数是在(B)时被执行的

A.程序编译

B.创建对象

C.创建类

D.程序装入内容

16.假设在程序中已经声明了类point,并建立了其对象p1和p4。

请回答以下几个语句有什么区别?

(1)pointp2,p3;

用无参构造函数初始化了两个实例

(2)pointp2=p1;

用了拷贝构造函数构造了p2,你没有定义,会用默认的

(3)pointp2(p1);

这里也用了拷贝构造函数,并用了本类对象为参数构造函数

(4)p4=p1;

这里用了运算符重载=的

1.使用派生类的主要原因是(A)

A.提高代码的可重用性

B.提高程序的运行效率

C.加强类的封装性

D.实现数据的隐藏

2.假设已经定义好了一个类student,现在要定义类derived,它是从student私有派生的,定义类derived的正确写法是(C)。

A.classderived:

:

studentprivate{.....};

B.classderived:

studentpublic{....};

C.classderived:

privatestudent{....};

D.classderived:

publicstudent{....};

3.在多继承构造函数定义中,几个基类构造函数用(C)分隔。

A.:

B.;

C.,

D.:

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

A.简化程序

B.消除二义性

C.提高运行效率

D.减少目标代码

5.若派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的(C)。

A.私有成员

B.公用成员

C.保护成员

D.保护成员或私有成员

6.类的保护成员,不可以让(B)来直接访问

A.该类的成员函数

B.主函数

C.该类的友元函数

D.该类的派生类

7.保护继承时,基类的(B)在派生类中成为保护成员,不能通过派生类的对象直接访问该成员。

A.任何成员

B.公用成员和保护成员

C.保护成员和私有成员

D.私有成员

1.实现编译时的多态性要使用(A)

A.重载函数

B.析构函数

C.构造函数

D.虚函数

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

3.关于虚函数,描述正确的是(A)

A.构造函数不能是虚函数

B.析构函数不能是虚函数

C.虚函数可以是友元函数

D.虚函数可以是静态成员函数

4.要实现动态连编,派生类中的虚函数(D)。

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

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

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

D.以上都不对

5.如果在基类中将show()声明为不带返回值的纯虚函数,正确的写法是(C)。

A.virtualshow()=0;

B.virtualvoidshow();

C.virtualvoidshow()=0;

D.voidshow()=0virtual;

6.如果一个类中至少有一个虚函数,那么该类称为(A)

A.抽象类

B.虚基类

C.派生类

7.下列关于虚函数与抽象类的描述中错误的是(C)

A.纯虚函数是一种特殊的函数,它允许没有具体实现

B.抽象类是指具有纯虚函数的类

C.一个基类的说明中有纯虚函数,该基类的派生类一

定不再是抽象类

D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出

程序设计题:

1..建立类cylinder,类cylinder的构造函数被传递了两个double值,分别表示圆柱体的半径和度。

用类cylinder计算圆柱体的体积,并存储在一个double变量中。

在类cylinder中包含一个成员函数vol(),用来显示每个cylinder对象的体积。

#include<

iostream>

usingnamespacestd;

constdoublePI=3.14159;

//定义符号变量

classCylinder

{

doubleradius;

doubleheight;

public:

voidsetRH(doubler,doubleh)

radius=r;

height=h;

}

doublegetR()

{

returnradius;

}

doublegetH()

returnheight;

doublevol()

returnPI*radius*radius*height;

voidmain()//定义无返回值的主函数

Cylindercylinder;

//定义对象

doubler;

//定义变量

doubleh;

doubleV;

cout<

<

r="

//提示信息

cin>

>

r;

//输入r

h="

h;

//输入h

cylinder.setRH(r,h);

//调用成员函数

V=cylinder.vol();

//计算体积

cout<

Theresultisbelow:

endl;

//输出信息及数据

cylinder.getR();

cylinder.getH()<

V="

V<

2.使用C++的类建立一个简单的卖玩具程序。

类内必须具有玩具单价、售出数量以及每种玩具售出的总金额等数据,并为该类建立一些必要的函数,并在主程序中使用对象数组建立若干个带有单价和售出数量的对象,显示每种玩具售出的总金额。

#include<

classToy

{public:

Toy();

Toy(int,int);

~Toy();

private:

intprice;

intnum;

intamount;

voidset(int,int);

voidprint();

Toy:

Toy():

price(0),num(0),amount(0)

{}

Toy(inta,intb):

price(a),num(b),amount(a*b)

~Toy()

voidToy:

set(inta,intb)

price=a;

num=b;

amount=a*b;

print()

单价="

price<

售出数量="

num<

总售出金额="

amount<

intmain()

{

Toydog(25,4);

Toycat(20,10);

Toypig(33,5);

dog.print();

cat.print();

pig.print();

Toytoy[10];

for(inti=0;

i<

10;

i++)

toy[i].set(i+20,i+2);

toy[i].print();

}

return0;

3.给出下面的基类

Classarea_cl

Protected:

doubleweidth;

Public:

area_cl(doubler,doubles);

{height=r;

width=s;

virtualdoubleraea()=0;

要求:

建立基类area_cl的两个派生类rectangle与isosceles,让每一个派生类都包含一个函数area(),分别用来返回矩形与三角形的面积。

用构造函数对height与width进行初始化。

写出主程序,用来求height与width分别为10.0与5.0的矩形面积,以及求height与width分别为4.0与6.0的三角行面积。

要求通过使用基类指针访问虚函数的方法分别求出矩形和三角形的面积。

classarea_cl{

protected:

doubleheight;

doublewidth;

area_cl(doubler,doubles)

{height=r;

virtualdoublearea()=0;

classrectangle:

publicarea_cl{

rectangle(doubler,doubles):

area_cl(r,s){};

doublearea()

returnheight*width/2;

classisosceles:

isosceles(doubler,doubles):

returnheight*width;

intmain()

rectanglerec(2.0,3.0);

isoscelesiso(2.0,3.0);

area_cl*area1=&

rec;

area_cl*area2=&

iso;

三角形面积是"

area1->

area()<

endl<

矩形面积是"

area2->

4.给出下面的抽象基类container:

Usingnamespacestd;

Classcontainer

Doubleradius;

Container(doubleradius1):

Virtualdoublesurface_area()=0;

Virtualdoublevolume()=0;

建立3个继承container的派生类cube,sphere,cylinder,让每个派生类都包含虚函数surfacef_area()和volume(),分别用来计算机正方形、球体和圆柱体的表面积和体积。

写出主程序,应用c++的多态性,分别计算边长为6.0的正方体、半径为5.0的球体以及半径为5.0和高为6.0的圆柱体的表面积和体积。

classcontainer

protected:

doubleradius;

public:

container(doubleradiusl);

virtualdoublesurface_area()=0;

virtualdoublevolume()=0;

classcube:

publiccontainer

cube(doublea):

container(a){}

doublesurface_area();

doublevolume();

classsphere:

sphere(doublea):

classcylinder:

inthigh;

cylinder(doubler,doubleh):

container(r){high=h;

container:

container(doubleradiusl)

radius=radiusl;

doublecube:

surface_area()

returnradius*radius;

volume()

returnradius*radius*radius;

doublesphere:

return4*3.14*radius*radius;

return4*3.14*radius*radius*radius/3;

doublecylinder:

return(3.14*radius*2*high+3.14*radius*radius*2);

return3.14*radius*radius*high;

voidmain()

cubea(4);

cylinderb(3,4);

spherec(5);

正方体表面积"

a.surface_area()<

正方体体积"

a.volume()<

球体表面积"

b.surface_area()<

球体体积"

b.volume()<

圆柱体表面积"

c.surface_area()<

圆柱体体积"

c.volume()<

|

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

当前位置:首页 > 初中教育 > 理化生

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

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