C++上机练习题Word文档下载推荐.docx

上传人:b****1 文档编号:13590013 上传时间:2022-10-11 格式:DOCX 页数:11 大小:18.12KB
下载 相关 举报
C++上机练习题Word文档下载推荐.docx_第1页
第1页 / 共11页
C++上机练习题Word文档下载推荐.docx_第2页
第2页 / 共11页
C++上机练习题Word文档下载推荐.docx_第3页
第3页 / 共11页
C++上机练习题Word文档下载推荐.docx_第4页
第4页 / 共11页
C++上机练习题Word文档下载推荐.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

C++上机练习题Word文档下载推荐.docx

《C++上机练习题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C++上机练习题Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。

C++上机练习题Word文档下载推荐.docx

array=newint[len];

arraySize=len;

for(inti=0;

i<

arraySize;

i++)

array[i]=i+1;

}

~MyClass()

{

//ERROR**********found**********

delete[]array;

voidPrint()const

cout<

<

array[i]<

'

;

endl;

private:

int*array;

intarraySize;

};

intmain()

{

MyClassobj(10);

obj.Print();

return0;

}

请使用VC6打开考生文件夹下的工程proj2,该工程含有一个源程序文件proj2.cpp。

其中定义了类Bag和用于测试该类的主函数main。

类Bag是一个袋子类,用来存放带有数字标号的小球(如台球中的球,在类中用一个整数值表示一个小球),其中运算符成员函数==用来判断两个袋子对象是否相同(即小球的个数相同,每种小球数目也相同,但与它们的存储顺序无关);

成员函数intInBag(intball)用来返回小球ball在当前袋子内出现的次数,返回0表示该小球不存在。

为类实现这两个函数,其用法可参见主函数main。

运算符函数operator==中首先判断两个袋子内的小球个数是否相同,再调用InBag函数来判断每种小球在两个袋子内是否具有相同的出现次数。

注意:

只需在指定位置编写适当代码,不要改动程序中的其他内容,也不能删除或移动"

//**********found******************"

 

//proj2.cpp

constintMAXNUM=100;

classBag{

intnum;

intbag[MAXNUM];

Bag(intm[],intn=0);

//构造函数

booloperator==(Bag&

b);

//重载运算符==

intInBag(intball);

//某一小球在袋子内的出现次数,返回0表示不存在

Bag:

:

Bag(intm[],intn)

if(n>

MAXNUM){

cerr<

"

Toomanymembers\n"

exit(-1);

n;

bag[i]=m[i];

num=n;

boolBag:

operator==(Bag&

b)//实现运算符函数==

if(num!

=b.num)//元素个数不同

returnfalse;

for(inti=0;

num;

//**********found**********

if(InBag(bag[i])!

=b.InBag(bag[i]))//TODO:

加入条件,判断当前袋子中每个元素在当前袋子和袋子b中是否出现次数不同

//TODO:

加入一条语句

returntrue;

intBag:

InBag(intball)

intcount=0;

if(bag[i]==ball)//TODO:

加入条件,判断小球ball是否与当前袋子中某一元素相同

count++;

//TODO:

returncount;

intdata[MAXNUM],n,i;

cin>

>

for(i=0;

data[i];

Bagb1(data,n);

//创建袋子对象b1

Bagb2(data,n);

//创建袋子对象b2

if(b1==b2)//测试b1和b2是否相同

Bagb1issamewithBagb2\n"

else

Bagb1isnotsamewithBagb2\n"

请使用VC6打开考生目录下的工程文件proj3。

此工程包含一个源程序文件proj3.cpp,其中定义了用于表示二维向量的类MyVector;

程序应当显示:

(6,8)

但程序中有缺失部分,请按下面的提示,把下划线标出的三处缺失部分补充完整:

(1)在//**1***************found***********的下方是构造函数的定义,它用参数提供的坐标对x和y进行初始化。

(2)在//**2****************found***********的下方是减法运算符函数定义中的一条语句。

两个二维向量相减生成另一个二维向量:

它的X坐标等于两个向量X的坐标之差,它的Y坐标等于两个向量Y坐标之差。

(3)在//**3*****************found***********的下方的语句的功能是使变量v3获得新值,它等于向量v1与向量v2之和。

只需在指定位置编写适当的代码,不要改动程序中的其它内容,也不能删除或移动"

*************found***************"

//proj3.cpp

#include<

usingstd:

ostream;

cout;

endl;

classMyVector{//表示二维向量的类

doublex;

//X坐标值

doubley;

//Y坐标值

MyVector(doublei=0.0,doublej=0.0);

//构造函数

MyVectoroperator+(MyVectorj);

//重载运算符+

friendMyVectoroperator-(MyVectori,MyVectorj);

//重载运算符-

friendostream&

operator<

(ostream&

os,MyVectorv);

//重载运算符<

//**1************found**********

MyVector:

MyVector(doublei,doublej):

x(i),y(j){}

MyVectorMyVector:

operator+(MyVectorj){

returnMyVector(x+j.x,y+j.y);

MyVectoroperator-(MyVectori,MyVectorj)

{//**2************found**********

returnMyVector(i.x-j.x,i.y-j.y);

ostream&

os,MyVectorv){

os<

('

<

v.x<

'

v.y<

)'

;

//输出向量v的坐标

returnos;

{

MyVectorv1(2,3),v2(4,5),v3;

//**3************found**********

v3=v1+v2;

cout<

v3<

第二套

其中位于每个注释"

//ERROR************found***************"

之后的一行语句存在错误。

请修正这些错误,使程序的输出结果为:

Constructorcalledof10

Thevalueis10

Descructorcalledof10

只需要修改注释"

//ERROR*******found***************"

MyClass(inti)

value=i;

Constructorcalledof"

value<

{cout<

Thevalueis"

Destructorcalledof"

intvalue;

constMyClassobj(10);

凡用过C语言标准库函数strcpy(char*s1,char*s2)的程序员都知道使用该函数时有一个安全隐患,即当指针s1所指向的空间不能容纳字符串s2的内容时,将发生内存错误。

类String的Strcpy成员函数能进行简单的动态内存管理,其内存管理策略为:

(1)若已有空间能容纳下新字符串,则直接进行字符串拷贝;

(2)若已有空间不够时,它将重新申请一块内存空间(能容纳下新字符串),并将新字符串内容拷贝到新申请的空间中,释放原字符空间。

请使用V

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

当前位置:首页 > 自然科学 > 化学

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

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