99级cpp01exmC++期末试题答案Word下载.docx

上传人:b****2 文档编号:14313872 上传时间:2022-10-22 格式:DOCX 页数:13 大小:29.91KB
下载 相关 举报
99级cpp01exmC++期末试题答案Word下载.docx_第1页
第1页 / 共13页
99级cpp01exmC++期末试题答案Word下载.docx_第2页
第2页 / 共13页
99级cpp01exmC++期末试题答案Word下载.docx_第3页
第3页 / 共13页
99级cpp01exmC++期末试题答案Word下载.docx_第4页
第4页 / 共13页
99级cpp01exmC++期末试题答案Word下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

99级cpp01exmC++期末试题答案Word下载.docx

《99级cpp01exmC++期末试题答案Word下载.docx》由会员分享,可在线阅读,更多相关《99级cpp01exmC++期末试题答案Word下载.docx(13页珍藏版)》请在冰豆网上搜索。

99级cpp01exmC++期末试题答案Word下载.docx

cpString,i,cChar);

}

答案:

{inti;

//作用域概念

for(i=0;

if(cpString[i]==cChar){//常见的操作符使用熟练程度

//…

voidfind2Char(constcharcpString[],constcharcChar)

{inti=0;

for(constchar*p=cpString;

*p!

p++,i++)//类型匹配概念;

dereferencing;

指针操作

if(*p==cChar){//dereferencing

2.(20分)

阅读下面的程序,写出main的输出。

inth(intiCount,constint*ipIndex,int&

irObj)

{

iCount%=2;

if(*ipIndex>

=5)

irObj+=iCount;

return*ipIndex+irObj;

main()

inti,j=1,k=2,m;

i<

10;

i++,j++){

m=h(i,&

j,k);

i=%2d,j=%2d,k=%2d,m=%2d.\n"

i,j,k,m);

i=0,j=1,k=2,m=3.

i=1,j=2,k=2,m=4.

i=2,j=3,k=2,m=5.

i=3,j=4,k=2,m=6.

i=4,j=5,k=2,m=7.

i=5,j=6,k=3,m=9.

i=6,j=7,k=3,m=10.

i=7,j=8,k=4,m=12.

i=8,j=9,k=4,m=13.

i=9,j=10,k=5,m=15.

3.(20分)

阅读下面类的定义,然后:

(1)在每个类中用注释描述该类所有数据成员的部能见度;

(2)在函数f中用示例性的语句描述这4个类所有数据成员的外部能见度;

(3)根据函数f,用图分别表示类B和类D对象的存储结构和初始状态(设:

sizeof(int)=sizeof(long)=sizeof(<

指针>

)=4*sizeof(char),字对齐规则为4*sizeof(char))。

extern"

C"

char*strncpy(char*,constchar*,size_t);

/*strncpy(t,s,n):

将字符数组s的前n个元素复制到字符数组t中*/

classA{

char*cpA1;

protected:

intiA2;

public:

long*lpA3;

A(char*p,inti,long*q):

cpA1(p),iA2(i),lpA3(q){}

//以下描述类A的部能见度(例:

cpA1:

可见/不可见;

…)……

};

classB:

protectedA{

intiB1;

charcpB2[5];

B(char*p,inti,long*q,intj,constchar*s):

A(p,i,q),iB1(j)

{strncpy(cpB2,s,4);

//以下描述类B的部能见度……

classC:

privateA{

intiC1;

charcpC2[6];

C(char*p,inti,long*q,intj,constchar*s):

A(p,i,q),iC1(j)

{strncpy(cpC2,s,5);

//以下描述类C的部能见度……

classD:

publicC{

intiD1;

charcpD2[16];

D(char*p,inti,long*q,intj,constchar*s,intk,constchar*t)

:

C(p,i,q,j,s),iD1(k){strncpy(cpD2,t,15);

//以下描述类D的部能见度……

f()

chars1[]="

Astring"

s2[]="

inaderivedclass"

s3[]="

inasubclass"

;

longg1=1000,g2=2000;

Aa(s1,1,&

g2);

Bb(s1,2,&

g1,3,s2);

Cc(s1,3,&

g1,4,s2);

Dd(s1,4,&

g2,5,s2,6,s3);

/*以下插入示性语句。

例如:

a.cpA1;

//public(或private或protected)

*/

//cpA1:

可见;

iA2:

lpA3:

可见。

不可见;

iB1:

cpB2:

iC1:

cpC2:

//iD1:

cpD2:

/*示性语句:

a.cpA1;

//private

a.iA2;

//protected

a.lpA3;

//public

b.cpA1;

b.iA2;

b.lpA3;

//protected

b.iB1;

//private

b.cpB2;

c.cpA1;

c.iA2;

c.lpA3;

c.iC1;

c.cpC2;

d.cpA1;

d.iA2;

d.lpA3;

d.iC1;

d.cpC2;

d.iD1;

d.cpD2;

4.(15分)

用C++语言定义MyString(包括成员函数的实现代码),使之能符合下面程序及在注释中描述的运行结果的要求:

MyStrings1="

0123456789"

s2(5),s3;

s1.display();

//此时显示出:

<

0123456789>

s2.display();

//此时显示出(<

>

之间是五个空格):

>

s3.display();

s3=s1;

s2=s1[2];

23456789>

s3=s2++;

3456789>

classMyString{

charcpBody[81];

public:

MyString(constchar*p=NULL);

MyString(inti);

MyString&

operator=(constMyString&

s)

{strncpy(cpBody,s.cpBody,80);

return*this;

operator[](inti);

operator++(inti)

{staticMyStrings;

s=*this;

*this=(cpBody[0]==‘\0‘)?

*this:

(*this)[1];

returns;

voiddisplay(){printf("

<

%s>

\n"

cpBody);

};

MyString:

:

MyString(constchar*p)

{

if(p==NULL)

cpBody[0]=‘\0‘;

else

strncpy(cpBody,p,80);

MyString(inti)

{intj;

for(j=0;

j<

i&

&

80;

j++)

cpBody[j]=‘‘;

cpBody[j]=‘\0‘;

MyString&

operator[](inti)

{staticMyStrings;

intj;

s=*this;

for(j=i;

cpBody[j]!

s.cpBody[j-i]=s.cpBody[j];

s.cpBody[j-i]=‘\0‘;

returns;

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

当前位置:首页 > 人文社科 > 哲学历史

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

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