



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
复习:1局部变量与全局变量2变量的作用域与生存期3函数的存储类别讲授新课第7章 数 组把具有相同类型的若干变量的数据集合称为数组。在语言中, 数组属于构造数据类型。即它是由基本类型构造而得的一种数据类型。本章主要介绍普通的一维和二维数组、字符数组以及字符串。7.1 一维数组如果我们在程序中要用到多个变量,既然变量的类型相同,我们也只能一个一个地进行变量定义。如果用到的变量太多的话,就会显得繁杂,而且使用起来也不方便。C语言中采用数组来解决上述问题。数组可以一次定义多个相同类型的变量。7.1.1一维数组的定义与初始化 数组是一组具有相同类型的数据的有序集合。数组的中每个数据称为数组元素。数组有两个特点:其一是类型相同,即组成数组的每个数组元素具有相同的数据类型;其二是有序,每个数组元素在数组的位置确定。若数组元素在数组的位置通过一个序号(下标)就可以确定,我们称这样的数组为一维数组。1. 一维数组的定义在C语言中,定义一维数组的一般形式为: 类型说明 数组名 常量表达式 ,;说明:(1)定义性说明整型数组a,a为数组名。数组名的命名和变量一样,应符合用户标识符的命名规则。(2)常量表达式的值表示数组元素的个数,该数组中有10个元素(相当于10个变量)。且“”中的常量表达式中可以包含常量和符号常量,但不能包含变量。(3)类型说明符的类型是数组元素的类型。(4)定义了一个数组,实质上是定义一批同类型的变量。这些变量在内存中的地址连续,如图7.1,系统为数组a开辟了10个地址连续的存储单元,数组名代表的是整个存储单元的首地址,也可以说a与数组元素a0的地址值相同。(5)这一批变量的名字有如下形式:数组名下标,下标为它在数组中的排序号(序号从0开始)。(6)允许在同一个类型说明中,说明多个数组和多个变量。2.一维数组的初始化当我们定义一个数组时,系统为其分配一串连续的存储单元,这些存储单元中并没有确定的值。C语言中可以在定义的同时给数组赋初值,称为数组的初始化。(1)在定义数组的同时对数组元素赋初值。(2)可以只给部分元素赋初值。当 中值的个数少于元素个数时,只给前面部分元素赋值,后面的赋初值0或0。(3)当给全部元素赋值时,在数组说明中,可以不给出数组元素的个数。 7.1.2 一维数组元素的引用数组元素是组成数组的基本单元,其实质就是一个变量。变量用变量名来标识。数组元素同样也是用它的名字来标识,所以,数组元素引用的一般形式为: 数组名下标注意:(1)一个数组元素实质上就是一个变量,代表内存中的一个存储单元。引用数组元素,实质就是对数组所代表的内存单元进行操作。(2)下标必须为整型(可以是已有值的变量),若为小数,则自动取整。(3)在C语言中,一个数组不能整体引用。例7.1 编写程序,定义一个含有5个元素的int类型数组。通过键盘给数组元素输入数值;然后通过终端屏幕输出这5个元素的值。#define M 5main() int aM, i; printf(“nPlease input 5 integer datan”); for(i=0; iM; i+)scanf(“%d”,&ai ); printf(“nOutput a array n”); for(i=0; iM; i+)printf(“a%d=%d ”,i, ai );7.2 二维数组7.2.1 二维数组的定义与初始化如果一个数组元素在数组中的位置需要两个排序号(下标)才能确定,这样的数组称为二维数组。二维数组的每个元素有两个下标。一个二维数组可以看成一个行列式或一个二维表。1.二维数组的定义二维数组定义的一般形式是:类型说明 数组名常量表达式1常量表达式2,;说明:(1)类型说明中的类型是指数组元素的类型,如a数组中的12个元素均为double类型。(2)常量表达式跟一维数组一样可以包含常量和符号常量,但不能包含变量,其中常量表达式1表示第一维(行)下标的长度,常量表达式2 表示第二维(列)下标的长度。(3)a数组中的元素在内存中占一串连续的存储单元。二维数组在内存中的存放顺序为“按行存放”(4)C语言中,把二维数组看作是一个一维数组:它的元素又是一维数组。例如:上述定义中,a数组可以看作是由a0,a1,a2三个元素的一维数组,每个元素又可以看作是包含4个元素的一维数组。2.二维数组的初始化可以用以下几种方法对二维数组进行初始化(1)所赋初值的个数与二维数组元素个数相同l 按行给二维数组赋初值。这种方法比较直观,把第一对花括号赋给第1行的元素,第二对花括号赋给第2行的元素。l 将所有的数据写在一对花括号内,按数组排列的顺序给各元素赋值。这种方法效果与前一种相同,但行数较多时,不易区分检查。(2)所赋初值的个数与二维数组元素个数不相同l 所赋初值每一行中数据少于该行中元素的个数。系统自动给该行后面的元素赋初值0。l 所赋初值行数少于数组行数。系统自动给后面各行的元素赋初值0。(3)可以通过赋初值定义二维数组的大小在二维数组的定义中,只可以省略第一个方括号中的常量表达式,而不能省略第二个方括号中的常量表达式。l 通过花括号对确定第一维的大小。l 通过所赋初值的个数来确定第一维的大小。若初值个数能被第二维的常量表达式的值除尽时,所得的商就是第一维的大小;若初值个数不能被第二维的常量表达式的值除尽时,第一维的大小就等于所得的商+1。7.2.2 二维数组的引用二维数组的元素也称为双下标变量,其表示的形式为:数组名下标表达式1下标表达式2 注意:(1)下标应为整型常量或整型表达式、且不得超越数组定义的上下界。(2)引用二维数组元素时,一定把两个下标放在两个方括号内。(3)注意区分在定义数组时用的a34和引用元素时a34的区别。前者用来定义数组的行数与列数,即各维的大小,后者中的3和4是下标值。例7.2 编写程序,通过键盘给34二维数组输入数据,然后按行输出此二维数组。#define M 3#define N 4main() int aMN,j,k; printf(“Please input data by linen”); for(j=0; jM; j+) for(k=0; kN; k+)scanf(“%d”,&ajk); printf(“Output a array by linen”);for(j=0; jM; j+) for(k=0; kN; k+)printf(“%5d”, ajk); printf(“n”);思考:若将以上输入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东广州市“百万英才汇南粤”行动计划海珠区社区专职人员招聘笔试模拟试卷(含答案详解)
- 2025年成都市成华区卫健系统所属8家事业单位面向社会公开考试招聘20名工作人员考前自测高频考点模拟试题及答案详解(必刷)
- 2025年浙江衢州江山市四都镇卫生院公开招聘编外医务人员1人模拟试卷及答案详解(考点梳理)
- 2025年长春市市直事业单位公开招聘高层次人才(5号)考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025年浙江大学医学院附属第二医院招聘药剂师1人考前自测高频考点模拟试题及1套完整答案详解
- 2025吉林白山抚松县招聘高中教师9人模拟试卷及一套完整答案详解
- 2025年甘肃省兰州市榆中县中医医院春季招聘15人模拟试卷及完整答案详解1套
- 2025年绍兴市上虞区中医医院医共体公开招聘编外人员46人考前自测高频考点模拟试题及一套答案详解
- 2025吉林松原经济技术开发区管理委员会招聘事业单位(含专项招聘高校毕业生)5人模拟试卷及答案详解(夺冠系列)
- 2025安徽黄山融合传媒有限公司招聘1人笔试题库历年考点版附带答案详解
- 乡镇卫生院管理制度
- 洗车店卫生管理制度
- JT-T 495-2025 公路交通安全设施产品质量检验抽样方法
- 2025-2030中国铜软连接行业市场现状分析及竞争格局与投资发展研究报告
- 2024-2025学年山东省济南市高一上册第一次月考数学学情检测试题
- 2025年印刷行业趋势分析报告
- 劳动教育的跨学科融合
- 2025年中考英语高频词汇表
- 《钠离子电池简介》课件
- 十八项核心制度
- 《水的组成说课课案》课件
评论
0/150
提交评论