C语言程序设计 课件 任务4.1 数组_第1页
C语言程序设计 课件 任务4.1 数组_第2页
C语言程序设计 课件 任务4.1 数组_第3页
C语言程序设计 课件 任务4.1 数组_第4页
C语言程序设计 课件 任务4.1 数组_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计基础与实践模块四编程高级应用任务4.1数组C语言程序设计基础与实践课程组04技能点拓展03技能点详解02技能点分析目录CONTENTS任务4.1数组01问题引入05技能点检测一问题引入足球场上,双方球员在快速奔跑,抢断,为了团队的荣誉拼搏。作为观众的我们,无法看见球员的面孔,我们通过球衣的颜色和图案区别球队。但是,如何区别哪一位球员呢?有的时候解说员在解说比较激烈的场面的时候,通常喊的是球员身后的号码,当我们看到号码的时候,就知道是哪位球员,比如C罗的7号,马拉多拉的10号。这种用球队多少号球员的命名方式,在C语言中就是数组的命名方式。那么数组在使用时我们应该注意哪些事项呢?04技能点拓展03技能点详解02技能点分析目录CONTENTS01问题引入05技能点检测任务4.1数组二技能点分析1.掌握一维数组的应用2.掌握多维数组初始化的3.掌握访问数组元素的方法学习目标1.什么是数组?2.如何声明一维数组和二维数组?3.数组如何被初始化?4.如何访问数组元素?元素的索引是什么?学期预习04技能点拓展03技能点详解02技能点分析目录CONTENTS01问题引入05技能点检测任务4.1数组数组是一组具有相同数据类型的变量集合,它是一系列相同类型的变量。一维数组的定义typename[size1];C语言支持多维数组。多维数组声明的一般形式如下:typename[size1][size2]...[sizeN];数组中的每一项称为数组的元素,每个元素都有对应的下标(n),用于表示元素在数组中的位置序号,下标从0开始。数组的声明是声明一个数组变量,有一个统一的名称,比如定义一个数组name,然后用name[n]的形式访问其中的每一个变量,称为数组元素。三技能点详解——数组数组中的每一项称为数组的元素,每个元素都有对应的下标(n),用于表示元素在数组中的位置序号,下标从0开始。数组的声明是声明一个数组变量,有一个统一的名称,比如定义一个数组name,然后用name[n]的形式访问其中的每一个变量,称为数组元素。三技能点详解——数组1)声明数组在C中要声明一个数组,需要指定元素的类型和元素的数量,如下所示:typearrayName[arraySize];这叫做一维数组。[]中的arraySize必须是一个大于零的整数常量,type可以是任意有效的C数据类型。要声明一个类型为float的包含6个元素的数组b,声明语句如下:floatb[6];现在b是一个可用的数组,可以容纳6个类型为float的数字。三技能点详解——1一维数组三技能点详解——1一维数组2)初始化数组(1)直接对数组中的所有元素赋值。需要注意的是:大括号{}中的值的数目不能大于我们在数组声明时在方括号[]中指定的元素数目。比如下例中定义的数组b长度是5,那么初始化的值的数目最多也只能是5个。floatb[5]={9990.0,1.0,5.0,7.0,56.0};(2)只对数组中的一部分元素赋值。

结果是给b[0],b[1]赋了初始值,其他元素没有初始值(也可以理解为是个随机数值)floatb[5]={9990.0,1.0};(3)对数组全部元素赋值,但不指定长度。如果省略掉了数组的大小,这时数组的长度等于初始化时元素的个数。floatb[]={9990.0,1.0,5.0,7.0,56.0};这将创建一个数组,虽然没有指定数组长度,它与前一个实例中所创建的数组是完全相同的,也是5个数组元素。3)访问数组元素

