欢迎来到天天文库
浏览记录
ID:50355007
大小:1.72 MB
页数:123页
时间:2020-03-08
《C 语言及应用 中专 教学课件 ppt 作者 孙振业 第1-4章第4章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章数组4.1数组的概念4.2一维数组4.3二维数组4.4字符数组4.5应用举例习题44.1数组的概念数组,实际上是多个变量的有序排列。从存储的角度看:如果一个变量代表一个存储单元,那么一个数组则代表一批连续排列在一起的存储单元。例如:s[0]、s[1]、s[2]、s[3]、…、s[99]就是一批连续排列在一起的存储单元。其中,s[0]~s[99]构成了数组s,而s[0]~s[99]中的每一个都称为s数组的数组元素。每一个数组元素都是一个存储变量,可以存放一个数据。因此,在s数组中,既可以
2、存放100个职工的工资数额,也可以存放100个实验数据等等。有了数组和数组元素,在程序中进行运算就方便多了。例如,计算100个学生成绩的总分,可以利用循环和数组来完成。有关程序段如下:for(i=0;i<100;++i)sum=sum+s[i];printf(″%d″,sum);由于数组中的每一个数组元素都用数组的名字和一个数字来表示,因此,又称数组元素为带下标的变量,简称下标变量。例如:s[0]、s[1]、…、s[99]等都称为下标变量,而括号中的数字称为下标。4.2一维数组4.2.1一维数组的
3、定义1.一维数组定义的一般形式类型说明数组名[常量表达式];例如:floatf[10];定义数组名为f,f数组含有10个元素,类型为实型。2.一维数组定义的说明(1)数组名的构成应符合标识符的规定。(2)常量表达式可以是常量或符号常量,不能是变量。例如,下列用法intn;scanf(″%d″,&n);inta[n];是错误的,即C语言不允许对数组的大小进行动态定义。(3)常量表达式确定了数组所包含的数组元素的个数,即数组长度。数组元素的最小下标是0。例如:inti[5];定义了整型
4、数组i,共包含5个元素,分别是i[0]、i[1]、i[2]、i[3]、i[4]。请注意,并不包含i[5]。4.2.2一维数组的引用一个数组被定义之后,使用的是它的数组元素。数组元素的使用与简单变量一样,区别只是数组元素带有下标。引用数组元素时,下标可以是整型常量或整型表达式。但下标的取值不能超出数组规定的使用范围,使用任何超出规定范围的下标都将导致错误。例如:inti[5];i[0]=1;i[2]=i[0];i[2*i[0]]=19;均是正确的。而:i[5]=123;则是错误的,下标取值应控
5、制在0~4的范围内。需要特别注意的是:C语言编译程序不检查下标是否“越界”。上例中如果出现i[5],编译时将把i[4]下面一个单元(其它变量)的内容作为i[5]引用,这必将破坏该单元的内容,导致程序出错。C语言规定对数组的引用只能通过数组元素进行,不能一次引用整个数组。例4.1 已知a、b、c、d、x[0]~x[6]的值如下:计算下列各数组元素的值。(1)x[0]=(2)x[a+b]=(3)x[a*b]=(4)x[x[a+d]-b]=(5)x[d]= (6)x[x[b]-x[a+d]-a*d]
6、=解(1)x[0]=50(2)x[a+b]=x[2+3]=x[5]=76(3)x[a*b]=x[2*3]=x[6]=6(4)x[x[a+d]-b]=x[x[2+4]-3]=x[x[6]-3]=x[6-3]=x[3]=18(5)x[d]=x[4]=98(6)x[x[b]-x[a+d]-a*d]=x[x[3]-x[6]-8]=x[18-6-8]=x[4]=98例4.2利用scanf()函数将a数组的全部数组元素赋初值1。main(){inta[10],i;for(i=0;i<10;i++)
7、scanf(″%d″,&a[i]);for(i=0;i<10;i++)printf(″%d″,a[i]);}例4.2程序中,a数组元素的下标用整型变量i表示,循环语句控制i由1变化到9,分别表示a[0]~a[9]。例4.3 给a数组中下标为偶数的数组元素赋值205。main(){inti,a[50];for(i=0;i<50;i=i+2)a[i]=205;for(i=0;i<50;i=i+2)printf(″%d″,a[i]);}例4.3程序中,通过循环语句中的i=i+2控制数组的
8、下标只取偶数,从而越过奇数下标。4.2.3一维数组的初始化从例4.2和例4.3可以看到,用赋值语句或输入函数可以使数组元素得到初值,但要占用运行时间。数组初始化可以作为数组说明的一部分,它可以使数组在程序运行之前,即在编译阶段得到初值,从而提高程序的运行速度。1.一维数组初始化的一般形式存储类型类型说明数组名[常量表达式]={初值};其中,初值的个数多于一个时,用逗号分隔。例如:staticinta[5]={0,1,2
此文档下载收益归作者所有