二级c语言程序设计习题及解答ch9数组.docVIP

二级c语言程序设计习题及解答ch9数组.doc

  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文档。上传文档
查看更多
第九章?数组 一、选择题 ?[9.1]??若已定义: int?a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i; 其中0<=i=9,则对a数组元素的引用不正确的是 a[p-a]??B) *(a[i])??C) p[i]??D) *(*(a+i)) 【解析】A:p开始是数组a首地址,只要p++则再减去a的首地址a[p-a]就能取到所有元素,B:a[i]循环取其地址,*(a[i])?是该地址中所存储的元素 C:p就是指针变量,相当于a[i],D: *(a+i) 则正确 ?[9.2]??以下程序段数组所有元素输入数据,应在下划线填入的是 A) a+(i++)?B) a[i+1]???C)?a+i???D) a[++i] main() {?int?a[10],i=0; while(i10)?scanf(%d,_); } 【解析】因为要遍历,所以排除B.C,因为D先加1再取值,丢了a[0] ?[9.3]??以下程序的输出结果是 ??A) 3???????B)?4?????????C) 1?????D) 2 main() {?int??a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; ??printf(%d\n,*(p+2)); } 【解析】*p=a;p指向首地址,*(p+2))往后移动两个元素,指向3 ?[9.4]??以下程序的输出结果是 A)?不确定的值???B)?3????C) 2?????D) 1 main() {?int?n[2]={0},i,j,k=2; for(i=0;ik;i++) for(j=0;jk;j++)? n[j]=n[i]+1; printf(%d\n,n[k]); } ?[9.5]??以下程序的输出结果是 ???A)17?????B)18?????C)19?????D)20 main() { int a[]={2,4,6,8,10},y=1,x,*p; p=a[1]; for(x=0;x3;x++) y+=*(p+x); printf(%d\n,y); } 【解析】p=a[1]则p指向元素为4,y+=*(p+x);相当于y=1+4+6+8=19 ?[9.6]??以下程序的输出结果是 A) 6??????B) 8??????C) 4??????D) 2 main() { int a[]={2,4,6,8},*p=a,i; for(i=0;i4;i++) a[i]=*p++; printf(%d\n,a[2]); } 【解析】p=a,相当于重新把a中的内容赋给a本身,所以a[2]=6 ?[9.7]??以下程序的输出结果是 A) 720?????B)?120?????C) 24?????D) 6 f(int?b[],int?n) {??int?i,r=1; for(i=0;i=n;i++) r=r*b[i]; return r; } main() {??int?x,a[]={2,3,4,5,6,7,8,9}; x=f(a,3); printf(%d\n,x); } 【解析】调用x=f(a,3);for循环4次,将前四个元素相乘,即得r=2*3*4*5; ?[9.8]???以下程序中若第一个printf语句输出的是194,则第二个printf语句的输出结果是 A) 212?????B)?204??????C)?1a4??????D)?1a6??????12 main() {??int?a[]={1,2,3,4,5,6,7,8,9,0},*p; p=a; printf(%x\n,p); printf(%x\n,p+9);?? } 【解析】因为开始p的地址为194,p+9是指指针向后移动9个元素,而不是9个字节,每个int占2个字节,所以共移动18个字节,1个字节占一个存储单位,%x\n是16进制,将18转化成16进制是12,所以194+12=2a6 ?[9.9]??以下程序的输出结果是 A) 0987654321??B)?4321098765??C) 5678901234??D) 0987651234 fun(int?*s,int?n1,int n2) {?int?i,j,t; ??i=n1; j=n2; while(ij) { t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; ??i++; j--; } } main() {?int?a[10]={1,2,3,4,5,6,7,8,9,0},i,*p=a; fun(p,0,3);??fun(p,4,9);??fun(p,0,9); for(i=0;i10;i++)??printf(%d,*(a+i)); } 【解析】为了使大家清晰地看出fun(int?*s,int?n1,int n2)的作

文档评论(0)

153****9163 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档