数组元素可以通过数组名称加索引进行访问。元素的索引是放在方括号内,跟在数组名称的后边。b[4]=56.0;这个语句把数组中第五个元素的值赋为56.0,b[4]可以看作是一个独立的变量,我们可以通过这个变量直接修改数组中的元素值或者引用其中的值。三技能点详解——1一维数组1)声明二维数组声明一个x行y列的二维整型数组,形式如下:typearrayName[m][n];其中,type可以是任意有效的C数据类型,arrayName是一个有效的C标识符。一个二维数组在逻辑上就是一个m行和n列的表格。下面是一个二维数组,包含4行和3列:inta[4][3];因此,数组中的每个元素是使用形式为a[m][n]的元素名称来标识的,其中a是数组名称,m和n是唯一标识数组a中每个元素的下标。三技能点详解——2二维数组2)初始化二维数组inta[3][4]={

{0,1,2,3},//初始化索引号为0的行

{4,5,6,7},//初始化索引号为1的行

{8,9,10,11}//初始化索引号为2的行

};多维数组可以通过在括号内为每行指定值来进行初始化。下面是一个带有3行4列的数组。内部嵌套的括号是可选的,下面的初始化与上面是等同的:之所以可以这样初始化,是因为数组的物理结构还是一个数据列表,数组中的数据存放在内存中时还是按照线性结构顺序存储在内存空间中的。例如上例中的a数组在内存中的结构实际是这样的:三技能点详解——2二维数组二维数组中的元素是通过使用下标(即数组的行索引和列索引)来访问的。例如:intval=a[2][3];上面的语句将获取数组中第3行第4个元素赋值给变量val。3)访问二维数组元素三技能点详解——2二维数组三技能点详解——1访问二维数组元素二维数组中的元素是通过使用下标(即数组的行索引和列索引)来访问的。例如:intval=a[2][3];上面的语句将获取数组中第3行第4个元素赋值给变量val。案例4.1.1读写一维数组/****************************************************内容简述:一位数组初始化和输出***************************************************/#include

<stdio.h>

//头文件

intmain(void){

intn[10]; //n是一个包含10个整数的数组

inti,j;

for(i=0;i<10;i++) //初始化数组元素 { n[i]=i+100; //设置元素i为i+100 }

for(j=0;j<10;j++) //输出数组中每个元素的值 { printf("Element[%d]=%d\n",j,n[j]); }

return0;}三技能点详解——案例三技能点详解——案例实例4.1.2读写二维数组/****************************************************内容简述:二维数组初始化和输出***************************************************/#include

<stdio.h>

intmain(void){

/*一个带有5行2列的数组*/

inta[5][2]={{0,0},{1,2},{2,4},{3,6},{4,8}};

inti,j;

for(i=0;i<5;i++)//输出数组中每个元素的值{

for(j=0;j<2;j++){printf("a[%d][%d]=%d\n",i,j,a[i][j]);}}

return0;}三技能点详解——案例04技能点拓展03技能点详解02技能点分析目录CONTENTS01问题引入05技能点检测任务4.1数组四技能点拓展——1数组越界数组的下标都有一个范围,即“0~[数组长度-1]”,假设数组的长度为:5,其下标范围为0~4。当访问数组中的元素时,下标不能超出这个范围,否则程序会出错。/****************************************************内容简述:数组越界显示问题***************************************************/#include

<stdio.h>

//头文件intmain(void){

inta[5]={1,2,3,4,5};//一维数组的5个元素

inti;

for(i=0;i<6;i++)//输出5个数值 { printf("a[%d]=%d\n",i,a[i]); }

return0;}四技能点拓展——2字符数组字符数组是由字符类型的元素所组成的数组,字符串就存储在字符数组中,在访问字符数组时,可使用下标法读取指定位置的字符。字符数组定义方式与整型数组类似:chararrname[size];//一维字符数组定义字符数组:charcha[6];charchb[5]={'a','b','c','d','e'};//定义一个字符数组并初始化数组元素四技能点拓展——3字符串数组字符串是由数字、字母、下划线、空格等各种字符组成的一串字符,由一对英文半角状态下的双引号(“”)括起来,例如”abcde”。字符串在C语言中,字符串的存储和处理都是通过字符数组来实现的,存储字符串的字符数组必须以空字符’\0’(空字符)结尾。当把一个字符串存入一个字符数组时,也把结束符’\0’存入数组,因此该字符数组的长度是字符串实际字符

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论