《C语言教案-第八周Word版》由会员分享,可在线阅读,更多相关《C语言教案-第八周Word版(7页珍藏版)》请在金锄头文库上搜索。
1、第八节 数组一维数组1:通过对本节课的学习,能够了解、掌握有关数组的相关概念及一维数组定义、初始化、引用和在程序中使用。1.1教学目的:1. 数组的相关概念2. 一维数组的定义、初始化、引用及应用 1.2教学内容:1. 概念:数组、数组元素、数组下标2. 一维数组的定义、初始化、引用3.一维数组在程序中的应用13教学重点:一维数组的定义、初始化、引用和一维数组在程序中的应用1.4教学方法:讲授法、课件演示15学习方法:听课、做笔记、课后作业16学习时间第十四周2:回顾上一节:15分钟1. do-while循环语句的意义、构成及应用2. break、continue循环语句的意义、构成及应用3.
2、 循环语句的嵌套意义及应用3:课程知识点讲解:推荐精选具体知识点1:数组相关概念 15分钟 1、数组:具有相同数据类型的数据的有序的集合。2、数组元素:数组中的元素。数组中的每一个数组元素具有相同的名称,不同的下标,可以作为单个变量使用,所以也称为下标变量。在定义一个数组后,在内存中使用一片连续的空间依次存放数组的各个元素。3、数组的下标:是数组元素的位置的一个索引或指示。4、数组的维数:数组元素下标的个数。根据数组的维数可以将数组分为一维、二维、三维、多维数组。 具体知识点2:一维数组的定义、初始化、引用 20分钟一维数组中的各个数组元素是排成一行的一组下标变量,用一个统一的数组名来标识,用
3、一个下标来指示其在数组中的位置。下标从0开始。一维数组通常和一重循环相配合,对数组元素进行处理。 引例:【案例6.1】输入5个学生某门课的成绩,要求按与输入次序相反的顺序输出。编程分析:定义5个变量,根据前面所学的顺序结构可以实现其功能。程序如下:main() float s1, s2, s3, s4, s5; printf(Enter five scores: ); scanf(%f , %f , %f, %f, %f, &s1, &s2, &s3, &s4, &s5); printf(nThe score in reverse order are: ); printf(%10.2f%10.
4、2f %10.2f %10.2f %10.2f n, s5,s4,s3,s2,s1); 定义一维数组的格式:类型说明 数组名整型常量表达式例如:int a100;定义了一个数组a,元素个数为100,数组元素类型为整型。说明:1.数组名:按标识符规则。本例a就是数组名。2.整型常量表达式:表示数组元素个数(数组的长度)。可以是整型常量或符号常量,不允许用变量。整型常量表达式在说明数组元素个数的同时也确定了数组元素下标的范围,下标从0开始整型常量表达式-1(注意不是1整型常量表达式)。推荐精选C语言不检查数组下标越界,但是使用时,一般不能越界使用,否则结果难以预料(覆盖程序区-程序飞出,覆盖数据区
5、-数据覆盖破坏,操作系统被破坏,系统崩溃)。本例数组元素个数是100个,下标从0-99。3.类型说明:指的是数据元素的类型,可以是基本数据类型,也可以是构造数据类型。类型说明确定了每个数据占用的内存字节数。比如整型2字节,实型4字节,双精度8字节,字符1字节。本例数组元素是整型,每个元素占2个字节,因为有100个数组元素,所以占用200字节。4.编译程序为数组分配了一片连续的空间。C语言还规定,数组名是数组的首地址。即a=&a0 一维数组的初始化: 数组可以在定义时初始化,给数组元素赋初值。数组初始化常见的几种形式:1.对数组所有元素赋初值,此时数组定义中数组长度可以省略。例如:int a5=
6、1,2,3,4,5;或int a=1,2,3,4,5;2.对数组部分元素赋初值,此时数组长度不能省略。例如:int a5=1,2;a0=1,a1=2,其余元素为编译系统指定的默认值0。3.对数组的所有元素赋初值0。例如:int a5=0;注意:如果不进行初始化,如定义int a5;那么数组元素的值是随机的,不要指望编译系统为你设置为默认值0。数组元素的引用 数组元素的引用形式:数组名下标注意:数组元素引用时,下标为整型的表达式,可以使用变量。具体知识点3:一维数组的应用 30分钟推荐精选案例讲解:【案例6.2】用数组完成案例6.1。编程分析:引用数组处理每个学生的成绩。程序如下:main()
7、int i; float score5; /*定义有5个元素的一维数组*/ printf(Enter five scores: ); for (i=0; i=0; i-) printf(%5.2fn, scorei); /*逆序输出存放在每个数组元素中的数据*/程序说明:1、定义数组后,系统在内存中为数组分配5个连续的存储单元。如图6.1所示。score0score1score2score3score4score 图6.12、score表示为一维数组名,数组包括5个元素,类型均为单精度型。数组的下标从0开始。score数组的最后一个元素为score4。请注意,即使数组下标越界,运行程序时系统也
8、不报错。3、数组元素代表一个存储单元。可以像普通变量一样使用,只不过数组元素用下标形式表示。通过循环对数组进行输入输出操作极为方便。【案例6.3】定义含有10个元素的数组,将数组中的元素按逆序重新存放后输出。编程分析:逆序输出和逆序存放是两个不同的操作。逆序输出(如案例6.2)只是由后向前依次输出数组元素的值,而不改变数组元素的值。逆序存放则是将数组最后一个元素的值放到第一个元素中,倒数第二个元素中的值放置第二个元素中,第一个元素的值放到最后一个元素中,数组元素的值发生了变化。本题可以采用如下算法:开辟与原数组相同大小的b数组,按逆序存放方式将原数组a的值赋给数组b(如图6.2),最后再将b数
9、组的值按顺序依次赋给a数组.【案例6.4】从键盘输入15个整数,并检查整数10是否包含在这些数据中,若是的话,它是第几个被输入的。推荐精选编程分析:用循环语句给15个数组元素赋值,逐个判断每个元素的值是否等于10 。若等于10,说明10包含在这些数据中,循环体执行第几次便是第几个被输入的。若不等于10,则不包含。【案例6.5】求10个整数的最大值与最小值,10个数用数组描述。编程分析:用for循环输入10个整数;(a) 先令max=min=x0;(b) 依次用xi和max,min比较(用循环结构),若maxxi,令min=xi;输出:max和min。【案例6.6】求某班50个学生C语言课程的平均成绩及每个学生与平均成绩之差。 编程分析:用for循环输入50个学生的成绩,求出平均成绩。用for循环输出50个学生的成绩及与平均成绩之差。4 本节总结 10分钟学生问题汇总: 问题1: 数组的起始下标 问题2: 数组最后一个元素的下标作业: 习题1:打印以下图案(平行四边形)* 习题2:输入一个字符串(至少含有6个有效字符)存入在一维数组中,然后将前6个字符逆序存放,例如,输入abcdefgh,则数组中最终存放fedcbagh 习题3:输入两个字符串,并将其中较小的字符串连接到大的字符串后面。 (注:可编辑下载,若有不当之处,请指正,谢谢!) 推荐精选