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

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

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

第九章数组一、选择题

[9.1]若已定义:

inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;

D)*(*(a+i))其中0<=i=9,则对a数组元素的引用不正确的是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)则正确

A)a+(i++)[9.2]以下程序段数组所有元素输入数据,应在下划线填入的是

A)a+(i++)

B)a[i+1] C)a+i D)a[++i]

main()

{inta[10],i=0;

while(i10)scanf(%d,_);

}

【解析】因为要遍历,所以排除B.C,因为D先加1再取值,丢了a[0]

[9.3]以下程序的输出结果是

A)3B)4 C)1 D)2

A)3

main()

{inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

printf(%d\n,*(p+2));}

【解析】*p=a;p指向首地址,*(p+2))往后移动两个元素,指向3

A)不确定的值[9.4]

A)不确定的值

B)3 C)2 D)1

main()

{intn[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]);

}

C)19[9.5]以下程序的输出结果是

C)19

A)17 B)18

main()

D)20

{ inta[]={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

A)6[9.6]以下程序的输出结果是

A)6

B)8 C)4 D)2

main()

{ inta[]={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]以下程序的输出结果是

B)

B)120

f(intb[],intn)

{inti,r=1;

C)24 D)6

for(i=0;i=n;i++)r=r*b[i];returnr;

}

main()

{intx,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语句的输出结果是

D)1a6A)212 B)204 C)

D)1a6

main()

{inta[]={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

C)5678901234[9.9]

C)5678901234

A)0987654321B)4321098765

fun(int*s,intn1,intn2)

{inti,j,t;i=n1;j=n2;while(ij)

{t=*(s+i);*(s+i)=*(s+j);*(s+j)=t;i++;j--;}

D)0987651234

}

main()

{inta[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,intn1,intn2)的作用,我自己完善了程序如下:#includestdio.h

#includestdlib.hfun(i

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

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

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档