《C语言程序设计》课程电子教案(PPT课件讲稿)第七章 数组

Chap7数组 7.1投票情况统计 7.2找出矩阵中最大值所在的位置 7.3判断回文
Chap 7 数 组 7.1 投票情况统计 7.2 找出矩阵中最大值所在的位置 7.3 判断回文

本章要点 什么是数组?为什么要使用数组?如何定义数组? 如何引用数组元素? 二维数组的元素在内存中按什么方式存放? 什么是字符串?字符串结束符的作用是什么? 如何实现字符串的存储和操作,包括字符串的输 入和输出? 怎样理解C语言将字符串作为一个特殊的一维字符 数组?
本章要点 ◼ 什么是数组? 为什么要使用数组? 如何定义数组? ◼ 如何引用数组元素? ◼ 二维数组的元素在内存中按什么方式存放? ◼ 什么是字符串? 字符串结束符的作用是什么? ◼ 如何实现字符串的存储和操作,包括字符串的输 入和输出? ◼ 怎样理解C语言将字符串作为一个特殊的一维字符 数组?

7.1投票情况统计 例71:调查电视节目欢迎程度。某电视台要进行 次对该台8个栏目(设相应栏目编号为18)的受 欢迎情况,共调査了1000位观众,现要求编写程 序,输入每一位观众的投票,每位观众只能选择 个最喜欢的栏目投票,统计输出各栏目的得票 情况。 7.1.1程序解析 7.12一维数组的定义和引用 7.13一维数组的初始化 7.14使用一维数组编程
例7-1:调查电视节目欢迎程度。某电视台要进行一 次对该台8个栏目(设相应栏目编号为1~8)的受 欢迎情况,共调查了1000位观众,现要求编写程 序,输入每一位观众的投票,每位观众只能选择 一个最喜欢的栏目投票,统计输出各栏目的得票 情况。 7.1.1 程序解析 7.1.2 一维数组的定义和引用 7.1.3 一维数组的初始化 7.1.4 使用一维数组编程 7.1 投票情况统计

if include<stdio. h: int main( void 7.1.1程序解析一排序 int count [9; 设立数 L/m=, int i, response, input your response: 3 for(=1;i<=8;i+t) nput your response: 6 count I= 0 /* Ei input your response: 9 for(i=1; i<= 1000; i ++)t this is a bad response: 9 printf( input your respo input your response: 8 scanf( %d", &response if(response< 1 respo printf( this is a bad re result. else 12 count[response]++;20 34 printf( result: In") for(=1;i<=8;i+t) printf("%4d%din", i, count[] eturn 0:
7.1.1 程序解析-排序 # include int main( void ) { int count[9]; /* 设立数组,栏目编号对应数组下标 */ int i,response; for(i = 1;i 8) /* 检查投票是否有效*/ printf("this is a bad response: %d\n",response); else count[response]++; /* 对应栏目得票加1 */ } printf("result:\n"); /* 输出各栏目得票情况 */ for(i = 1;i <= 8;i++) printf("%4d%4d\n",i,count[i]); return 0; } input your response: 3 input your response: 6 input your response: 9 this is a bad response: 9 input your response: 8 … result: 1 2 2 0 3 4 …

