烟台大学:《C语言程序设计》课程电子教案(PPT课件讲稿)第五章 数组、字符串、指针(主讲:荆蕾)

魏祥 荆蕾 烟台大学文经学院 1
1 荆蕾 烟台大学文经学院

什么是数组? 是一种数据类型,属于构造类型的一种,由基本 类型的数据按照顺序组合而成 数组:相同类型的数据的集合,数组中每个数据 称为数组的元素。 令用来处理类型相同的一批数据
3 ❖是一种数据类型,属于构造类型的一种,由基本 类型的数据按照顺序组合而成 ❖数组:相同类型的数据的集合,数组中每个数据 称为数组的元素。 ❖用来处理类型相同的一批数据 什么是数组?

引例: 处理某班10名学生某门课的成绩,求所有学生的平均成 绩及最高成绩 nan float sum, ave, al, a2, a3, a4, a5, a6, a7, a8, a9, a10; scanf(“%f%%f%f%f”,&al,&a2,a3,&a4,&a5); scanf(%f%f%f%f”,ca6,&a7,&a8,&a9,&a10); Sum=a1+a2+a3+a4+a5+a6+a7+a8+a9+a10; ave=sum/10 max =al if (a2> max)max=a2; if(a3> max)max=a3; 实际程序是不能这样写
4 处理某班10名学生某门课的成绩,求所有学生的平均成 绩及最高成绩 引例: main( ) { float sum, ave, a1, a2, a3,a4,a5,a6,a7,a8,a9, a10; scanf(“%f%f%f%f%f”,&a1,&a2,&a3,&a4,&a5); scanf(“%f %f%f%f%f”,&a6,&a7,&a8,&a9,&a10); sum=a1+a2+a3+a4+a5+a6+a7+a8+a9+a10; ave=sum/10; max = a1 ; if (a2> max ) max=a2; if (a3> max ) max=a3; ……….. ‘ 实际程序是不能这样写 }

引例: 思考: 学生成绩的下标是可以变化的 ai(i=1,2,…10) 能否使用循环来写程序? C语言中如何表示下标变量呢? 使用数组!
5 引例: 思考: 学生成绩的下标是可以变化的 ai ( i=1,2,…..10 ) 能否使用循环来写程序? C语言中如何表示下标变量呢? 使用数组!

