c++期末复习Word下载.docx
- 文档编号:19010641
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:15
- 大小:24.66KB
c++期末复习Word下载.docx
《c++期末复习Word下载.docx》由会员分享,可在线阅读,更多相关《c++期末复习Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
(1)A标识所在行定义的函数是什么函数?
public:
w(intA1){A=A1;
w(w&
K){A=K.A;
}//A
(2)i是w类的什么数据成员?
在w类没有
staticinti;
生成对象之前是否可以访问i?
};
intw:
:
i=8;
8、#include<
iostream.h>
voidf(intx,floaty)
{cout<
x<
”,”<
y<
endl;
}
voidf(intx=9)
}
voidf(intx,inty)
{cout<
”OK”<
voidmain()
{f();
f(3,4.5);
f(3);
9、#include<
classQQQ
{ private:
floatA,B;
public:
QQQ(floati,floatj){A=i,B=j;
cout<
"
C\n"
;
~QQQ(){cout<
D\n"
voidprint(){cout<
A<
"
B<
\n"
{QQQa1(20,32);
QQQ*s=newQQQ(6,7);
a1.print();
10、下列函数的说明中,正确的说明是()。
f(int
B、intf(int
11、下面说法正确的是()。
A、生成对象时调用析构函数。
B、定义类时必须写出该类的构造函数。
C、调用构造函数时一般在主函数中明确写出调用格式。
D、析构函数不可以重载。
12、假设A为一个类,则该类的拷贝构造函数的声名语句为()。
A、A&
(Ab) B、A(A&
b)C、A(Ab) D、A&
(A*b)
13.有关类的说法不正确的是()
A、类是一种用户自定义的数据类型
B、只有类中的成员函数才能存取类中的私有数据
C、在类中,如果不作特别说明,所有的数据均为私有数据类型
D、在类中,如果没有定义一个构造函数,则系统自动提供一个默认的构造函数。
14.已知类AA的成员函数为voidfun(inta,intb),下面哪个函数能够作为它的重载函数()。
A、voidfun(inta=0,intb)B、voidfun(inta,intb=0)
C、voidfun(inta)D、voidfun(intm,intn)
15、给出下面程序:
(1)#include
“iostream.h”
(1)数据成员no可以通过Student类的对象直
class
Student{
接访问吗?
intno;
(2)在类中必须自定义至少一个构造函数吗?
Student(int
num){no
num;
}为什么?
Display(){cout<
no;
16、classPoint
intx,y;
(1)A、B标识所在行定义的函数分别是什么函数?
Point(intx1,inty1)//A
{x=x1;
y=y1}
(2)C标识的函数是Piont类的什么函数?
Point(Point&
p)//B它是否可以访问Point类的私有成员?
{x=p.x;
y=p.y}
friendintfun();
};
//C
17、#include<
voidf(intx,floaty,intz)
z<
voidf(intx=7){cout<
voidf(intx,inty){cout<
f(4,6);
f(3,2.1,5);
18、一个函数功能不太复杂,但要求被频繁调用,可以设计为(
)
A.内联函数
B.重载函数C.递归函数
D.嵌套函数
19、类的析构函数是在(
)调用的。
A.类创建时
B.创建对象时
C.删除对象时
D.不自动调用
3、下列不是描述类的成员函数的是(
)
A.构造函数
B.析构函数C.友元函数
D.拷贝构造函数
6、关于静态数据成员,错误的是()
A.用static关键声明静态数据成员。
B.静态数据成员具有静态生存期。
C.静态数据成员必须通过对象名调用。
D.对于任何对象实例,静态数据成员属性值是相同的。
1、根据程序,回答下面问题。
classPoint
(1)protected关键字有何作用?
它与私有类型成员的区别是什么?
Point()
(2)系统什么时候调用构造函数?
{x=0;
y=0;
}};
4、根据程序,回答下面的问题。
classClock
{pvivate:
inth,m,s;
Clock(){h=0;
m=0;
s=0;
};
Clock(Clock&
c)//A
{h=c.h;
m=c.m;
s=c.s;
~Clock(){}
friendvoidDispTime();
//B};
(1)标识行A定义的函数是什么函数?
(2)标识行B定义的函数是Clock类的什么函数?
它是否可以访问Clock类的私有成员?
1、#include<
iostream>
usingnamespacestd;
intArea(intx,inty)
{returnx*y;
doubleArea(intx=10)
{return3.14*x*x;
程序运行结果:
{
cout<
Area()<
Area(3,4)<
Area(100)<
1、设计一个三角形类Triangle,其中含有数据成员L和H,分别表示三角形的底边长与高,使用类的成员函数Area计算三角形的面积,并完成在main函数中的相应调用。
(10分)
1、设计一个矩形类rectangle,其中含有数据成员L和W,分别表示矩形的长与宽,使用类的成员函数Area和Girth计算矩形的面积和周长,并完成在main函数中的相应调用。
1、声明一个Circle类,有数据成员radius(圆的半径),定义成员函数GetRadius()实现由键盘输入圆的半径,成员函数Area()实现计算并输出圆的面积,同时完成在main函数中的相应调用。
二、继承
4、给出程序,在main函数中写出如下选项,不合法的是()。
#include“iostream.h”
classMM
{protected:
intb;
MM(inta1=0){b=a1;
voidshow(){cout<
b;
classkk:
publicMM
{public:
voidshow(){MM:
show();
A、MMM(9);
B、kkk;
C、kkk;
D、kkk;
M.show();
k.b=1;
k.show();
k.MM:
show();
3、classm{
intx;
(1)在这个程序中m什么类?
};
classm1:
virtualpublicm//A
(2)如A、B标识所在行没有virtual关键字,
则m3类生成的对象中有几个x?
classm2:
virtualpublicm//B
{public:
classm3:
publicm1,publicm2
5、可以在main函数中用p.a的形式访问派生类对象p的基类成员a,其中a应是()。
A、私有继承的公有成员B、公有继承的私有成员
C、公有继承的保护成员D、公有继承的公有成员
2、说出C++中两种的继承方式,简述这两种继承方式下基类成员在派生类中的使用规则。
2、Person类描述人这一概念,其中数据成员name表示学生的姓名,age表示年龄。
Student类描述学生这一概念,它是Person的派生类,Student类中新增数据成员classname表示学生的级别名称。
请用C++代码描述这两个类,并用Student类的友元函数Display实现学生的姓名、年龄和级别名称的输出,不必书写main函数的实现。
2、在类的继承与派生过程中,类的继承方式有几种,分别是什么?
基类的构造函数和析构函数是否可以被派生类继承?
3、classK
(1)在这个程序中K是什么类?
{public:
voidf(){cout<
ok"
classK1:
virtualpublicK//A
(2)A、B标识所在行的virtual关键字的
voidfn(){cout<
ok1"
作用是什么,如果没有它,K3类生成的对
classK2:
virtualpublicK//B象中有几个f()?
{public:
ok2"
classK3:
publicK1,publicK2
2、Point类描述点这一概念,其中数据成员x和y表示点的横坐标和纵坐标。
Circle类描述圆这一概念,它是Point的派生类,Circle类中新增数据成员radius表示圆的半径。
请用C++代码描述这两个类,并用Circle类的友元函数Display输出圆的圆心的横、纵坐标和圆的半径,写出main函数的实现。
5、C++
类体系中,不能被派生类继承的有
(
A.
静态数据成员
B.
构造函数
C.
虚函数
D.
静态成员函数
2、根据程序,回答下面的问题。
classA
{private:
protected:
inty;
intz;
voidshowinfo();
classB:
privateA
{}
(1)以上继承属于哪种继承方式?
x在派生类B中可以访问吗?
(2)y,z在派生类中分别以什么身份出现?
3、根据程序,回答下面的问题。
classBB
classBB1:
virtualpublicBB//A
classBB2:
virtualpublicBB//B
classAA:
publicBB1,publicBB2
(1)利用virtual修饰的类叫做什么类?
(2)如A、B标识所在行没有virtual关键字,则AA类生成的对象中有几个x?
2、由上题的Circle类派生Cylinder(圆柱体)类,新增数据成员high表示圆柱的高,重新实现派生类(Cyliner)的构造函数,新增成员函数GetData()由键盘输入圆的半径及圆柱的高,定义Cylinder类的友元函数Display()实现圆柱体体积的计算与输出。
不必书写main函数的实现。
4、给出程序,在main()函数中写出如下选项,不合法的是()
#include<
classB0
inta0;
B0(){a0=0;
voidprint(){cout<
a0;
classB1:
publicB0
voidprint(){B0:
print();
A、B0b0();
B、B1b1;
C、B1b1;
D、B1b1;
b0.print();
b1.print();
b1.B0:
print();
b1.a0=9
2、写出程序的运行结果
classbase
base(){cout<
”constructingbaseclass\n”;
~base(){cout<
”destructingbaseclass\n”;
classsubs:
publicbase
subs(){cout<
”constructingsubclass\n”;
~subs(){cout<
”destructingsubclass\n”;
{subss;
}
2、#include<
Clock()
clock的构造函数"
~Clock()
clock的析构函数"
classDate:
publicClock
{public:
Date()
Date构造函数"
~Date()
Date析构函数"
}};
{Datedate1;
三、虚函数
7.通过(
)调用虚函数时,采用动态束定。
A.对象指针
B.对象名C.成员名限定
D.派生类名
3、类Shape用来描述各种形状的抽象类,其中纯虚函数Area是提供计算各种形状面积的接口;
类Circle描述圆这一形状,半径radius和计算面积的虚函数Area是其成员;
类Rect描述矩形这一形状,长width、高height和计算面积的虚函数Area是其成员;
请用C++描述这三个类,并在main()函数中通过Shape类的接口实现圆和矩形面积的计算。
(12分)
3、如果一个类至少有一个纯虚函数,那么就称该类为()。
A、抽象类B、虚基类C、派生类D、以上都不对
4、对于类定义
A
{
virtual
void
func1(
){
}
func2(
B:
public
A
func1(
){cout<
″
B
func
1
2
下面正确的叙述是
)
A、
A:
func2(
和
都是虚函数
B、
都不是虚函数
C、
是虚函数,而
不是虚函数
D、
不是虚函数,而
是虚函数
3、类K是用来描述各种计算的抽象类,其中纯虚函数Count是提供计算各种计算方式的接口;
类B是描述汽车类,行驶时间h、时速s和计算行使公里数的虚函数Count是其成员,类G是描述学生成绩类,数学成绩s、语文成绩y和计算平均成绩的虚函数Count是其成员,请用C++描述这三个类,并在main()函数中通过K类的接口实现客车行驶公里数和学生平均成绩的计算。
7、调用一成员函数时,使用动态绑定的情况是()
A.通过对象调用一虚函数 B.通过指针或引用调用一虚函数
C.通过对象调用静态函数 D.通过指针或引用调用一静态函数
9.()是指同样的消息被不同类型的对象接收时导致不同的行为。
A.重载
B.继承C.多态D.抽象
3、类TeacherPay是用于计算教师月薪的抽象类,其中数据成员有教师编号(tNo)及月薪总额(tAccumpay),其中Pay()是提供计算教师工资的纯虚函数;
类OuterTeach描述计算外聘教师的月薪,继承自类TeacherPay,月薪总额计算方法tAccumpay=hourlyRate(每小时薪金)*workHour(月工作小时数),InnerTeach类描述计算校内教师月薪,也继承自类TeacherPay,月薪总额计算方法tAccumpay=basePay(基本工资)+prize(奖金),请用C++描述这三个类,并在main()函数中通过TeacherPay类的接口实现外聘教师和校内教师月薪的计算
四、运算符重载
1、请根据程序的输出结果完成填空。
classshu
intval;
shu(inti=2){val=i;
________________+(_______________){returnval+T.val;
voidmain()
{shus1(78),s2;
s1+s2;
程序输出结果是:
80
classK
intval;
number(inti){val=i;
________________*(K&
k){________________;
{Kk1(3);
k2(8)
k1*k2;
24
classcomplex//复数类声明
{private:
doublereal;
doubleimag;
complex(doubler=0,doublei=0)
{real=r;
imag=i;
+(cc)
{returncomplex(cc.real+real,cc.imag+imag);
voiddisplay()
{cout<
real<
+"
imag<
"
i"
<
voidmain()//主函数
{complexc1(5,4);
complexc2(2,8);
complexc3;
c3=c1+c2;
c3.display();
7+12i
五、IO流
8、cout是I0流库预定义的()。
A、类
B、对象
C、包含文件
D、常量
6.对于语句cout<
endl<
中的各个组成部分,下列叙述中错误的是()
A、“cout”是一个输出流对象B、“endl”的作用是输出回车换行
C、“x”是一个变量D、“<
”称作提取运算符
8、cin是I0流库预定义的()
A.常量
B.类C.包含文件
D.对象
六、文件流
2、C:
\k.txt文件中已存放着字符串abcde,下面程序在屏幕上输出C:
\k.txt文件中的所有字符。
#include"
iostream.h"
fstream.h"
{ifstreamm("
c:
\\k.txt"
_________________);
chars[5];
___________________;
m.close();
\k.txt文件中已存放着字符串abcdefgh,下面程序在屏幕上输出C:
\k.txt文件中的前5个字符。
{ifstreamk(_____________,ios:
in);
chars[6];
__________________;
s;
________________;
2、下面的程序使用I/O流在当前目录下test.txt文件中,追加字符“欢迎您”,按要求完成程序填空。
ofstream>
{ofstreamfile1(______________,ios:
app);
file1___________________;
七、模板
3、#include<
template<
classSomeType>
voidSwap(SomeType&
a,SomeType&
b)
{SomeTypetmp;
tmp=a;
a=b;
b=tmp;
templat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 期末 复习