frd=1例7中为何不使用 pr count[o 数组 0 2345678 count 041210 count[o count[1] count[8 数组:相同类型数据的有序集合,在内存中 连续存放。 口由数组名和下标惟一地确定每个数组元素 口每个元素都属于同一类型 批相同类型的变量使用同一个数组变量名, 用下标来相互区分。 口优点:表述简洁,可读性高;便于使用循环结构
0 1 2 3 4 5 6 7 8 2 0 4 1 2 1 0 0 for(i = 1;i <= 8;i++) printf("%4d%4d\n",i,count[i]); count count[0] count[1] count[8] 例7-1中为何不使用 count[0]? 数组 ◼ 数组:相同类型数据的有序集合,在内存中 连续存放。 由数组名和下标惟一地确定每个数组元素 每个元素都属于同一类型 ◼ 一批相同类型的变量使用同一个数组变量名, 用下标来相互区分。 优点:表述简洁,可读性高;便于使用循环结构

7.12一维数组的定义和引用 1、定义 类型名数组名数组长度数组长度为常量 类型名:数组元素的类型 数组名:数组(变量)的名称,标识符 数组长度:常量表达式,给定数组的大小 int a[10] 定义一个含有10个整型元素的数组a char c[200 定义一个含有200个字符元素的数组c float f5]; 定义一个含有5个浮点型元素的数组f
7.1.2 一维数组的定义和引用 1、定义 类型名 数组名[数组长度] 类型名:数组元素的类型 数组名:数组(变量)的名称,标识符 数组长度:常量表达式,给定数组的大小 int a[10]; 定义一个含有10个整型元素的数组 a char c[200]; 定义一个含有200个字符元素的数组 c float f[5]; 定义一个含有5个浮点型元素的数组 f 数组长度为常量

2、数组的内存结构 内存地址下标值 nta[10]; 4028 4026 假设系统规定int类型占用2个 4024 字节,则对于数组a,其内存 4022 分配形式 4020 5 4018 只要知道了数组第一个元素的 4016 地址以及每个元素所需的字节40142 数,其余各个元素的存储地址4012 均可计算得到。 a4010 0 数组名是一个地址常量,存放 数组内存空间的首地址。不允许被修改
2、数组的内存结构 内存地址 下标 值 4028 9 4026 8 4024 7 4022 6 4020 5 4018 4 4016 3 4014 2 4012 1 a 4010 0 int a[10]; 假设系统规定int类型占用2个 字节,则对于数组a,其内存 分配形式 只要知道了数组第一个元素的 地址以及每个元素所需的字节 数,其余各个元素的存储地址 均可计算得到。 数组名是一个地址常量,存放 数组内存空间的首地址。不允许被修改

3、引用 ■先定义,后使用 ■只能引用单个的数组元素,不能一次引用整个数组 数组名[下标] 下标:整型表达式 下标不要越界 取值范围:[0,数组长度1] 不能使用a[10] int a[10]; 10个元素:ao]、a1 ■数组元素的使用方法与同类型的变量相同 scanf( %d",&a[] count[++, temp= aindex]; aindexakk]; ak=temp printf("%d",a0
3、引用 ◼ 先定义,后使用 ◼ 只能引用单个的数组元素,不能一次引用整个数组 数组名[下标] 下标:整型表达式 取值范围:[0,数组长度-1] int a[10]; 10个元素:a[0]、a[1]、…… a[9] ◼ 数组元素的使用方法与同类型的变量相同 scanf("%d", &a[i]); count[i]++; temp = a[index]; a[index]= a[k]; a[k] = temp; printf("%d ", a[i]); 下标不要越界 不能使用a[10]

区分数组的定义和数组元素的引用 定义数组 类型名数组名数组长度] 引用数组元素 数组长度为常量 数组名[下标] 下标不要越界 int a[10] a[0]=as9]=0 akk= temp
定义数组 类型名 数组名[数组长度] 引用数组元素 数组名[下标] int a[10]; a[0] = a[9] = 0; a[k] = temp; 区分数组的定义和数组元素的引用 下标不要越界 数组长度为常量

713一维数组的初始化 ■定义数组时,对数组元素赋初值 类型名数组名[数组长度]={初值表}; inta[10]={1,234,5,6,7,8,9,10} a0]=1,a[1=2y…a9=10 ■静态数组、动态数组的初始化 static int b5]={1,2,3,4,5}; 静态存储的数组如果没有初始化,所有元素自动赋0 static int b5] 动态存储的数组如果没有初始化,所有元素为随机值 auto int c[5];等价与intc[5]
7.1.3 一维数组的初始化 ◼ 定义数组时,对数组元素赋初值 类型名 数组名[数组长度] = {初值表}; int a[10] = {1,2,3,4,5,6,7,8,9,10}; a[0]=1, a[1]=2,...… a[9]=10 ◼ 静态数组、动态数组的初始化 static int b[5] = {1, 2, 3, 4, 5}; 静态存储的数组如果没有初始化,所有元素自动赋0 static int b[5]; 动态存储的数组如果没有初始化,所有元素为随机值 auto int c[5]; 等价与 int c[5];
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- Analysis of Algorithms(PPT讲稿)Data Structures and Data Management.ppt
- 《计算机组成原理》课程教学资源(PPT课件讲稿)第3章 计算机的算术运算.pptx
- 中国科学技术大学:《信号与图像处理基础 Signal and Image Processing》课程教学资源(PPT课件讲稿)图像压缩编码 Image Compression.pptx
- 中国科学技术大学:《信号与图像处理基础 Signal and Image Processing》课程教学资源(PPT课件讲稿)数字图像处理基础 Basics of Digital Image Processing.pptx
- 中国科学技术大学:云计算及安全(PPT讲稿)Cloud Computing & Cloud Security.pptx
- 《C语言程序设计》课程电子教案(PPT课件讲稿)第7章 用函数实现模块化程序设计.pptx
- 云计算 Cloud Computing(PPT讲稿)MapReduce进阶.ppt
- 四川大学:《数据库技术》课程教学资源(PPT课件讲稿)数据库设计.ppt
- 《程序设计基础》课程PPT教学课件(C++)第3讲 C++程序控制结构.ppt
- MSCIT 5210/MSCBD 5002:Knowledge Discovery and Data Mining:Chapter 4:Data Warehousing, On-line Analytical Processing and Data Cube.ppt
- 香港中文大学:Achieving Secure and Cooperative Wireless Networks with Trust Modeling and Game Theory.ppt
- 北京大学:《项目成本管理》课程教学资源(PPT课件讲稿)项目范围计划(主讲:周立新).ppt
- 《网上开店实务》课程教学资源(PPT讲稿)学习情境3 网店装修.ppt
- 中国科学技术大学:Linux内核源代码导读(PPT讲稿,陈香兰).ppt
- 《The C++ Programming Language》课程教学资源(PPT课件讲稿)Lecture 04 Object-Based Programming.ppt
- 北京航空航天大学:SimplyDroid - Efficient Event Sequence Simplification for Android Application.pptx
- 南京大学:《计算机图形学》课程教学资源(PPT课件讲稿)第7讲 图元填充与裁剪算法.pptx
- 香港浸会大学:Introduction to Linux and PC Cluster.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第8章 结构体、共用体与枚举类型.ppt
- 《计算机系统安全》课程教学资源(PPT课件讲稿)第二章 黑客常用的系统攻击方法.ppt
- 《计算机网络与因特网 Computer Networks and Internets》课程教学资源(PPT课件讲稿)第二讲 互联网应用软件.ppt
- 《计算机操作系统》课程教学资源(PPT课件讲稿)第四章 存储器管理.ppt
- 《单片机应用技术》课程PPT教学课件(C语言版)第10章 单片机测控接口.ppt
- 中国科技大学计算机系:《黑客反向工程》课程教学资源(PPT课件讲稿)黑客反向工程导论(陈凯明).ppt
- 香港科技大学:Record Linkage for Big Data.pptx
- 沈阳理工大学:《计算机网络》课程教学资源(PPT课件讲稿)第2章 IP技术.ppt
- 《编译技术》课程教学资源(PPT课件讲稿)第六章 运行时存储空间的组织和管理.ppt
- 《面向对象程序设计》课程教学大纲(适用专业:信息与计算科学).pdf
- 《Java Web应用开发技术与案例教程》教学资源(PPT讲稿)第7章 Java Web常用开发模式与案例.ppt
- 程序设计工具(PPT课件讲稿)Software Program Tool.ppt
- 山东大学:《网站设计与建设》课程教学资源(PPT课件讲稿)第三部分 网站设计技术 第20章 MySQL数据库.ppt
- 北京大学:《项目成本管理》课程教学资源(PPT课件讲稿)项目范围计划(主讲:周立新).ppt
- 《JAVA面向对象入门技术》教程教学资源(PPT课件讲稿)第二章 Java语言基础.ppt
- 《Managing XML and Semistructured Data》教学资源(PPT课件讲稿)Part 04 Compressing XML Data.ppt
- Introduction to Text Mining 文本挖掘.pptx
- 北京大学:烟花算法的变异算子(PPT讲稿)Mutation Operators of Fireworks Algorithm.pptx
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)绪论、第1章 量化设计与分析基础(主讲:周学海).ppt
- 清华大学出版社:《计算机应用基础实例教程》课程教学资源(PPT课件讲稿,第二版,共七章,主编:吴霞,制作:李晓新).ppt
- 《计算机算法设计与分析》课程教学资源(PPT课件)第8章回溯法.ppt
- 白城师范学院:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第二章 关系数据库(2.1-2.3).ppt