资源描述:
《计算机二级c语言第7章ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章数组掌握一维数组、多维数组的定义、初始化和引用。掌握字符串和字符数组的概念及其处理函数。掌握用数组进行编程的技术。7.1 一维数组7.2 多维数组7.3字符型数组和字符串7.4综合应用举例回忆:数据类型数据类型总表<>C数据类型基本类型构造类型指针类型空类型void定义类型typedef字符类型char枚举类型enum整型实型单精度型float双精度型double数组结构体struct共用体union短整型short长整型long整型int数据类型决定:1.数据占内存字节数2.数据取值范围3.其上可进行的操作数组及其相关概念数组是一组有序的、类型相同的数据的集合,这些数据被称为数组
2、的元素。数组下标每个数组都有一个名字,我们称之为数组名。为标识数组中的每个元素,我们需要对它们进行编号,这种编号我们称之为数组元素的下标。由于有了下标,元素在数组中的位置(或排列顺序)就被唯一地确定下来。我们用数组名加下标就可以准确地访问数组中的某个元素了。如:w[0]代表数组w中的第一个元素w[9]代表数组w中的第十个元素注意:C语言规定下标从0开始。说明:数组名代表数组的起始地址。数组元素在内存中是连续存储的。7.1一维数组的定义和引用一、一维数组的定义定义一维数组的一般方式:类型说明符数组名[常量表达式];指明数组元素的数据类型指明数组所含的元素个数例如:inta[10];/*定义
3、的整型数组a含10个元素*/floatb[20];/*定义的实型数组b含20个元素*/说明:⑴数组名的命名规则同变量名的命名规则一样;⑵数组名后用方括号[],不能用()⑶常量表达式必须是大于0的整型常量表达式,不能包含变量。即C语言不允许对数组的大小作动态定义,即定义数组时,数组的长度必须是确定的,其大小不依赖程序运行过程中变量的值。inta(10);例如:intn;inta[n]charname[0];floatweight[10.3];floatarray[-100];二、一维数组的初始化1.定义时初始化方法:将初值依此写在花括号{}内。如:inta[5]={2,4,6,8,10};
4、存储形式:存储单元说明:⑴如果在定义一维数组时给出了全部元素的初值,则数组的下标允许省略。此时编译系统将自动根据初始化数据的个数来确定数组的长度。如:inta[]={2,4,6,8,10};⑵初始化的数据个数允许少于数组的长度,但不能多于数组的长度。当初始化的数据个数(至少要有一个)少于数组的长度时,未初始化部分将被编译系统自动用0赋值。如:inta[5]={2,4};相当于:a[0]=2,a[1]=4,a[2]=0,a[3]=0,a[4]=0inta[5]={1,2,3,4,5,6,7,8};╳2.使用其它方法初始化⑵利用输入语句初始化main(){charas[26];inti;fo
5、r(i=0;i<26;i++)scanf("%c",&as[i]);…...}⑴利用赋值语句初始化main(){charas[26],ch;for(ch='A';ch<='Z';ch++)as[ch-'A']=ch;…...}三、一维数组的引用数组元素类似于单个变量,可以自由地存取。但是,它与一般变量相比,有以下特殊之处:⑴数组元素是通过数组名加该元素在数组中的位置(即数组元素的下标)来访问的。表示形式:数组名[下标]如:a[3]其中,下标可以是整型常量、整型变量或整型表达式。如:inta[10];floati=3;a[i]=10;⑵数组元素的下标是从0开始的。如:inta[2];sca
6、nf(“%d,%d”,&a[1],&a[2]);⑶数组元素的赋值是逐个元素进行的,不允许把一个数组作为一个整体赋给另一个数组。除了数组初始化外,也不允许用在花括号中列表的方式对数组整体赋值。例1:inta[5]={2,4,6,8,10},b[5];b[5]=a[5];例2:inta[5];a[5]={2,4,6,8,10};⑷数组名a代表的是数组a在内存中的首地址,因此,可以用数组名a来代表数组元素a[0]的地址。等价于scanf(“%d”,&a[0]);scanf(“%d”,a);四、一维数组应用举例例1:从键盘上输入10个整型数存入数组,然后按输入顺序的逆序输出这10个数。main(
7、){inta[10];inti;for(i=0;i<10;i++)scanf(“%d”,&a[i]);for(i=9;i>=0;i--)printf(“%d”,a[i]);}例4.2:用数组来处理求斐波纳契数列:1,1,2,3,5,8…的前20个数。main(){intf[20]={1,1};for(i=2;i<20;i++)f[i]=f[i-2]+f[i-1];for(i=0;i<20;i++){printf(“%10d”,f[i