网站大量收购独家精品文档,联系QQ:2885784924

c语言指针演习.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言指针演习

作业 关于本次作业的几点说明: 1、本次作业关于指针部分的内容需要同学们先自学相关知识(师父) 2、本次作业的起评分为75分 本次作业解决方法: 先粗略将书本相关知识内容看一遍; 选择书本、PPT和参考资料中的一些简单例题先学习,达到能理解或仿做的程度; 如果遇到问题: (1)通过debug观察程序运行中各个变量(特别是指针变量)的取值变化情况,如果遇到问题或不明白之处再去查阅书本相关知识点,对于书本上的知识点,一定要自己设计一些代码片段去验证,去观察!切忌:只是看看而已! (2)与同学讨论:不要求对方要懂,而是双方一起探讨、互相启发,从讨论过程逐渐明白一些新的知识内容,发现自己的认识不足,即使不能立竿见影能解决作业问题,但这个过程已经是一个很好的学习过程了。 (3)到机房上机,找师兄们答疑; (4)到网上寻找学习资料,如各个学校学习C语言的精品网站,也可以搜索一些学习指针的网文,以及教学用书的配套习题解答等。 一、实验及思考 1、运行程序,根据运行结果回答问题。 ⑴ #includestdio.h void main() { double d=123; double *pd=d; printf(pd=%d\n,pd); printf(pd=%d\n,*pd); printf(pd=%lf\n,*pd); } ① pd变量的数据类型是double型吗?double型变量的长度是多长?pd的数据长度是多长?(提示:VC中为每个double、int型变量分配的空间大小可以用sizeof(double)和sizeof(int)运算获得;同时,还可以用sizeof(pd)获得pd变量的数据长度) ② printf(pd=%d\n,pd)语句中输出的数值代表什么? ③ *pd代表的是什么? ④ main函数中的三条printf语句,你认为哪一条语句的输出结果不合法? ⑤ 语句int * p=200;编译时有错误,请结合错误提示和书本相关知识,解释错误原因并修改; ⑥ 下列语句编译时有错误,请解释错误原因并修改。 int * p; double * q; p=q; ⑦ *pd=2000?;语句改变的是pd的值吗?pd=(double*)2000?;语句改变的又是哪个变量的值? 2、void main() { int a[4]; int * p=a[0];       int * q=a[1]; int k=q-p; printf(p=%d\n,p); printf(q=%d\n,q); printf(k=%d\n,k); } p、q分别代表的是什么? k代表的是什么?你认为k的输出结果合理吗?为什么? 3、 { char * s=abcd; while(*s) printf(%s\n,s++); } 要求: ① 给出运行结果,并请解释何以会产生如此输出; ② 若char *s=abcd;改为char s[]=abcd;能否得到相同结果,请说明理由 提示: 对于第一问,利用VC 的单步跟踪功能观察s的变化情况,并利用watch窗口观察每次s++后,s、s[i]和*s的取值情况。 4、请先运行程序,根据运行结果回答问题。 void main() { int sum=0; char s[]=a1d2f3ah45si7d90, *p; for(p=s+5; *p!=\0; p++) if(*p=0*p=9) sum=sum*10+*p-0; printf(sum=%d\n,sum); } 要求: 请说明以上程序的功能,并回答以下问题: ①for(p=s+5; *p!=\0; p++) 语句的功能是什么? ②p=s+5;语句执行后p的值保存的是哪个变量的地址? ③语句int j,k,a[5],*p;不需要改动,而且除了本条语句,其它语句中都不允许出现“[”和“]”。 提示: (1)调试此程序时,利用watch窗口观察每次p++后p的值,以及*p对a数组内容的影响。为了观察方便,可以将a设置为一个watch点,数组a所有元素的值在一列全部显示出来。调试时注意指针变量指向哪个目标变量。 (2)如果此题都不能难住你,那只能说明一点:你的学习能力超强,呵呵,从此便可在C学习旅途上绝尘而去,王子与公主过上了幸福生活(呃,抱歉拿错讲稿了)。 6、阅读程序,按要求,在空白处填写适当的表达式或语句,使程序完整,并符合题目要求。 ① 下面函数实现strlen函数的功能,即计算指针p所指向的字符串中的实际字符个数。 unsigned int MyStrlen(char

文档评论(0)

yxutcangfp + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档