作业解答_指针.ppt

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

与指针变量相关的自增自减操作 例:int x[5] = { 1, 2, 3, 7, 5 }, m,n , *p, *q; (1) p++ 操作: p=x[1]; p++; // p指向x[2] (2) (*p)++ 操作:表示p所指的元素值加1,而p的值不变 p=x[3]; m=(*p)++; // m 的值7 n=*p; // n的值8, 即 x[3]的值改变为8 (3) *p++ 操作: ——等价于*(p++),++作用在p上 p=x[0]; m=*p++; n=*p; // m的值为1, n的值是2 (4) *(p++) 与 *(++p) 作用不同。 p=x[2]; q=x[2]; m=*(p++); n=*(++q); // m的值3, n的值7 * * 二、选择题 3. 指针变量p1、p2类型相同,要使p2、p1指向同一变量,哪一个语句是正确的( )? p2=*p1; B. p2==**p1; C. p2=p1; D. p2=*p1; 4. 表达式”c=*p++”的执行过程是( ) A.复制*p的值给c后再执行p++ B. 复制*p的值给c后再执行(*p)++ C.复制p的值给c后再执行p++ D. 执行p++后将*p的值复制给c 一、判断题 5. 语句 int x=12, *p=x; 和语句 *p=30; 中的 * 含义是一样的。 F 5.若有“float a=1.5, b=3.5, *pa=a; *pa*=3; pa=b;”,则正确的是()?? pa的值是1.5?????B. *pa的值是4.5?????C. *pa的值是3.5????? D. pa的值是3.5 7. 数组定义为 “int a[3][4];”,下列哪一个引用是错误的? *a B. *(*(a+2)+3) C. a[2][3] D. ++a 9.下列程序段的输出结果是( )。 [B] 2分 int *p,*q, k=5, j=10; p=j; q=k; p=q; (*p)++; printf(%d,*q);??? A. 5?????B. 6?????C. 10?????D. 11 *pa*=3 ?? (*pa) *= 3 float find_max( ) { int i,j; float max=**x; for(i=0; im; i++) for(j=0; jn; j++) if (*(*(x+i)+j)max) max= ; return max; } void main() { float a[5][5], b[6][4], ; int i,j; for(i=0; i5; i++) pa[i]=a[i]; for(i=0; i5; i++) ; for(i=0; i5; i++) for (j=0; j5; j++) scanf(%f, a[i][j]); for(i=0; i6; i++) for (j=0; j4; j++) scanf(%f, b[i][j]); printf(%f\n, find_max(pa,5,5)-find_max(pb,6,4)); } 填空题: 下列程序求二维数组a中的最大值与b中的最大值之差 pb[i]=b[i] *pa[5] , int m, int n , *pb[6] int *x[ ] *(*(x+i)+j) a[i]是一维数组的数组名 相当于*(*(x+0)+0),即*(x[0]+0),指针x[0]所指向的第1个元素 *、++优先级相同 结合方向:自右向左 相当于:m=*p; p++; 相当于:q++; n=*q;

文档评论(0)

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

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

1亿VIP精品文档

相关文档