- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验指导书(全14周)
PAGE
PAGE 1
实验十一?指针的概念、指针的运算以及指针与数组
一.实验目的1. 熟练掌握指针、地址、指针类型、void指针、空指针等概念;2. 熟练掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算和指针表达式;3. 会使用数组的指针和指向的指针变量;4. 会使用字符串的指针和指向字符串的指针变量
二.实验内容1.? 验证实验:阅读程序,分析可能产生的结果,并在机器上运行;⑴#include stdio.hmain(){ int I,*p;p=I;*p=5;printf(“%d\n”,i);printf(“%d\n”,*p);printf(“%d\n”,p);printf(“%d\n”,i);}如果将第三和第四条printf()语句中的%d改为%p,会产生什么结果?为什么? ⑵#include stdio.hmain(){int a[5]={1,2,3,4,5};int *p1,*p2,num;p1=a[0];p2=a[3];num=p2-p1;printf(num=%d\n,num);if (p2==p1) p2++;printf(*p2=%d\n,*p2);}修改本程序,将a数组中的元素前后置换,即形成以下的排列:a[5]={5,4,3,2,1}。提示:用p1指针指向a[0],p2指针指向a[4],利用一个中间变量t,交换p1和p2所指的目标,然后p1和p2指针再进行必要的移动。 ⑶#include stdio.h#includestdlib.h#includeiomanip.hvoid main(){ int a[10], sum=0, *p;float ave;randomize();for(p=a; pa+10; p++){ *p=rand()%100;printf(“%d”,*p);}printf(“\n”);for(p=a; pa+10; p++)sum+=*p;ave=sum/10.0;printf(Sum=%d\n,sum);printf(Average=%f\n,ave);}本程序是一个知识的拓展实验,学会使用随机函数的使用方法。请分析该程序,并指出该程序所完成的功能。
2、能力培养实验:以下的程序是将字符串s2中的内容全部复制到字符串s1中。请阅读该程序,并分别使用求串长的方法、函数调用的方法以及指针的方法改写该程序,使得其亦能完成上述功能。#include stdio.h#define? N? 50void main(){??char s1[N] , s2[N];gets(s2);for( int i=0;s2[i]!=’\0’;i++)s1[i]=s2[i];s1[i]=’\0’;printf(“s1=%s\n
3、综合素质能力拓展实验:编写程序,从键盘上输入10个任意的整型数到a[10]中,将这10个数按由小到大的顺序排列。强调:一定要求使用指针的方法。
三、问题讨论1、指针的输入输出格式符是什么?该怎么应用?如果有程序段为:#include stdio.hmain(){int a[5], I, *p ;p=a;for(i=0;i5;i++,p++)sacnf(“%d”,*p);printf(“\n”);p=a;for(i=0; i5; i++,p++)printf(a[%d]=%d\t,I,*p);printf(“\n”);}请问该程序有无错误,如果有,该程序应该怎样修改?2、指针可以进行哪些运算,指针和指针的相减,其结果表示的是什么?3、到目前为止,数组元素及其地址的表示方法你知道的有哪些?4、字符串与字符串数组有何相同和不同之处?
实验十二 指针的操作
一. 实验目的 ???? 1.熟练掌握指针的运算(算术运算、关系运算和赋值运算)。?? ???? 2.熟练掌握几种不同类型的指针(指向变量的指针、指向数组的指针、指向字符读串的指针、指向函数的??? 指针、指向指针的指针)。 ???? 3. 进一步学会调试程序
二. 预习知识 ?? 1. 指针的运算(算术运算、关系运算和赋值运算)?? 2. 几种不同类型的指针(指向变量的指针、指向数组的指针、指向字符读串的指针、指向函数的指针、指向指针的指针)?? 3. 指针在更多实际问题中的应用
三. 实验内容及步骤 1.上机运行下列程序,并打印其结果。 ⑴ main() {int x=2,y=10,z,*p;z=x+y;p=x;printf(%d\n,*p);p=y;printf(%d\
文档评论(0)