52—维数组 521一维数组定义 维数组:只有一个下标的数组。 般形式为:类型符数组名[常量表达式l; 数组的类型实际上是 、数组名不能与同一函表示数组元素的个数,可 指数组元素的取值类数中其它变量名相同 以是整形常量、符号常量、 型。对于同一个数组,2、数组表数组在内常量表达式,不能为变量 其所有元素的数据类存中存放的首地址 #define n 30 型都是相同的。 int n=30: int ane int an: 例如:inta[10; 7
7 5.2 一维数组 5.2.1 一维数组定义 一维数组:只有一个下标的数组。 一般形式为:类型符 数组名 [常量表达式] ; 数组的类型实际上是 指数组元素的取值类 型。对于同一个数组, 其所有元素的数据类 型都是相同的。 1、数组名不能与同一函 数中其它变量名相同 2、数组名代表数组在内 存中存放的首地址 表示数组元素的个数,可 以是整形常量、符号常量、 常量表达式,不能为变量 例如: int a[10]; eg: #define N 30 int a[N]; eg: int n = 30 ; int a[n];

内存 我们定义数组 首地址a int a 10l 后,计算机会干什么呢? all o。 特点: 分配的地址空间连续 按照下标从小到大存放 a⑨9 首地址用数组名表示 8
8 我们定义数组 int a[10]; 后,计算机会干什么呢? 。。。。 。。。。 首地址a a[0] a[1] a[9] 内 存 特点: 分配的地址空间连续 按照下标从小到大存放 首地址用数组名表示

52.3数组元素的引用 引用一维数组元素的方法为 数组名[下标] eg:定义数组inta01; a数组里面有10个元素,分别为:a|0la[a2]…:81a91 、C语言中下标从0开始,数组a的最后一个元素是a9] 2、C语言中对数组的引用不检验数组边界。 3、下标只能为整型变量、常量或整型表达式。 a[1=3;:for(=0:<10++)a-1]=a[i; s=S a0:
9 引用一维数组元素的方法为: 5.2.3 数组元素的引用 eg:定义数组 int a[10] ; a 数组里面有10个元素,分别为:a[0] a[1] a[2] …. a[8] a[9] 1、C语言中下标从0开始,数组a的最后一个元素是a[9]。 2、C语言中对数组的引用不检验数组边界。 3、下标只能为整型变量、常量或整型表达式。 数组名[下标] a[1]=3; for(i=0;i<10;i++) s=s + a[i]; a[i-1]=a[i];

52.2一维数组的初始化 数组元素赋初值有两种方法: 数组定义时初始化、赋值语句初始化。 1、数组定义时初始化 数组初始化的一般形式为: 类型符数组名常量表达式}={值,值,…,值}; 例如:inta[10={3,5,2,8,5,6,3,7,8,0} 注意: 如果只给部分元素赋初值,剩余元素默认为0; 给全部元素赋初值时,元素个数可以省略。 1/>初值的个数必须小于元素的个数
11 数组元素赋初值有两种方法: 数组定义时初始化、 赋值语句初始化。 1、数组定义时初始化 数组初始化的一般形式为: 类型符 数组名[常量表达式]={值,值,……,值}; 例如: int a[10]={ 3,5,2,8,5,6,3,7,8,0 }; 5.2.2 一维数组的初始化 注意: ➢如果只给部分元素赋初值,剩余元素默认为0; ➢给全部元素赋初值时,元素个数可以省略。 ➢初值的个数必须小于元素的个数

52.2一维数组的初始化 2、使用赋值语句初始化 用赋值语句初始化是在程序执行过程中实现的。 例如:inta[10]; a[0]=5;a[1]=8;a[2]=9 eg:给数组a中的10个元素全部赋值为1 eg:接收用户从键盘上输入的10个数据,并赋值给数组a。 int a[10l, k; int k, a[10]: for(k=0k<10水k++) for(k=0;k<10;k++) scanf(“%d”,&ak) 14只能对单个元素赋值,不能对数组整体赋值
14 5.2.2 一维数组的初始化 2、使用赋值语句初始化 用赋值语句初始化是在程序执行过程中实现的。 例如:int a[10]; a[0]=5;a[1]=8;a[2]=9; int a[10],k; for(k=0;k<10;k++) scanf(“%d”,&a[k]); int k,a[10]; for(k=0;k<10;k++) a[k]=1; eg:给数组a中的10个元素全部赋值为1. 只能对单个元素赋值,不能对数组整体赋值。 eg:接收用户从键盘上输入的10个数据,并赋值给数组a

524一维数组的基本操作 例5-2输入N个数据存入数组中,输出其中最大元素 及其下标 开始 输入N个数组元素 循环初始化:i=0、max=al0l、imax If (imax max=ai Imax=l i++ 16 打印、退出 i++
16 5.2.4 一维数组的基本操作 例5-2 输入N个数据存入数组中,输出其中最大元素 及其下标 开始 输入N个数组元素 循环初始化:i=0、max=a[0]、imax=0 If (imax) max=a[i]; imax=i; i++ Y 打印、退出 N Y N i++
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《模式识别》课程教学资源(PPT讲稿)Learning with information of features.ppt
- 合肥工业大学:使用大数据进行计算建模(PPT讲稿)Computing/Modeling with Big Data(主讲:吴信东).pptx
- 人工神经网络(ANN)方法简介(PPT课件讲稿).ppt
- 清华大学:《数据中心网络 Data Center Networking》课程教学资源(PPT课件讲稿).pptx
- 上饶师范学院:《数据库系统原理 An Introduction to Database System》课程教学资源(PPT课件讲稿,共九章).ppt
- 北京大学:计算智能实验室(PPT讲稿)烟花算法算子分析.pptx
- 《Chemdraw 软件教程》教学资源(PPT讲稿)第一部分 ChemDraw简介.ppt
- 《数据库系统原理》课程PPT教学课件(SQLServer)第7章 Transact-SQL程序设计.ppt
- 清华大学出版社:《计算机导论 Introduction to Computer Science》课程配套教材教学资源(PPT课件讲稿,第3版)第4章 操作系统与网络知识.ppt
- 山东大学:《微机原理及单片机接口技术》课程教学资源(PPT课件讲稿)第三章 计算机系统的组成与工作原理 3.1 理解模型机的结构及工作过程 3.2 掌握单片机的结构.ppt
- 机器翻译研讨会(PPT讲稿)神经机器翻译前沿进展(PPT讲稿).pptx
- 西安电子科技大学:《计算机操作系统》课程PPT教学课件(讲稿)第六章 文件管理.ppt
- 厦门理工学院:《网页设计》培训课件教学资源(PPT课件).ppt
- 《数字图像处理》课程教学资源(PPT课件讲稿)第5章 图像编码与压缩.ppt
- 香港浸会大学:Community Search over Big Graphs:Models, Algorithms, and Opportunities.ppt
- 清华大学出版社:《JAVA程序设计实例教程》课程教材电子教案(PPT课件讲稿,共七章,主编:关忠).ppt
- 香港中文大学:Arm board tutorial Part 1 Using the ARM board And start working with C Tutorial 5 and 6.pptx
- 同济大学:《大数据分析与数据挖掘 Big Data Analysis and Mining》课程教学资源(PPT课件讲稿)Evaluation & other classifiers.pptx
- 面积对象编程(PPT讲稿)Object-Oriented Programming and Classes.ppt
- 《计算机网络概述》教学资源(PPT课件讲稿).ppt
- 《数据结构》课程教学资源(PPT课件讲稿)第六章 树与二叉树.ppt
- 南京大学:《计算机图形学》课程教学资源(PPT课件讲稿)第6讲 图形观察与几何变换.pptx
- 《高级软件工程》课程教学大纲 Advanced Software Engineering.doc
- 《Android 程序设计基础》课程教学资源(PPT课件讲稿)第8章 数据存储和访问.ppt
- 新乡学院:《PHP动态网站开发》课程教学资源(教学大纲).pdf
- 南京大学:《面向对象技术 OOT》课程教学资源(PPT课件讲稿)构件化软件 Component Software.ppt
- MSC Software Corporation:Dynamic System Modeling, Simulation, and Analysis Using MSC.EASY5(Introductory Class).ppt
- 南京航空航天大学:《C++》课程电子教案(PPT课件讲稿)第2章 文件操作.pptx
- 《Java面向对象程序设计》课程教学资源(PPT课件讲稿)第四章 Java图形用户界面设计 4.3 事件处理.pptx
- 中国科学技术大学:《网络信息安全 NETWORK SECURITY》课程教学资源(PPT课件讲稿)Windows 操作系统.ppt
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(PPT课件讲稿)第七讲 存储器管理.ppt
- 华南理工大学:神经计算的生理和动力学指标(PPT讲稿).ppt
- 《编译原理与技术》课程教学资源(PPT课件讲稿)运行环境.ppt
- 同济大学:《大数据分析与数据挖掘 Big Data Analysis and Mining》课程教学资源(PPT课件讲稿)Data Preprocessing.ppt
- 中国科学技术大学:《算法基础》课程教学资源(PPT课件讲稿)第五讲 概率分析与随机算法.pptx
- Robust Networking Architecture and Secure Communication Scheme for Heterogeneous Wireless Sensor Networks.pptx
- 《数据结构》课程教学资源(PPT讲稿)二叉树和二叉搜索树 Trees, Binary Trees, and Binary Search Trees.ppt
- 《网页设计与制作》课程PPT教学课件(Fireworks Mx 2004)第九章 Firework图像处理.ppt
- 西安交通大学:《微机原理与接口技术》课程教学资源(PPT课件讲稿)第4章 存储器系统接口.ppt
- 《计算机网络基础》课程PPT教学课件(讲稿)第4章 IP协议.ppt