c语言第十一十二十三章课后题答案解读.doc

c语言第十一十二十三章课后题答案解读.doc

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

11-1、 (*p)++表示:先取地址中的内容,将内容表示的数字进行自增运算。 *p++表示:先对p的地址自增运算,再取其中的内容。 结果: 每一句printf语句分析说明: printf(%d,,*(++p));--------p自增取下一个地址,去除其中的内容为2 printf(%d,,*(p)++);--------引用p现在地址中的内容为2,在进行地址的自增运算 printf(%d,,*p);-------------引用地址的内容为3 printf(%d,,*p);------------应用现在的地址中的内容为3 printf(%d,,*p--);----------先引用p中的内容为3,再进行自减运算 printf(%d,,--(*p));--------先自减运算,再取内容为1 printf(%d\n,*p);-----------取p现在的地址中的内容为1 11-2 (1) #include stdio.h void Print(char *arr[],int len); int main() { char *pArray[]={How,are,you}; int num=sizeof(pArray)/sizeof(int); printf(Total string numbers = %d\n,num); Print(pArray,num); return 0; } void Print(int *arr[],int len) { int i; for(i=0; ilen; i++) { printf(%s ,arr[i]); } printf(\n); } 错误分析:指针数组中的元素为地址,是一个整型,所以应为 num=sizeof(pArray)/sizeof(int); 而不是除以sizeof(char) 结果: (2) #include stdio.h void OutputArray(int *pa,int n); void InputArray(int *pa,int n); void main() { int a[5]; printf(Input five numbers:); InputArray(a,5); OutputArray(a,5); return 0; } void InputArray(int *pa,int n) { int *a=pa; for(; paa+n; pa++) { scanf(%d,pa); } } void OutputArray(int *pa,int n) { int *a=pa; for(; paa+n;pa++) { printf(%4d,*pa); } printf(\n); } 结果: 错误分析: For(; papa+n; pa++)的语句中将指针循环变量更改了,破坏了循环结构,所以在写循环时为了防止指针循环变量被修改,应重新定义一个变量来标记传入的指针值。 (3)、 #include stdio.h #define STUD 30 #define COURSE 5 void Print(int *pScore,int sum[],float aver[],int m,int n); void Total(int *pScore,int sum[],float aver[],int m,int n); int main() { int i,j,m,n,score[STUD][COURSE],sum[STUD]; float aver[STUD]; printf(How many student?); scanf(%d,m); printf(How many course?); scanf(%d,n); printf(Input score:\n); for(i=0; im; i++) { for(j=0; jn; j++) { scanf(%d,score[i][j]); } } Total(*score,sum,aver,m,n); Print(*score,sum,aver,m,n); return 0; } void Total(int *pScore,int sum[],float aver[],int m,int n) { int i,j; for(i=0; im; i++) { sum[i]=0; for(j=0; jn;j++) { sum[i]=sum[i]+pScore[i*n+j]; } aver[i]=(float)sum[i]/n; } } vo

文档评论(0)

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

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

1亿VIP精品文档

相关文档