(精品)c语言电子教案7.ppt
《(精品)c语言电子教案7.ppt》由会员分享,可在线阅读,更多相关《(精品)c语言电子教案7.ppt(38页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、UNIX C编程编程yyyy-M-1age *知识点知识点:&一维数组的定义和引用一维数组的定义和引用&二维数组的定义和引用二维数组的定义和引用&字符数组字符数组重点:重点:数组的组成和特点数组的组成和特点 一维数组和二维的定义、赋值一维数组和二维的定义、赋值 字符串与字符数组的关系字符串与字符数组的关系 数组在程序中的使用数组在程序中的使用难点:难点:s数组元素存储格式对程序设计的使用数组元素存储格式对程序设计的使用s字符串在数组中的组成以及字符串操作语句的使用字符串在数组中的组成以及字符串操作语句的使用第第7章章 数数 组组UNIX C编程编程yyyy-M-2age *q char,int
2、,float,double等在等在C语言中称为基本数据类型。语言中称为基本数据类型。q 由基本数据类型导出的各种数据类型,如由基本数据类型导出的各种数据类型,如数组数组、结构、联合等、结构、联合等称为构造数据类型。称为构造数据类型。q 什么是数组?什么是数组?v 数组是有序数据的集合。数组是有序数据的集合。v 数组中的每一个元素都属于同一个数据类型。数组中的每一个元素都属于同一个数据类型。v 用一个统一的数组名和下标来唯一地确定数组中的元素。用一个统一的数组名和下标来唯一地确定数组中的元素。v 通过访问同一数组名的不同下标来操作不同的变量。通过访问同一数组名的不同下标来操作不同的变量。v 数组
3、在内存中一定是连续存储的。数组在内存中一定是连续存储的。第第7章章 数数 组组UNIX C编程编程yyyy-M-3age *7.1 一维数组的定义和引用一维数组的定义和引用q 一维数组的定义一维数组的定义v 定义方式:定义方式:类型类型说明符说明符 数组名数组名常量表达式常量表达式;v 例如:例如:int a10;它表示数组名为它表示数组名为a,此数组有此数组有10个元素。个元素。q 说明说明v 数组名定名规则和变量名相同,遵循标识符定名规则。数组名定名规则和变量名相同,遵循标识符定名规则。v 数组名后是用数组名后是用方括弧方括弧括起来的常量表达式,不能用圆括弧,下括起来的常量表达式,不能用圆
4、括弧,下面用法不对:面用法不对:int a(10);v 常量表达式表示元素的个数,即数组长度。例如,在常量表达式表示元素的个数,即数组长度。例如,在a10中,中,表示表示a0 a9。注意不能使用数组元素。注意不能使用数组元素a10,C对数组不做越对数组不做越界检查。界检查。v 常量表达式中可以包括常量和符号常量,不能包含变量。例如:常量表达式中可以包括常量和符号常量,不能包含变量。例如:scanf(%d,&n);int an;UNIX C编程编程yyyy-M-4age *q 一维数组的存储方式一维数组的存储方式v 数组在内存中是连续存储的,每个数组元素占有相同大小的数组在内存中是连续存储的,每
5、个数组元素占有相同大小的空间。空间。v 数组占据的总的内存空间数组占据的总的内存空间=每个数组元素所占空间每个数组元素所占空间*数组元素个数数组元素个数v 数组第一个元素的起始地址就是整个数组的首地址。数组第一个元素的起始地址就是整个数组的首地址。v 数组名表示数组的首地址,数组名是一个地址常量。数组名表示数组的首地址,数组名是一个地址常量。7.1 一维数组的定义和引用一维数组的定义和引用UNIX C编程编程yyyy-M-5age *q 例例 int a4;a0=10;a1=20;a2=30;a3=40;7.1 一维数组的定义和引用一维数组的定义和引用10203040a0起始地址起始地址为为1
6、000a1起始地址起始地址为为1002a2起始地址起始地址为为1004a3起始地址起始地址为为1006 整个数组整个数组a占用的空间为占用的空间为2Bytes*4个个=8Bytes,地址,地址10001007。数组名数组名a为数组的为数组的首地址,即首地址,即1000UNIX C编程编程yyyy-M-6age *q 一维数组元素的引用一维数组元素的引用v 数组必须先定义,然后使用。数组必须先定义,然后使用。v C语言只能逐个引用数组元素,不能一次引用整个数组。语言只能逐个引用数组元素,不能一次引用整个数组。v 数组元素的表示形式为:数组元素的表示形式为:数组名数组名下标下标v 下标可以是整型常
7、量或整型表达式。下标可以是整型常量或整型表达式。v 例如例如:a0=a5+a7-a2*3 7.1 一维数组的定义和引用一维数组的定义和引用UNIX C编程编程yyyy-M-7age *main()int i,a10;for(i=0;i=0;i-)printf(%d,ai);7.1 一维数组的定义和引用一维数组的定义和引用 9 8 7 6 5 4 3 2 1 0q 例例 数组元素的引用。数组元素的引用。UNIX C编程编程yyyy-M-8age *q 一维数组的初始化一维数组的初始化v 数组可以在定义时赋初值,称为初始化数组可以在定义时赋初值,称为初始化v 数组不初始化,其元素值为随机数数组不初
8、始化,其元素值为随机数v 对对static数组元素不初始化,系统会自动赋以数组元素不初始化,系统会自动赋以0值值v 在定义数组时对数组元素赋以初值。在定义数组时对数组元素赋以初值。int a10=0,1,2,3,4,5,6,7,8,9;v 可以只给一部分元素赋值。可以只给一部分元素赋值。int a10=0,1,2,3,4;其他元素为其他元素为0。v 在对全部数组元素赋初值时,可以不指定数组长度在对全部数组元素赋初值时,可以不指定数组长度 int a=1,2,3,4,5;元素个数为元素个数为5,即,即a5。v 若被定义的数组长度与提供初值的个数不相同,则数组若被定义的数组长度与提供初值的个数不相
9、同,则数组长度不能省略。长度不能省略。int a10=1,2,3,4,5;7.1 一维数组的定义和引用一维数组的定义和引用UNIX C编程编程yyyy-M-9age *q一维数组程序举例一维数组程序举例例例 用数组来处理求用数组来处理求fibonacci数列问题。数列问题。7.1 一维数组的定义和引用一维数组的定义和引用 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765main()int i,f20=1,1;for(i=2;i20;i+)fi=fi-2+fi-1;for(i=0;ia1,则交则交换;然后比较第二
10、个数与换;然后比较第二个数与第三个数;依次类推,直第三个数;依次类推,直至第至第n-1个数和第个数和第n个数比个数比较为止较为止。第一趟冒泡排序,第一趟冒泡排序,结果最大的数被安置在最结果最大的数被安置在最后一个元素位置上。后一个元素位置上。q对前对前n-1个数进行第二趟冒个数进行第二趟冒泡排序,结果使次大的数泡排序,结果使次大的数被安置在第被安置在第n-1个元素位置。个元素位置。q重复上述过程,共经过重复上述过程,共经过n-1趟冒泡排趟冒泡排序后,序后,排序结束。排序结束。UNIX C编程编程yyyy-M-11age *7.1 一维数组的定义和引用一维数组的定义和引用思考?思考?如果在某趟排
11、序后,这如果在某趟排序后,这10个数已经有序,如何结束排序,进行个数已经有序,如何结束排序,进行输出序列?输出序列?input 10 numbers:10 9 8 1 2 3 4 5 6 7j=4 the sorted numbers:1 2 3 4 5 6 7 8 9 10输入输入n个数给个数给a1到到anfor j=1 to n-1flag=1for i=1 to n-ja i a i+1 flag=0a i a i+1 假假真真flag假假真真结束结束for循环循环输出输出a1到到anUNIX C编程编程yyyy-M-12age *例例 用简单选择法对用简单选择法对10个数排序个数排序排
12、序过程:排序过程:v 首先通过首先通过n-1次比较,从次比较,从n个数中找出最小的,个数中找出最小的,将它与第一将它与第一个数交换个数交换 第一趟选择排序,结果最小的数被安置在第一第一趟选择排序,结果最小的数被安置在第一个元素位置上个元素位置上v 再通过再通过n-2次比较,从剩余的次比较,从剩余的n-1个数中找出次小的数,将个数中找出次小的数,将它与第二个数交换它与第二个数交换 第二趟选择排序第二趟选择排序v 重复上述过程,共经过重复上述过程,共经过n-1趟排序后,排序结束趟排序后,排序结束7.1 一维数组的定义和引用一维数组的定义和引用UNIX C编程编程yyyy-M-13age *例例初始
13、:初始:49 38 65 97 76 13 27 kji=11349一趟后:一趟后:13 38 65 97 76 49 27 i=22738二趟后:二趟后:13 27 65 97 76 49 38 三趟后三趟后:13 27 38 97 76 49 65 四趟后:四趟后:13 27 38 49 76 97 65 五趟后:五趟后:13 27 38 49 65 97 76 六趟后:六趟后:13 27 38 49 65 76 97 kkkkjjjjjjjjjj7.1 一维数组的定义和引用一维数组的定义和引用UNIX C编程编程yyyy-M-14age *7.1 一维数组的定义和引用一维数组的定义和引用
14、输入输入n 个数给个数给a1 到到 anfor i=1 to n-1for j=i+1 to najak假假真真k=j输出输出a1 到到 ank=iaiaki!=k真真假假UNIX C编程编程yyyy-M-15age *q 二维数组的定义二维数组的定义v二维数组定义的一般形式:二维数组定义的一般形式:类型说明符类型说明符 数组名数组名常量表达式常量表达式常量表达式常量表达式 例如:例如:int a23,b510;v a为为23(2行行3列列)的数组,的数组,b为为510(5行行10列列)的数组。的数组。v 注意不能写成注意不能写成 int a2,3,b5,10;7.2 二维数组的定义和引用二维
15、数组的定义和引用a00a01a02a10a11a12第第0行行第第1行行第第0列列第第1列列第第2列列UNIX C编程编程yyyy-M-16age *q 二维数组的存储方式二维数组的存储方式v 数组在内存中是连续存储的。每个数组元素占有相同大小的数组在内存中是连续存储的。每个数组元素占有相同大小的空间。空间。v 数组占据的总的内存空间数组占据的总的内存空间=每个元素所占空间每个元素所占空间*下标下标1*下标下标2v 数组第一个元素的起始地址就是整个数组的首地址。数组第一个元素的起始地址就是整个数组的首地址。v 数组名表示数组的首地址,数组名是一个地址常量。数组名表示数组的首地址,数组名是一个地
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 语言 电子 教案
限制150内