- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九章综合练习题参考答案
第九章综合练习题
请提交本文档!
姓名 学号
一、选择题(20分)
已知f1(int)是类A的公有成员函数,p是指向成员函数f1()的指针(int (A::*p)(int);)下列赋值语句中,正确的是( B )
p=f1; B. p=A::f1; C. p=A::f1() D. p=f1();
设有下列说明。如果要给类Sample的对象s中的成员数据m赋值为5,正确的语句是( C )
#include iostream.h
class Sample{
public:
int m;
};
Sample s;
int *p=s.m;
A. s.p=5; B. s-p=5; C. *p=5; D. *s.p=5
下列定义中,Sample是一个类,( B )是定义指向对象数组的指针p。
A. Sample *p[5] B. Sample (*p)[5] C. (Sample *) p[5] D. Sample *p[]
this指针是分配给被调用的成员函数的指针,*this表示( D )。
A. 成员函数的形参 B. 对象所调用的成员函数 C. 成员函数种的数据成员 D. 调用成员函数的对象
下列有关类和对象的说法中,正确的是( C )
类和对象没有区别
要为类和对象分配存储空间
对象是类的实例,为对象分配存储空间而不为类分配存储空间
类是对象的实例,为类分配存储空间而不为对象分配存储空间
二、阅读程序题(40分)
执行以下程序后,其输出结果是( 102+202i )
#include iostream.h
class Complex{
public:
float Real,Image;
Complex *Add();
void Print()
{ coutReal+Imageiendl; }
};
Complex *Complex::Add()
{
Real++;
Image++;
return this;
}
void main(void)
{ Complex c1={100,200};
c1.Add()-Add();
c1.Print();
}
执行以下程序后,输出的第一行是( fun1:7 ),第二行是( fun2:15 )。
#include iostream.h
class A{
public:
int x;
void fun1(int j){x+=j;coutfun1:xendl;}
void fun2(int j){x+=j;coutfun2:xendl;}
};
void main(void)
{ A c1={2},c2={5};
void (A::*pf)(int);
pf=A::fun1;
(c1.*pf)(5);
pf=A::fun2;
(c2.*pf)(10);
}
三、完善程序题(20分)
下列程序中类T的定义包含两个私有成员数据p1和p2,共有成员函数void Init(char *s1,char * s2)的功能是将s1和s2所指向的字符串分别送给p1和p2,成员函数void CopyT(T t)的功能是将当前对象(指调用该成员函数的对象)的私有成员p1和p2复制给对象t的对应成员变量,成员函数void FreeT()的功能是释放p1和p2的内存空间。请完善下面的程序。
#include iostream.h
#include string.h
class T{
char *p1,*p2;
public:
void Init(char *s1, char*s2);
void Print()
{coutp1=p1endlp2=p2endl;}
void CopyT(T t)
{ t.Init(p1,p2);}
void FreeT(void)
{
if(p1) delete [] p1 ;
if(p2) delete [] p2;
}
};
void T::Init (char *s1, char *s2)
{
p1=new char [strlen(s1)+1];
p2=new char [strlen(s2)+1];
strcpy(p1,s1);
strcpy(p2,s2);
}
void main(void)
{
T t1,t2;
t1.Init(abc,def);
t1.CopyT( t2 );
t2.Print();
t1.FreeT();
t2.FreeT();
}
四、程序设计题(20分)
下列
文档评论(0)