C++期末热身第二部分Word文件下载.docx
- 文档编号:19101463
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:31
- 大小:167.51KB
C++期末热身第二部分Word文件下载.docx
《C++期末热身第二部分Word文件下载.docx》由会员分享,可在线阅读,更多相关《C++期末热身第二部分Word文件下载.docx(31页珍藏版)》请在冰豆网上搜索。
a)
其中,A&
a的含意是(3)。
1指向类A的指针为a
2将A的地址值赋给变量Set
3a是类A的对象的引用,用来作函数Set()的形参
4变量A与a按位相与作为函数Set()的参数
10、有以下类的说明,请指出错误的地方ABCDclassCSample{
private:
(A)
inta=2.5;
CSample;
(B)
public:
CSample(intval);
(C)
~CSample;
(D)
};
11、下面程序的输出结果是
(1)
#includeviostream>
usingnamespacestd;
classpoint
{
voidpoi(intpx=10,intpy=10)
{x=px;
y=py;
}
getpx()
{returnx;
getpy()
{returny;
intx,y;
};
intmain()
pointp,q;
p.poi();
q.poi(15,15);
coutvv“p点的坐标是:
”vvp.getpx()vv“,”;
coutvvp.getpy()vvendl;
coutvv“q点的坐标是:
”vvq.getpx()vv“,”;
coutvvq.getpy()vvendl;
return0;
个常量指针
而不能被赋值
①p点的坐标是:
10,10②
p点的坐标是:
0,0
q点的坐标是:
15,15
③
0,0④
10,10
12、
下列关于对象数组的描述中,
(4)是错误的。
1对象数组的下标是从0开始的②对象数组的数组名是-
2对象数组的每个元素是同一个类的对象④对象数组只能赋初值,
13、下列定乂中,
(2)是定乂指向数组的指针p。
①int*p[5]②int(*p)[5]③(int*)p[5]④int*p[]
14、具有转换函数功能的构造函数,应该是
(2)。
①虚析构函数②虚构造函数③纯虚函数④静态成员函数
22、如果一个类至少有一个纯虚函数,那么就称该类为
(1)。
①抽象类②虚基类③派生类④以上都不对
二、判断题
1、一个类的构造函数中可以不包含对其子对象的初始化。
(T)
2、派生类是从基类派生出来,它不能再生成新的派生类。
(F)
3、在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。
(F)
4、单继承情况下,派生类中对基类成员的访问也会出现二义性。
5、构造函数可以被继承。
(T)
6、析构函数不能被继承。
(F)
7、解决多继承情况下出现二义性的方法之一是使用成员名限定法。
&
子类型是不可逆的。
9、派生类是它的基类的组合。
/10、只要是类M继承了类N,就可以说类M是类N的子类型。
11、如果A类型是B类型的子类型,则A类型必然适应于B类型。
(T)
12、重载运算符保持原运算符的优先级和结合性不变。
13、构造函数说明为纯虚函数是没有意义的。
(T)
14、抽象类是指一些没有说明对象的类。
15、动态联编是在运行时选定调用的成员函数的。
三、填空题
1、以下程序的执行结果是。
#includeviostream>
usingnamespacestd;
classSample{intx;
public:
voidsetx(inti){x=i;
}intputx(){returnx;
Sample*p;
SampleA[3];
A[0].setx(5);
A[1].setx(6);
A[2].setx(7);
for(intj=0;
j<
3;
j++)
P=&
A[j];
coutvvp->
putx()vv”;
coutvvendl;
2、以下程序的执行结果是构造函数。
i=10
i=20
classSample{public:
Sample(){coutvv"
构造函数。
"
vvendl;
voidfn(inti)
staticSamplec;
coutvv”="
vvivvendl;
fn(10);
fn(20);
return0;
3、以下程序的执行结果是x=5。
classA
intx;
voidfun(inti){x=i;
Ac;
intA:
*p=&
x;
c.*p=2;
void(A:
*pfun)(int)=A:
fun;
(c.*pfun)(5);
cout<
<
x="
vvc.xvvendl;
4、以下程序的执行结果是fun1:
7
fun2:
15。
#includeviostream>
A(inti){x=i;
voidfun1(intj){x+=j;
coutvv"
funl:
"
vvxvvendl;
}voidfun2(intj){x+=j;
fun2:
}};
Ac1
(2),c2(5);
fun1;
(c1.*pfun)(5);
pfun=A:
fun2;
(c2.*pfun)(10);
5、以下程序的执行结果是97
classSample
Sample(){};
voidsetx(inti){x=i;
}friendintfun(SampleB[|,intn){
intm=0;
for(inti=0;
i<
n;
i++)
if(B[i].x>
m)m=B[i].x;
returnm;
SampleA[1O];
intArr[]={90,87,42,78,97,84,60,55,78,65};
for(inti=O;
1O;
A[i].setx(Arr[i]);
coutvvfun(A,1O)vvendl;
6、以下程序的执行结果是_1
3。
inta;
voidseta(intx){a=x;
}voidshowa(){coutvvavvendl;
classB
intb;
voidsetb(intx){b=x;
}voidshowb(){coutvvbvvendl;
}};
classC:
publicA,privateB{private:
intc;
voidsetc(intx,inty,intz)
c=z;
seta(x);
setb(y);
voidshowc(){coutvvcvvendl;
intmain(){
Cc;
c.seta
(1);
c.showa();
c.setc(1,2,3);
c.showc();
7、以下程序的执行结果是(1,2)
5.6
(69#includeviostream>
A(inti,intj){a=i;
b=j;
}voidmove(intx,inty){
a+=x;
b+=y;
voidshow()
{coutvv”vvavv”"
vvbvv”"
}private:
inta,b;
classB:
privateA
B(inti,intj,intk,intl):
A(i,j)
x=k;
y=l;
coutvvxvv”"
vvyvvendl;
voidfun(){move(3,5);
voidf1(){A:
show();
Ae(1,2);
e.show();
Bd(3,4,5,6);
d.fun();
d.show();
d.f1();
8以下程序的执行结果是a=0b=0c=0
a=1b=0c=0a=1b=3c=0a=1b=3c=5
A(){a=0;
b=0;
A(inti){a=i;
A(inti,intj){a=i;
voiddisplay(){coutvv"
a="
vvavv"
b="
vvb;
publicA
{public:
B(){c=O;
B(inti):
A(i){c=0;
B(inti,intj):
A(i,j){c=O;
B(inti,intj,intk):
A(i,j){c=k;
voiddisplay"
)
{display。
;
coutvv"
c="
vvcvvendl;
intc;
{Bb1;
Bb2
(1);
Bb3(1,3);
Bb4(1,3,5);
b1.display1();
b2.display1();
b3.display1();
b4.display1();
9、以下程序的执行结果是30,30
classPoint
Point(intvx,intvy){x=vx;
y=vy;
Point(){x=0;
y=0;
Pointoperator+(Pointp1)
Pointp;
intpx=x+p.x;
intpy=y+p.y;
returnPoint(px,py);
Pointoperator-(Pointp1)
intpx=x-p1.x;
intpy=y-p1.y;
returnPoint(px,py);
voidprint()
coutvvxvv””,vvyvvendl;
Pointp1(10,10),p2(20,20);
p1=p1+p2;
p1.print();
10、以下程序的执行结果是baseclass
deriveclass
derive2class#includeviostream>
classbase
virtualvoidwho(){
baseclassvvendl;
classderive:
publicbase
voidwho(){
deriveclass"
classderive2:
voidwho()
derive2class"
vvendl;
baseobj1,*p;
deriveobj2;
derive2obj3;
p=&
obj1;
p->
who();
obj2;
obj3;
f1functionofbasef2functionofbasef3functionofbasef1functionofderivef2functionofbasef4functionofderive
#include<
iostream>
classbase
virtualvoidf1()
f1functionofbase"
endl;
virtualvoidf2()
f2functionofbase"
virtualvoidf3()
f3functionofbase"
virtualvoidf4()
voidf1()
coutvv”1functionofderive”vvendl;
voidf2(intx)
”2functionofderive”<
voidf4()
”4functionofderive”<
deriveobj2;
p=&
P->
p->
f2();
f3();
f4();
12、以下程序的执行结果是(10,20)
(13,23)
(16,26)
#includeviostream.h>
classPoint
Point(unsignedx,unsignedy)
Point:
x=x;
y=y;
unsignedgetx(){returnx;
unsignedgety(){returny;
{coutvv"
Point(<
vxvv”"
vvyvv”"
friendPointoperator+(Point&
pt,intnoffset);
friendPointoperator+(intnoffset,Point&
pt);
unsignedx,y;
Pointoperator+(Point&
pt,intnoffset)
Pointptemp=pt;
ptemp.x+=noffset;
ptemp.y+=noffset;
returnptemp;
Pointoperator+(intnoffset,Point&
pt)
Pointpt(10,20);
pt.print();
pt=pt+3;
pt=3+pt;
四、程序分析题
1、分析下列程序的输出结果(注:
除了给出结果外,还要进行简单分析)
classL
voidInitL(intx,inty){X=x;
Y=y;
voidMove(intx,inty){X+=x;
Y+=y;
intGetX(){returnX;
intGetY(){returnY;
intX,Y;
classR:
publicL
voidInitR(intx,inty,intw,inth)
lnitL(x,y);
W=w;
H=h;
intGetW(){returnW;
intGetH(){returnH;
intW,H;
classV:
publicR
voidfun(){Move(3,2);
Vv;
v.InitR(10,20,30,40);
v.fun();
”<
W.GetX()vv”"
vvv.GetY()vv”"
vvv.GetWvv”"
vvv.GetH()vv"
}"
vvendl;
运行结果:
{13,22,30,40}
2、分析下列程序的输出结果(注:
B(){}
B(inti){b=i;
virtualvoidvirfun()
coutvv"
B:
virfun()called.\n”
classD:
publicB
D(){}
D(inti,intj):
B(i){d=j;
intd;
voidvirfun()
D:
virfun()called.\n”
voidfun(B*obj)
obj->
virfun();
D*pd=newD;
fun(pd);
运行结果:
virfun()called.
3、分析下列程序的输出结果
voidMove(intx,inty){a+=x;
voidShow(){coutvv”Vvavv”"
vvbvv”)"
private:
classB:
publicA
B(inti,intj,intk,intl):
A(i,j),x(k),y(l){}
voidShow(){coutvvxvv'
'
voidfun(){Move(3,5);
voidf1(){A:
Show();
e.Show();
d.A:
d.B:
(1,2)
(6,9)
(5,6)
4、阅读程序,回答下列问题。
voidf();
virtualpublicA
classC:
publicC,virtualpublicA
voidg();
(1)设有Dd;
问:
d.f()是否有二义性?
(2)设有
voidD:
g()
f();
g()函数中对f()调用是否有二义性?
5、阅读程序,写出执行结果并进行简要分析。
#in
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 期末 热身 第二 部分