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

C语言程序设计 教学课件 ppt 作者 范兴福第10章课后题答案.docVIP

C语言程序设计 教学课件 ppt 作者 范兴福第10章课后题答案.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10章练习题参考答案及解析 10-1、填空题 1) 地址 地址 2)地址 3)变量p是指针变量 4)指针变量 5)*(p++)是先取*p的值再使p加1;*(++p)是先使p加1,再取*p。 6)p=a 7) 地址 NULL(或空值,或0,或’\0’ 8)5 4 【解析】语句p=a[4];使指针变量p指向数组元素a[4],*p等价于数组元素a[4],得到a[4]的值5;*--p由于*和--同优先级,结合方向为自左而右,因此它等价于*(--p),作用是先使指针变量上移一个存储单元,指向数组元素a[3],然后再取a[3]的值4。 9)5 *(p+2) p[2] *(a+2) 【解析】语句p=a;使指针变量p指向数组首地址,p+2使指针变量p下移两个存储单元,指向数组元素a[2],然后再取得a[2]的值5;语句p=a; 使指针变量p指向数组首地址,p+2和a+2就是a[2]的地址,指向数组的指针变量也可以带下标p[2]与*(p+2)使等价的。 10-2选择题 1) C 2) D 3)B 【解析】从程序段中可知,指针变量p指向变量a,p等价于a,所以只有B是正确的。 4)C 5)D 【解析】程序段在定义指针变量str时把字符串赋给了它。通过语句str+=3;使指针变量指向序号为3的元素,所以输出结果为n。 6)C 7)B 【解析】由于指针变量p和q均指向变量a,*p和*q均等价于变量a,所以选项A和D均是合理的。选项C是将指针变量q赋给指针变量p也是可以的,只有B将变量a的值赋给指针变量q是不允许的,因为指针变量只能存放地址。 8)C 【解析】*和++为同一优先级别,结合方向为自右向左。P=a+2使指针指向序号为2的元素。选项B中的*p++相当于*(p++),因++在后,所以先取*p(等价于a[2]),再使指针变量下移一个存储单元。选项D中p=a+1使指针变量指向序号为1的元素a[1],*++p使指针变量下移一个存储单元后,再取该元素a[2]的值。所以选项A、B、D均是正确的。选项C选取了序号为1的元素的值(即a[1]),所以选项C是错误的。 9)D 10)C 10-3判断题 1)× 2)× 3)√ 4)√ 5)× 6)√ 7)× 10-4写出下面这个程序的输出结果: 1) a=6,b=10 【解析】语句p=c;q=d;使指针变量p和q分别指向变量c和d的存储单元,a=*p-*q;相当于a=c-d;,b=*p+*q;相当于b=c+d;所以输出结果是a=6,b=10。 2)100,12,70 100,12.70 【解析】变量a和*p对应同一存储单元,输出*p意味着输出变量a的值。同样*q与变量b对应同一存储单元,输出*q意味着输出变量b的值。 3)18,20 20,18 18,20 【解析】语句段n=p;p=q;q=n;的作用是将指针变量p和q的值进行交换,n为中间过渡指针变量;交换后p指向变量b,q指向变量a,但变量a,b的值没有发生过变化。 4) 2 4 6 8 10 12 2 4 6 8 10 12 【解析】第一个循环输出一维数组的值。在第2个循环中,指针变量p指向数组元素a[0]所对应的存储单元,并输出a[0]的值;执行p++后,指针变量p指向数组元素a[1]所对应的存储单元,输出a[1]的值;依此类推。一维数组中各元素的值被输出之后,此时的循环条件不再成立,指针变量也指向了数组元素a[5]所对应的下一个存储单元,此时的*p已无意义。 5)程序的功能是:求出数组a中的最大数和最小数。 【解析】通过p=q=a;使指针变量p和q均指向数组a的首地址,第2个 for循环中包含两个if语句,第1个if 语句完成最大值的求解,第2个if 语句完成最小值的求解。 6)数组str中的内容是:How are you 【解析】字符型指针ch和p初始时都指向了字符串的首地址。循环中通过下标j和对它的“++”运算,扫视数组str的诸元素;通过指针p和对它的“++”运算,不断地把字符串内容赋给数组str地各元素。最后由语句str[j]=\0;往数组str里填写一个字符串结束符。所以程序运行后,数组str中地内容与ch指向地字符串内容完全相同。 10-5编程题 1)main() { int a,b,c,*p1,*p2,*p3; scanf(“%d,%d,%d”,a,b,c); if((a=b) {p1=b;p3=a;} else {p1=a;p3=b;} if(c=*p3) {p2=p3;p3=b;} else if(c=*p3){p2=p1;p1=c;} else p2=c; pri

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档