




已阅读5页,还剩125页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 5章 数组 、字符串、指针 1第 5章 数组、字符串、指针本章要求:1、 掌握 C语言数组在内存中的存储形式2、 掌握一维数组和二维数组的定义及使用3、 掌握使用指针处理数组的方法4、 掌握使用字符数组及指针处理字符串数据的方法5、 掌握与数组有关的基本算法(如排序、查找、插入、删除等)的程序设计重点: 一维数组、二维数组的定义与使用方法,使用指针访问数组和字符串的方法。难点: 二维数组与指针;与数组有关的常用算法(排序、查找与插入等)。第 5章 数组 、字符串、指针 2第 5章 数组、字符串、指针本章主要内容: 5.1 数组概述 5.2 一维数组 5.3 二维数组与多维数组 5.5 数组与指针 5.5 字符数组与字符串5.6 字符串与字符指针5.7 指针数组与多级指针变量5.8 应用程序举例 本 章 小 结 第 5章 数组 、字符串、指针 3第 5章 数组、字符串、指针5.1 数组概述 数组是各种计算机程序设计语言中很重要的一个概念,用于处理大量数据的问题。为了处理方便,把具有相同类型的若干数据按有序的形式组织起来,这些按序排列的同类数据元素的集合称为数组。在语言中,数组属于构造数据类型,一个数组元素可以是基本数据类型或是构造类型。 第 5章 数组 、字符串、指针 4输入 10个数,输出它们的平均值及大于平均值的那些数?引例:输入 A当 Nave) printf(“%d”,a1);if (a2ave) printf(“%d”,a2);if (a3ave) printf(“%d”,a3); 实际程序是不能这样写第 5章 数组 、字符串、指针 6引例:读者从上面的程序可以看到程序很冗长,如果不是 10个数,而是 100, 1000,甚至是 10000,此时按上面方法编写程序就非常冗长。 思考: 如果能使用 ai ( i=1,2,10 ) 的形式?使用循环来写程序C语言中表示下标变量就是通过定义 数组 来实现的。下面是使用数组来实现的程序:第 5章 数组 、字符串、指针 7引例:#include void main()int n,i;/*定义变量 s,ave和有 10个元素的一维数组 a*/float s=0, ave, a10;for(i=0;iave) printf(“%f “,ai);第 5章 数组 、字符串、指针 8在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的 同类数据 元素的集合称为 数组 。在语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为 :数值数组、 字符数组、 指针数组、结构数组 等各种类别。按数组的维数可分为: 一维数组、二维数组、多维数组。数组在内存中占用一片连续的存储单元 ,最低地址对应于数组的第一个元素,最高地址对应于最后一个元素,数组可以是一维的,也可以是多维的。 .1 概 述 第 5章 数组 、字符串、指针 95.2 一维数组只有一个下标变量的数组,称为一维数组。 5.2.1 一维数组定义一般形式为:类型符 数组名 常量表达式 , ; 其中, 类型说明符 是任一种基本数据类型或构造数据类型, 数组名 是用户定义的数组标识符; 方括号中的 常量表达式表示数据元素的个数,也称为数组的长度。例如: int a10; 说明整型数组 a, 有 10个元素。float b10,c20; 说明实型数组 b, 有 10个元素,实型数组 c, 有 20个元素。char ch20; 说明字符数组 ch, 有 20个元素。 第 5章 数组 、字符串、指针 10说明:( 1) 数组的类型实际上是指数组元素的取值类型 。对于同一个数组,其所有元素的数据类型都是相同的。( 2) 数组名的书写规则应符合标识符的书写规定, 数组名不能与同一函数中其它变量名相同 。 例如:int a;float a10; 是错误的。( 3) C语言中规定数组的下标从 0开始, 方括号中常量表达式表示数组元素的个数。例如: int a5 表示数组 a有 5个元素。因下标从 0开始计算。因此 5个元素分别为 a0,a1,a2,a3,a4。 5.2.1 一维数组的声明第 5章 数组 、字符串、指针 11( 4) 不能在方括号中用变量来表示元素的个数 , 但是可以是符号常数或常量表达式。例如:#define FD 5int a3+2,b7+FD;是合法的。但是下述说明方式是错误的。int n=5;int an;5.2.1 一维数组的声明( 6) 数组中各元素在内存占一片连续的存储空间,一维数组在内存中存放的顺序是下标大小的顺序。( 5) 允许在同一个类型说明中,说明多个数组和多个变量 。例如: int a,b,c,d,k110,k220;第 5章 数组 、字符串、指针 121、数组声明时初始化数组初始化赋值是指 在数组说明时给数组元素赋予初值 。 数组初始化是在编译阶段进行的。这样将减少运行时间,提高效率。数组初始化的一般形式为: 类型符 数组名 常量表达式 =值,值 值 ;其中 : 在 中的各数据值即为各元素的初值,各值 之间用逗号间隔。例如: int a10= 0,1,2,3,4,5,6,7,8,9 ;相当于 a0=0; a1=1;. a9=9; 5.2.2 一维数组的初始化第 5章 数组 、字符串、指针 13语言对数组的初始赋值的几点规定:( 1) 可以只给部分元素赋初值。当 中值的个数少于元素个数时,只给前面部分元素赋值。例如: int a10=0,1,2,3,4; 表示只给 a0 a45个元素赋值,而后 5个元素自动赋 0值。( 2) 如果定义数组前加关键字 static, 表示是静态存储类型数组(有关静态存储的概念在本书 6.6.2节介绍),对于数值类型数组,其元素初值系统自动全部赋值为 0值。( 3) 只能给元素逐个赋值,不能给数组整体赋值。 例如给十个元素全部赋 1值,只能写为:int a10=1,1,1,1,1,1,1,1,1,1;而不能写为: int a10=1;5.2.2 一维数组的初始化第 5章 数组 、字符串、指针 14( 4) 如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如: int a5=1,2,3,4,5; 可写为: int a=1,2,3,4,5;( 5) 当 中值的个数多于元素个数时, 系统出错。例如:5.2.2 一维数组的初始化int a5=1,2,3,4,5,1 ;第 5章 数组 、字符串、指针 155.2.2 一维数组的初始化2、使用赋值语句初始化用赋值语句初始化是在程序执行过程中实现的。例如:int a3;a0=5;a1=8;a2=9;对于数组的元素用赋值语句初始化,常常使用循环来完成,例如:int k,a10;for(k=1;k max) max = ai;p = i; printf(“ The Max Numbwer a%d=%dn“,p,max);5.2.4 一维数组的基本操作第 5章 数组 、字符串、指针 213一维数组的倒置编程分析:将第 0个元素与最后 1个元素的交换、第 1个元素与倒数第 2个元素的交换、 、即第 i个与第 n-i-1个元素的交换,直到 iaver) n+;printf(“The Class Average Score is:%fn“ ,aver);printf(“The Total Number is:%dn“,n); 第 5章 数组 、字符串、指针 245.2.5 一维数组的应用举例 例 5-5 例 5-4中如果还要统计 09, 1019, 2029, .8089, 9099分数段及 100分的学生人。编程分析: 则可另用数组 bn来存各分数段的人数,并用bn0存 09分的人数, bn1存 1019分的人数, bn9存9099分的人数, bn10存 100分的人数。 第 5章 数组 、字符串、指针 255.2.5 一维数组的应用举例 #define NUM 20 /* 声明代表班上学生人数的符号常量 */main()int aNUM,bn11=0,i,k;float sum,aver;printf(“Enter Student Scoren“); /* 提示用户输入学生成绩 */for(i=0;iaj) p=j;if(i!=p)s=ai; ai=ap; ap=s; /交换两个元素for(i=0;i#define N 20 /*声明代表数据个数的符号常量 */void main() int i,j,p,t,aN;printf(“input
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 旅游出行创新创业项目商业计划书
- 成品分销渠道创新创业项目商业计划书
- 家庭环保认证服务创新创业项目商业计划书
- 时尚产业招商创新创业项目商业计划书
- 时尚杂志电商创新创业项目商业计划书
- 差错检测设备创新创业项目商业计划书
- 水稻功能材料应用创新创业项目商业计划书
- 智能化办公家具展销会创新创业项目商业计划书
- 2025合同样本:餐饮合伙协议示范文本
- 湖北安全员题目及答案
- 建筑室外围蔽板材(简化)
- YS/T 397-2015海绵锆
- GB/T 3217-1992永磁(硬磁)材料磁性试验方法
- GB/T 250-2008纺织品色牢度试验评定变色用灰色样卡
- GB/T 2091-2008工业磷酸
- GB/T 19816.2-2005涂覆涂料前钢材表面处理喷射清理用金属磨料的试验方法第2部分:颗粒尺寸分布的测定
- 市政工程工程量计算规范课件
- 隐身技术概述课件
- 《红细胞血型系统》课件
- 古诗词诵读《江城子乙卯正月二十日夜记梦》课件-统编版高中语文选择性必修上册
- 《家庭暴力中的正当防卫问题分析(论文)9500字》
评论
0/150
提交评论