C辅导材料数组的定义和引用.docVIP

  1. 1、本文档共17页,可阅读全部内容。
  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文档。上传文档
查看更多
C辅导材料数组的定义和引用,数组的定义与引用,数组的定义和引用,指针数组的定义和引用,js定义数组,c定义数组,java定义数组,定义数组,php定义数组,c定义二维数组

计算机等级考试二级C辅导材料-数组的定义和引用 知识点提示 1.一维数组和多维数组的定义、初始化和引用。 2.字符串与字符数组 知识点 一.数组的概念 数组是C语言中构造数据类型(导出类型)之一,在程序设计中有着广泛的应用。数据是有序数据的集合,也就是说将一组同类型的数据按照连续的原则,在内存中组织起来便构成数组。数组由元素组成,数组中每一个元素都属于同一个数据类型,并且用一个统一的数组名和下标来惟一地确定数组中的元素。 如果从内存单元分配的角度来理解数组,数组的实质是解决了同类型内存单元一次性的批量分配问题,而且在分配内存单元时还是连续的。 二.一维数组的定义和引用 1.一维数组的定义 格式:类型说明符 数组名[常量表达式]; 说明: ⑴ 数组名的命名规则与变量名相同,遵循标识符的命名规则。 ⑵ 数组的长度或大小,只能是常量表达式,C中不允许对数组的大小作动态定义。 2.一维数组元素的引用 引用形式:数组名[下标] 说明: ⑴ 下标可以是整常量或整型表达式。可以被赋值,也可以出现在表达式中。 ⑵ 下标的起始值是从0开始的,在引用数组元素时,对下标不进行越界检查。 ⑶ 对于下标值为i的元素,则其在数组的位置顺序为i+1。 3.一维数组的初始化 在定义数组时,对数组所有元素或部分赋初值,称数组的初始化。一维数组的初始化可用以下的方法: ⑴ 类型说明符 数组名[常量表达式]={初值表}; ⑵ 类型说明符 数组名[]={初值表}; 说明:不失一般性,定义数组时,若没有对其进行初始化,则其元素的值是不确定值。若对其进行了初始化,则元素的值为指定的初值或零。另外,初值的个数不能超过元素的个数。 4.一维数组元素的输入及输出 不失一般性,一维数组元素的输入输出操作,是通过循环实现,也就是对下标的遍历。 ·数组元素的输入操作实现 int a[M],i; for(i=0;iM;i++) scanf(%d,a[i]); //输入数据项的分隔符为空格、回车、制表符 ·数组元素的输出操作实现 int a[M],i; for(i=0;iM;i++) { printf(%10d,a[i]); if((i+1)%5==0) printf(\n); //每行输出5个元素 } 5.习题解析 [例1] 以下程序段的运行结果是_______。 float a; double x[5]; printf(%d,%d,%d\n,sizeof(a),sizeof(x),sizeof(x[0])); 答案:4,40,8 [例2] 以下程序段的输出结果是______。 int i,a[6]={1}; for(i=1;i6;i++) a[i]=a[a[i-1]]*2; for(i=1;i6;i++) printf(%3d,a[i]); printf(\n); 答案:0 2 4 0 2 [例3] 执行以下程序段后数组的各元素值分别是______。 int i,j,t,a[]={1,2,3,4,5,6,7,8,9,10}; i=2;j=6; while(ij) { t=a[i];a[i]=a[j];a[j]=t; i++; j--; } 答案:1,2,7,6,5,4,3,8,9,10(数组的逆序存放算法) [例4] 执行以下程序段后,其输出结果是______。 int i,t,a[]={1,2,3,4,5,6,7,8,9,0},m,n; m=4;n=2;t=a[n]; for(i=2;in+4;i++) a[i]=a[i+1]; a[i]=t; for(i=0;isizeof(a)/sizeof(int);i++) printf(%3d,a[i]); printf(\n); 答案: 1 2 4 5 6 7 3 8 9 0(功能是向左移动部分数组元素的值,并将移动部分的第一个元素的值放在移动部分的最后位置上)。 [例5] 以下程序的功能是________。 int i,m1,m2,a[10]; m1=m2=-32768; for(i=0;i10;i++) if(m1a[i]) m1=a[i]; for(i=0;i10;i++) if(m2a[i]a[i]!=m1) m2=a[i]; 答案:将数组a中的头两个最大值存放在m1、m2中(m1、m2赋初值不能为a[0],若最大值为a[0]时,此大值将找不到)。 [例6] 运行下述程序段,若从键盘上输入:6,9↙,则结果是_____。 int x[100],n,a,b,m,i; n=0; scanf(%d,%d,a,b); if(ab) m=a; else m=b; for(i=1

文档评论(0)

tianma2015 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档