实验指导书(全14周).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验指导书(全14周)

PAGE PAGE 1 实验十一?指针的概念、指针的运算以及指针与数组 一.实验目的 1. 熟练掌握指针、地址、指针类型、void指针、空指针等概念; 2. 熟练掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算和指针表达式; 3. 会使用数组的指针和指向的指针变量; 4. 会使用字符串的指针和指向字符串的指针变量 二.实验内容 1.? 验证实验: 阅读程序,分析可能产生的结果,并在机器上运行; ⑴ #include stdio.h main() { 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.h main() { 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.h void 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? 50 void 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.h main() { 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)

zilaiye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档