北邮C++ 实验五Word下载.docx
- 文档编号:17400082
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:10
- 大小:716.25KB
北邮C++ 实验五Word下载.docx
《北邮C++ 实验五Word下载.docx》由会员分享,可在线阅读,更多相关《北邮C++ 实验五Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
iostream.h>
(2)voidmain()
(3){
(4)intiArray[10];
//定义一个数组
(5)intsum=0;
(6)int*iptr=iArray;
//定义一个指针指向数组的首地址
(7)for(inti=0;
i<
10;
i++)
(8)iArray[i]=i*2;
//用for循环给数组每个元素赋值
(9)for(intindex=0;
index<
index++)
(10){
(11)sum+=*iptr;
(12)*iptr++;
//对数组的每个元素求和
(13)}
(14)cout<
<
"
sumis"
sum<
endl;
(15)}
(2)如果将第11条和12条语句合并为一条语句:
sum+=*iptr++;
合并后结果如何,并说明为什么?
答:
结果不变.因为这样做相当于把2句话合成了一句,效果不变.
(3)修改程序,说明sum+=*(iptr++)与sum+=(*iptr)++语句的区别?
sum+=*(iptr++):
每做一次加操作,指针指向的地址加1,即指向数组的下一个元素,这样最后求得的是数组所有元素的和.
sum+=(*iptr)++:
每做一次加操作,数组元素加1,而不是指针地址加1,这样做最后的结果是原来的一半.
2.按要求完成下列各题
(1)写出下列程序运行的结果,并说明静态内存分配与动态内存分配的区别。
#include<
inta[3][3]={1,2,3,4,5,6,7,8,9},*p;
voidf(int*s,intp[][3]);
voidmain()
{p=newint;
f(p,a);
Cout<
*p<
}
f(int*s,intp[][3])
{*s=p[1][1];
}
静态内存分配:
内存在程序编译的时候就已经分配好了,这块内存在程序的整个运行期间都存在.
动态内存分配:
程序在运行的时候用new申请任意多少的内存,程序员自己负责在何时用delete释放内存.动态内存的生存期由程序员决定.
程序修改后:
iostream>
usingnamespacestd;
cout<
deletep;
voidf(int*s,intp[][3])
(2)写出下列程序运行的结果,并说明指向指针的指针的用法。
#include<
intmain()
{intx[6]={1,3,5,7,9,11},*k,**s;
k=x;
s=&
k;
for(inti=0;
6;
cout<
*(k++)<
"
return0;
指针的指针的用法:
指针的指针存的是指针的地址,用<
类型名>
**表示.
(3)写出下列程序运行的结果,并对说明p[i]=ch[i]语句的作用。
voidmain()
{charch[3][4]={“123”,”456”,”78”},*p[3];
intI,b;
for(a=0;
a<
3;
a++)p[a]=ch[a];
for(b=0;
b<
b++)cout<
p[b];
}
p[i]=ch[i]的作用:
把字符数组的的值赋给指针数组.
3.补充并调试下面程序。
(1)下面是一个比较a,b两数大小的程序,如果a<
b,则要调用一个函数,完成a和b的交换。
intmain()
{voidswap(int*p1,int*p2);
int*pointer_1,*pointer_2,a,b;
cin>
>
a>
b;
pointer_1=&
a;
pointer_2=&
if(a<
b)swap(pointer_1,pointer_2);
max="
min="
return0;
intmain()
voidswap(int*p1,int*p2)
{
intk;
k=*p1;
*p1=*p2;
*p2=k;
(2)提高题:
修改、补充下列程序,并完成打印n个学生的成绩单及总分。
{longtop_id=0;
//top_id用于存放学生的学号
intI,top_sum=0,n;
//top_sum用于存放学生的总分;
n为学生人数
n;
long*id=newlong[n];
//存放学号
int*chi=newint[n];
//存放语文成绩
int*eng=newint[n];
//存放英语成绩
int*pro=newint[n];
//存放程序语言成绩
…………..
修改后的程序:
#include"
stdafx.h"
structstudent
longtop_id;
intchi;
inteng;
intpro;
};
studentstu[3]={{2010211101,67,78,82},{2010211102,83,98,91},{2010211103,85,91,61}};
student*pa[3]={&
stu[0],&
stu[1],&
stu[2]};
intsum[3];
for(inti=0;
{
sum[i]=((*pa[i]).chi)+((*pa[i]).eng)+((*pa[i]).pro);
for(intk=0;
k<
k++)
cout<
(*pa[k]).top_id<
"
(*pa[k]).chi<
(*pa[k]).eng<
(*pa[k]).pro<
sum[k]<
三、实验报告
1.按实验内容的要求提交程序清单和运行的结果。
2.总结在调试程序过程中所遇到的问题及解决的方法。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北邮C+ 实验五 北邮 C+ 实验