- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验5 指针
注意:
1、请大家每次上机都要带上c教材。
2、实验五指针上2次机4学时,第1次上机完成实验内容1~2,第2次上机完成实验内容3~4.
2、请认真按照实验要求做好实验预习工作,编好相关程序,有目的的上机!
实验5 指针
一、实验说明
?实验项目名称:指针
?实验类型:基础
?实验课时:4
二、实验准备——实验预习理论基础知识
int a[10] , i , *p ; p=a; 则p++; p指向谁? p+i指向谁?、*p++ 、*(++p) 、(*p)++的作用分别是什么?
对int *p1 , (*p2)[3] , *p3[3] , a[4][3]; p1=a ; p2=a ; p3[0]=a ; p3[1]=a+1 ; p3[2]=a+2 ; p3[3]=a+3 ; 请分别用p1、p2、p3和数组名a描述数组a的第i行第j列的元素。
字符指针变量与字符数组的区别
函数的指针的含意?如何定义一个指向函数的指针变量?
指向指针的指针的含意?如何定义指向指针的指针变量?
三、实验目的
通过实验进一步掌握指针的概念,会定义和使用指针变量;
能正确使用数组的指针和指向数组的指针变量;
能正确实验字符串的指针和指向字符串的指针变量;
了解指向指针的指针的概念及其使用方法。
四、实验环境
实验所用主要仪器:微型计算机1台,安装中文版Windows 2000/XP操作系统、VC++6.0集成编程环境。
另外,要求同学们在上机前一定要预先编写好程序。
五、实验内容
有n个人围成一圈,顺序排号。从第s个人开始报数,凡是数到m的人退出圈子,问最后留下的是原来的第几号的人。要求从键盘中输入开始报数的位置s和报数号m,用指针方法实现。
#includestdio.h
#define N 8
int out(int *,int,int);
int out1(int *,int,int);
void main()
{
int a[N];
int i,s,m;
int s1,m1;
for(i=0;iN;i++)
a[i]=i+1;
printf(1、覆盖法实验约瑟夫圈\n);
printf(出圈前数组元素a[%d]=:,N);
for(i=0;iN;i++)
printf(%4d,a[i]);
printf(\n请输入报数开始位置:s=);
scanf(%d,s);
printf(\n请输入报数号:m=);
scanf(%d,m);
printf(最后留下的是原来的第%d号!\n,out(a,s,m));
printf(\n2、标识法实验约瑟夫圈\n);
for(i=0;iN;i++)
a[i]=i+1;
printf(出圈前数组元素a[%d]=:,N);
for(i=0;iN;i++)
printf(%4d,a[i]);
printf(\n请输入报数开始位置:s1=);
scanf(%d,s);
printf(\n请输入报数号:m1=);
scanf(%d,m);
printf(最后留下的是原来的第%d号!\n,out(a,s,m));
}
int out(int *p,int s,int m)
{
int i,j=s;
int *t;
int n=N;
printf(出圈的顺序是:);
while(n1)
{
j=(j+m-1)%n;
if(j==0)j=n;
t=p+j-1;
printf(%3d,*t);
for(i=j-1;in-1;i++)
{
*(p+i)=*(p+i+1);
}
*(p+i)=*t;
n--;
}
printf(%3d\n,*p);
return *p;
}
int out1(int *p,int s,int m)
{
int num;
int *t;
int n=N;
s=s%N;
printf(出圈的顺序是:);
t=p+s-1;
while(n1)
{
if(*t!=0)
num++;
if(num==m)
{
printf(%3d,*t);
*t=0;
num=0;
n--;
}
t++;
if(tp+N-1)
t=p;
}
for(t=p;*t==0;t++);
printf(%3d\n,*t);
return *t;
}
运行结果:
将一个3×3的矩阵转置,用一函数实现之。在主函数中用scanf函数输入以下矩阵元素:,将数组名作为函数实参,在执行函数的过程中实现
您可能关注的文档
- 多媒体在语文中的灵活运用.doc
- 多功能面粉膨化机 康乐果膨化机.doc
- 大兴卫生院基本药品零差率实施方案.doc
- 大四实习小结.doc
- 大合唱自选歌曲推荐曲目.doc
- 外勤工作登记表.doc
- 大堂经理日志规范.doc
- 大学生创业案例与启示.doc
- 大学生创新创业训练计划项目-项目日志.doc
- 大学生如何才能做好科研.ppt
- 2025至2030中国IT冷却系统行业市场占有率及投资前景评估规划报告.docx
- 2025年舟山市国企招聘考试基础题库及答案.docx
- 手术前皮肤准备及糖尿病测试卷附答案.docx
- 现代艺术之探秘.pptx
- 2025至2030中国IT分销行业市场发展现状及前景趋势与投资价值报告.docx
- 静脉输液常见并发症的预防及处理试题及答案.docx
- 《护理操作并发症的预防及处理》复习题.docx
- 2025至2030中国IP网络电话机行业市场深度研究及发展前景投资可行性分析报告.docx
- 2025至2030年中国玻璃钢游艇船体行业投资前景及策略咨询研究报告.docx
- 联通超清及联通看家产品使用与业务知识测试卷.docx
文档评论(0)