C++复习题上课讲义Word文档格式.docx
- 文档编号:14887804
- 上传时间:2022-10-25
- 格式:DOCX
- 页数:12
- 大小:19.16KB
C++复习题上课讲义Word文档格式.docx
《C++复习题上课讲义Word文档格式.docx》由会员分享,可在线阅读,更多相关《C++复习题上课讲义Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
。
4、如果一个类中至少有一个纯虚函数,则该类称为(抽象类)。
5、C++类的组成包括数据成员和(成员函数),友元_不是_(是、不是)该类的成员函数。
6、友员函数是用关键字_friend_修饰的非成员函数。
7、若有:
inti;
int&
j=i;
i=10;
j=i+1;
则i=(11),j=(11)。
8、new的功能是(动态申请内存空间),delete的功能是(释放)。
二、选择题
1、下列特性中不是面向对象程序设计语言所特有的是(D模版)。
(A)数据封装(B)继承(C)多态性(D)模板
2、(B引用)是给变量取一个别名,它引入了变量的同意词。
(A)指针(B)引用(C)枚举(D)结构
3、类成员的访问权限中,(Cprivate)只能被本类的成员函数和其友元函数访问。
(A)share(B)public(C)private(D)protected
4、关于构造函数,下列说法不正确的是(D构造函数且只有一个)。
(A)构造函数名字和类名相同
(B)构造函数在创建对象时自动执行
(C)构造函数无任何函数返回类型
(D)构造函数有且只有一个
5、派生类可以访问其基类的(D公有和保护成员)。
(A)公有成员(B)保护成员
(C)私有派生(D)公有和保护成员
6、下列关于运算符重载的描述中,错误的是(B运算符重载不可以改变运算符的功能)。
(A)运算符重载不可以改变操作数的个数
(B)运算符重载不可以改变运算符的功能
(C)运算符重载不可以改变结合方向
(D)运算符重载不可以改变运算优先级
7、C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是(B面向对象)
(A)面向过程 (B)面向对象 (C)安全性 (D)复用性
8、对于类中定义的成员,其隐含访问权限为(C.private)。
A.publicB.protected
C.privateD.static
9、下面有关重载函数的说法中正确的是(C重载函数必须有不同的形参列表)
(A)重载函数必须具有不同的返回值类型;
(B)重载函数形参个数必须不同;
(C)重载函数必须有不同的形参列表 (D)重载函数名可以不同;
10、有如下的对类“CSample”的说明,其中(A.inta=23)是错误的。
classCSample{
A.inta=23;
B.CSample();
public:
C.CSample(intval);
D.~CSample();
11、在inta=3,int*p=&
a;
中,*p的值是(D.3)
A.变量a的地址值B.无意义
C.变量p的地址值D.3
12、每个类(C可以有多个)构造函数。
(A)只能有一个(B)只可有公有的
(C)可以有多个(D)只可有缺省的
13、在一个类中可以对一个操作符进行(D多种)重载。
(A)1种(B)2种以下(C)3种以下(D)多种
14、在公有继承的情况下,基类非私有成员在派生类中的访问权限(B保持不变)
(A)受限制(B)保持不变(C)受保护(D)不受保护
15、应在下列程序划线处填入的正确语句是(CBase:
:
fun())
#include<
iostream.h>
classBase
{public:
fun(){cout<
"
Base:
fun"
ENDL;
}
classDerived:
publicBase
{voidfun()
{_____________//显示调用基类的函数fun()
cout<
Derived:
(A)fun();
(B)Base.fun();
(C)Base:
fun();
(D)Base->
16、执行下面的程序将输出(A.XY)
classBASE{
charc;
public:
BASE(charn):
c(n){}
virtual~BASE(){cout<
c;
};
classDERIVED:
publicBASE{
DERIVED(charn):
BASE(n+1),c(n){}
~DERIVED(){cout<
intmain()
{DERIVEDa('
X'
);
return0;
(A)XY
(B)YX
(C)X
(D)Y
17、下面描述中,表达错误的是(B.公有继承是基类中的private成员在派生类中仍是private的)
(A)公有继承时基类中的public成员在派生类中仍是public的
(B)公有继承是基类中的private成员在派生类中仍是private的
(C)公有继承时基类中的protected成员在派生类中仍是protected的
(D)私有继承时基类中的public成员在派生类中是private的
18、定义析构函数时,应该注意(C)无形参,也不可重载)
(A)其名与类名完全相同(B)返回类型是void类型
(C)无形参,也不可重载(D)函数体中必须有delete语句
19、对于在类中定义的静态数据成员,下面正确的说法是(C.在类外进行初始化)
A.该类的每个对象中都有一个静态数据成员
B.对象创建时产生
C.在类外进行初始化
D.既可以在类外初始化,也可以在类内初始化
20、C++中声明常量的关键字是(A.const)。
A.constB.externC.publicD.enum
三、改错题
1、使用VC6打开考生文件夹下的工程proj1,此工程包含一个源程序文件main.cpp,但该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:
member=0
源程序文件清单如下:
<
{
//更正___MyClassobj1(0)____
//更正__obj1.SetMember(5)____
//更正___obj2.SetMember(10)_____
四、写出下列程序的执行结果
1、
#include<
classSample
{intn;
Sample(inti){n=i;
friendintadd(Sample&
s1,Sample&
s2);
intadd(Sample&
s2)
returns1.n+s2.n;
voidmain()
Samples1(10),s2(20);
add(s1,s2)<
执行结果是:
30
2、
intadd(intx,inty)
returnx+y+1;
doubleadd(doublex,doubley)
returnx+y-1;
inta=2,b=4;
doublec=2.6,d=7.4;
add(a,b)<
"
add(c,d)<
执行结果是:
79
3、
classA
intn;
classB:
virtualpublicA{};
classC:
classD:
publicB,publicC
intgetn(){returnB:
n;
Dd;
d.B:
n=10;
d.C:
n=20;
n<
2020
4、
classmyclass
inta,b;
staticints;
myclass(intx,inty)
{a=x;
b=y;
s++;
voidprint()
{cout<
s<
intmyclass:
s=0;
voidmain()
{
myclassm1(1,2),m2(4,5),m3(6,7);
m1.print();
m2.print();
m3.print();
3/n3/n3/n
五、编程题
1、测试一个名为rectangle的矩形类,其属性为矩形的左下角与右上角两个点的坐标,能计算矩形的面积。
math.h>
classrectangle//(2分)
private:
intx1,y1,x2,y2;
//(2分)
rectangle(intxx1,intyy1,intxx2,intyy2)//(1分)
{
x1=xx1;
y1=yy1;
x2=xx2;
y2=yy2;
}
intgetarea()//(2分)
returnabs((x2-x1)*(y1-y2));
rectanglerect1(3,7,8,5);
(2分)
cout<
rect1.getarea()<
(1分)
2、定义一boat与car两个类,二者都有weight属性,定义二者的一个友元函数totalweight(),计算二者的重量和。
classcar;
(1分)
classboat{
intweight;
//(1分)
boat(intw):
weight(w){}//(1分)
friendinttotalweight(boatb1,carc1);
//(2分)
class
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 复习题 上课 讲义
![提示](https://static.bdocx.com/images/bang_tan.gif)