C语言-第六章--数组.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 数组 一、填空题 1.【B】 分析:此题考查一维数组的定义。一维数组的定义,其数组长度即方括号中必须为常量,不能为变量,例如选项C,D。一维数组在定义并且初始化时可以省略数组的长度,但在单纯的定义时,数组的长度一定不能省,例如选项A。所以答案选B。 2.【B】 分析:此题是数组的简单引用。 第一轮循环,i=0,判断i++7 成立,此时i变为1,进入循环体,但此时i=1,p[1]=12不满足if条件即p[i]%2为0,不执行j+=p[i]。 第二轮循环,i=1,判断i++7 成立,此时i变为2,进入循环体,但此时i=2,p[2]=13满足if条件即p[i]%2为1,执行j+=p[i]。 按照此方法,将整个while循环执行完,得到j=p[2]+p[4]+p[6]=45,即B正确。 3.【A】 分析:此题主要考查循环嵌套引用数组。 第一个循环体执行完是将x[0],x[1],x[2],x[3]进行从大到小排序。 第二个循环体执行完是将x[4],x[5],x[6],x[7]进行从小到大排序。 4.【D】 分析:此题同第二题很类似。 首先i为0,i7p[0]%2为真,执行k=k+p[0],即k=11, 然后执行i++使i变为1,再进行判断,i7p[1]%2为真,执行k=11+p[1],所以k=24,执行i++使i变为2,再进行判断,此时i7p[2]%2为假,循环结束,输出k值,为24。 5.【D】 分析:此题是考查数组名是数组的首地址。 p是一个指针变量,存放地址的,选项A,B,C都是将值赋给p,显然错误。D选项是a[2]的地址赋给p。所以答案选D。 6.【B】 分析:此题是通过指针来引用数组。 由定义int a[10]={1,2,3,4,5,6,7,8,9,10 },*p=a[3],*q=p+2;我们可知,p中存放了a[3]的地址,或者p指向了a[3],q中存放了a[5]的地址,或者q指向了a[5]。那么*p和*q就分别等价于a[3]和a[5],两着相加得10。所以答案选B。 7.【C】 分析:此题是指针,数组,循环的结合。 首先p指向了a[1]。进入循环,x为1,x3为真,执行y+=p[1];,此题的关键点就在这里p[1]等于多少?因为p指向了a[1],所以p[0]就等价与a[1],p[1]就等价与a[2],p[2]就等价与a[3],依次类推。所以执行y+=p[1]使y的值变6,然后i++使i变为2,x3为真,执行y+=p[2];使y值变为14。所以答案选C。 8.【A】 分析:此题是指针,数组,循环的结合。 第一轮循环,执行p=a;,那么p指向数组的a[0],pa+10为真,执行printf语句,输出*p即输出a[0]。然后执行p++使p指向a[1]。 第二轮循环,pa+10为真,执行printf语句,输出*p即输出a[1]。然后执行p++使p指向a[2]。 依此类推执行循环到结束,依次将数组的元素全部输出。所以答案选A。 9.【A】 分析:此题考查NULL的知识点。 NULL只是一个地址,即地址为0,并没有对应的内存单元。所以q中存放的是NULL,那么*q并不表示任何内存单元,执行*q=*(p+5);会出错,所以答案选A。 10.【C】 分析:根据附录可知++的优先级高于,所以C答案错误。 11.【D】 分析:数组的长度根据其初始化可知为10,因此a[10]来引用数组的元素是错误的,越界了。 12.【D】 分析:此题和第七题类似。 p指向了a[3],那么p[5]等价于a[8],所以b中存放的是a[8]。所以答案选D。 13.【B】 分析:执行s=x+3;使s指向了x[3],那么s[2]等价于x[5],所以答案选B。 14.【B】 分析:此题通过循环对二维数组进行初始化。 首先执行p=a[0][0];使p指向了二维数组的首地址。进入for循环,i为0,i9为真,执行p[0]=0+1;使p[0]为1,然后i++。依次执行循环到结束,那么数组a中的元素将都被赋值a[3][3]={{1,2,3},{4,5,6},{7,8,9}}。所以答案选B。 15.【C】 分析:此题注意*的优先级高于算术运算符。 p指向数组a的首地址,*p等价于a[0]为1,所以*p+9等于10,答案选C。 16.【C】 分析:此题考查通过循环来引用数组的元素。 第一轮循环,i为0,i9为真,执行s+=*(t+i);因为t是数组的首地址所以等价于s+=t[0]使s的值变为1。然后执行i+=2使i变为2。 第二轮循环,i为2,i9为真,执行s+=*(t+i);因为t是数组的首地址所以等价于s+=t[2]使s的值变为4。然后执行i+=2使i变为4。 依此类推,执行完循环s=t[0]+t[2]+t[4]+t[6]+t[8]=1+3+5+7+9=25。所以答案选C

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档