作业━━第7章━━动态内存分配

作业━━第7章━━动态内存分配

ID:41414017

大小:117.55 KB

页数:10页

时间:2019-08-24

作业━━第7章━━动态内存分配_第1页
作业━━第7章━━动态内存分配_第2页
作业━━第7章━━动态内存分配_第3页
作业━━第7章━━动态内存分配_第4页
作业━━第7章━━动态内存分配_第5页
资源描述:

《作业━━第7章━━动态内存分配》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、动态内存分配【学习要点】1.掌握C++的四个内存区域。2.掌握堆内存和动态存储分配。3.掌握new与delete运算符的使用。4.学握动态创建对彖。5.掌握对象的浅拷贝、浅赋值。6.掌握对象的深拷贝、深赋值。【例题分析】1.为指针变量P赋初值,下列语句中不正确的是OA.int*p=0;B.float*p=(float*)50;C.int*p=new50;D.float*p=newfloat[50];【答案】C【解析】答案A给指针p赋0值(空指针)是正确的;答案B将整数50的单元类型强制转换为实型指针也是可以的;答案D将指针p指向在堆区上申请的

2、具有50个元素的实型数组也是可以的;答案C错误,因为new运算符的运算对象不能是常数。2.编写程序:有数组a,其中存放20个数据为:{1,2,2,2,2,3,3,4,4,5,6,6,7,8,8,8,8,9,10,10},已按升序排列。试定义-个类ARRAY,实现将数组中相同的元素删除成只剩一个,即删除重复的数据。删除重复的数据后,数组a中的内容为:{1,2,3,4,5,6,7,8,9,10}。要求:①私有成员数据:•int*a;〃存放数据的动态数组容器的起始地址•intn;〃动态数组容器中已存放数据的个数②公有成员函数:•ARRAY(intx

3、[],intsize);〃用数组刈size]来初始化ARRAY类的对象•~ARRAY();〃析构函数•voiddeleteSame();〃将数组中重复的元素删除成只剩一个•voidshow();〃按每行4个数据的格式输出③编写main()函数对ARRAY类进行测试。【答案】编写程序如下:#includeclassARRAY{int*a;intn;public:ARRAY(intx[],intsize){a=newint[size];n=size;for(inti=0;i

4、){delete[]a;}voiddeleteSame(){for(inti=0,j=0;j

5、.deleteSame();arr.show();}1.编写程序:有一个线性数列,共有size个元素,要求从指定下标m开始的n个元素进行降序排列。例如,原数列的10个元素排列为:{2,8,4,0,3,9,5,7,9,8},若要求从第3个元素开始的5个数据降序排列,则得到的新数列为:{2,8,4,9,7,5,3,0,9,8}。试定义一个List类,实现上述功能。要求:①私有成员数据:•int*arr;〃存放动态数组容器空间的起始地址•intsize;〃动态数组容器中已存放元素的个数②公有成员函数:•List(inta[],intlen);〃用数

6、组a[len]来初始化List类对象•~List();〃析构函数•voidsortPart(intm,intn);〃将数列从第m个元素开始的n个数据降序排列•voidprint();〃输出数列③编写main()函数对List类进行测试。【答案】编写程序如下:#includeclassList{int*arr;intsize;public:List(inta[],intlen){size=len;arr[i]=a[i];temp=arr[i];arr[i]=arr[j];arr[jj=temp;cout«arr[i]ar

7、r=newint[size];for(inti=0;i

8、list.print();}【思考题】㈠选择题1.设语句int*p=newint;选择正确的填空使p所指向的内存空间赋初值56。A.[56]B.(56)C.{56}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。