资源描述:
《计算机二级C语言考试C语言学习第5讲.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言程序设计第五讲第八章数组构造数据类型之一数组:有序数据的集合,用数组名标识元素:属同一数据类型,用数组名和下标确定8.1一维数组一维数组的定义定义方式:数据类型数组名[常量表达式];合法标识符表示元素个数下标从0开始[]:数组运算符单目运算符优先级(1)左结合不能用()例inta[6];a[0]0145a[1]a[2]a[3]a[4]a[5]23a编译时分配连续内存内存字节数=数组维数*sizeof(元素数据类型)数组名表示内存首地址,是地址常量一维数组的引用数组必须先定义,后使用只能逐个引
2、用数组元素,不能一次引用整个数组数组元素表示形式:数组名[下标]其中:下标可以是常量或整型表达式例inti=15;intdata[i];(不能用变量定义数组维数)例inta[10];printf(“%d”,a);()必须for(j=0;j<10;j++)printf(“%dt”,a[j]);()例intdata[5];data[5]=10;//C语言对数组不作越界检查,使用时要注意一维数组的初始化初始化方式在定义数组时,为数组元素赋初值(在编译阶段使之得到初值)inta[5]={1,2,3
3、,4,5};等价于:a[0]=1;a[1]=2;a[2]=3;a[3]=4;a[4]=5;说明:数组不初始化,其元素值为随机数对static数组元素不赋初值,系统会自动赋以0值当全部数组元素赋初值时,可不指定数组长度如inta[5]={6,2,3};等价于:a[0]=6;a[1]=2;a[2]=3;a[3]=0;a[4]=0;如inta[3]={6,2,3,5,1};()staticinta[5];等价于:a[0]=0;a[1]=0;a[2]=0;a[3]=0;a[4]=0;只给部分数组元素赋初
4、值inta[]={1,2,3,4,5,6};编译系统根据初值个数确定数组维数程序举例例1若要求定义具有10个int型的元素一维数组a,则以下定义错误的是:A)#defineN10inta[N];B)#definen5inta[2*n];C)inta[5+5];D)intn=10,a[n];例2(08/921)若有定义语句:intm[]={5,4,3,2,1},i=4;则下面对m数组元素的引用中错误的是()A)m[--i]B)m[2*2]C)m[m[0]]D)m[m[i]]例3(08/9)32)有如
5、下程序:#includevoidfun(inta,intb){intt;t=a;a=b;b=t;}main(){intc[10]={1,2,3,4,5,6,7,8,9,0},i;for(i=0;k<10;i+=2)fun(c[i],c[i+1]);for(i=0;k<10;i++)printf("%d",c[i]);printf("");}程序的运行结果是A)1,2,3,4,5,6,7,8,9,0,B)2,1,4,3,6,5,8,7,0,9,C)0,9,8,7,6,5,4,3
6、,2,1,D)0,1,2,3,4,5,6,7,8,9,例408/4(31)有以下程序#includemain(){ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++)c[s[i]]++;for(i=1;i<5;i++)printf("%d",c[i]);printf("");}程序的运行结果是()。A)1234B)2344C)4332D)11238.2二维数组及多维数组二维数组的定义定义方式:数据类型
7、数组名[常量表达式][常量表达式];数组元素的存放顺序原因:内存是一维的二维数组:按行序优先例inta[3][4];floatb[2][5];intc[2][3][4];inta[3,4];()行数列数元素个数=行数*列数inta[3][2]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]014523a[0][0]a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]二维数组理解例inta[3][4];201617201819202021202
8、22320089201011201213201415200012002320045200067a[0][0]a[0][1]a[0][2]a[0][3]a[1][0]a[1][1]a[1][2]a[1][3]a[2][0]a[2][1]a[2][2]a[2][3]每个元素a[i]由包含4个元素的一维数组组成二维数组a是由3个元素组成a[0]a[1]a[2]行名014523a[0][1]a[0][2]a[0][3]a[1][0]a[1][1]a[0][0]a[1][3]a[2][0]a