11 《C语言程序设计》教案 第四章 数组(1)—一维数组
- 格式:doc
- 大小:77.50 KB
- 文档页数:5
一维数组应用 c语言精品教案下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!一维数组应用 C语言精品教案一维数组是 C语言中非常重要且常用的数据结构。
23.一维数组数组用于解决大批量数据的处理,本节课要求学生掌握一维数组的定义和应用,通过这些知识的学习,掌握成批数据的处理的一般方法,进一步提高应用程序编写的基本能力。
一、数组的概念在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。
这些按序排列的同类数据元素的集合称为数组。
在C语言中,数组属于构造数据类型。
一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。
因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
二、一维数组的定义在C语言中使用数组必须先进行类型说明。
数组说明的一般形式为:类型说明符数组名[常量表达式],……;其中,类型说明符是任一种基本数据类型或构造数据类型。
数组名是用户定义的数组标识符。
方括号中的常量表达式表示数据元素的个数,也称为数组的长度。
例如:int a[10]; 说明整型数组a,有10个元素。
float b[10],c[20]; 说明实型数组b,有10个元素,实型数组c,有20个元素。
char ch[20]; 说明字符数组ch,有20个元素。
对于数组类型说明应注意以下几点:1.数组的类型实际上是指数组元素的取值类型。
对于同一个数组,其所有元素的数据类型都是相同的。
2.数组名的书写规则应符合标识符的书写规定。
3.数组名不能与其它变量名相同,例如因整形变量与数组变量同名,是错误的。
4.方括号中常量表达式表示数组元素的个数,如a[5]表示数组a 有5个元素。
但是其下标从0开始计算。
因此5个元素分别为a[0],a[1],a[2],a[3],a[4]。
5.不能在方括号中用变量来表示元素的个数, 但是可以是符号常量或常量表达式。
例如:是合法的。
但是下述说明方式是错误的。
6.允许在同一个类型说明中,说明多个数组和多个变量。
例如: int a,b,c,d,k1[10],k2[20];三、一维数组的存储1、从逻辑角度看,一维数组可以认为是一个一行多列的表格。
学科:计算机科学与技术课程:C语言程序设计课题:一维数组课时:2教学目标:1、掌握一维数组的定义和引用2、掌握一维数组的初始化方法3、了解与一维数组有关的应用编程方法教学重点:一维数组的定义和引用、初始化方法教学难点:与一维数组有关的应用编程方法教学方法:举例法,引导法教学步骤:1、通过一个例子提出问题来引出本节课的知识点2、讲授一维数组的定义和引用、初始化方法3、示例训练4、进行本节课的总结及作业布置教具:黑板计算机投影仪教学过程:一、导入:提问:保存一个班50位同学的一门功课的成绩,并且找出最高分和最低分,应如何实现?解题思路:定义50个变量,从键盘中输入值,然后再相互比较。
处理起来很复杂,是否有更简便的方法?引出本节课的知识点-----数组。
二、讲授:1、数组概述:·数组:是数目固定,类型相同的若干个变量的有序集合,用数组名标识。
序:是数组元素之间的位置关系,不是元素值的大小顺序。
数组名:是用于区别其它数组及变量的。
·数组元素:集合中的变量,属同一数据类型,用数组名和下标确定。
下标:是数组元素在数组中的位置。
·数组的维数:数组名后所跟下标的个数。
2、一维数组的定义一维数组是指由一个下标数组元素组成的数组。
其定义形式为:存储类型数据类型数组名[常量表达式]例如:static int score[50];它表示定义了一个名为score的数组,该数组有50个元素,其存储类型为静态型,数据类型为整型。
说明:(1)存储类型为任选项,可以是auto、static、extern存储类型,但是没有register 型。
(2)数据类型是用来说明数组元素的类型:int , char , float。
(3)数组名的命名应遵守标识符的命名规则,但是不能与其他变量同名。
(4)数组名后是用方括号[ ]括起来的常量表达式。
常量表达式表示的是数组元素的个数,即数组的长度。
在上例中定义了数组score [50],第一个元素为score [0],最后一个为score [49]。
关于一维数组使用步骤:定义->初始化->使用数组元素(下标法/数组名/指针法)一、定义数组:类型数组名[大小]int a[10];定义了一个一维数组,数组名为a,数据类型为整型,数组中有10个元素,数组元素由数组名[下标]形式表示,分别是:a[0],a[1],a[2],a[3],a[4], a[5],a[6],a[7],a[8],a[9]。
数组a在内存分配到的存储空间是连续的,数组元素按其下标递增的顺序依次占用相应字节的内存单元。
数组所占字节数为:sizeof(类型标识符)*数组长度。
如数组a 占用连续40个字节存储空间。
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]float a[10],b[20],c,d,*p;char str[10],*pstr=str;二、初始化:定义数组的同时对数组的全部元素或部分元素赋初值1.全部元素初始化int a[10]={10,20,30,40,50,60,70,80,90,100};⇔ int a[ ]={ 10,20,30,40,50,60,70,80,90,100};功能:建立含有10个元素的整型数组a并赋值,a[0]到a[9]的值分别为:10,20,30,40,50,60,70,80,90,100。
温馨提示:在对全部数组元素初始化时,可以不指定数组长度。
数组长度={}中值的个数2.部分元素初始化int a[10]={1,2};功能:建立含有10个元素的整型数组a并赋值,a[0]的值为1,a[1]的值为2,a[2]到a[9]的值都为0。
比较:(1)int a[]={1,3,5}功能:建立含有3个元素的整型数组a并赋值,a[0]=1,a[1]=3,a[2]=5 (全部元素初始化)(2)char st1[10]={‘a’,’b’},st2[]={‘a’,’b’};功能:建立含有10个元素的字符数组st1并赋值,st1[0]=’a’ st1[1]=’b’ st1[2]=st1[3]=……=str[9]=’\0’建立含有2个元素的字符数组st2并赋值,st2[0]=’a’ st2[1]=’b’ (全部元素初始化)(3) char str1[40]=”china”,str2[ ]=”beijing”;功能:建立含有40个元素的整型数组str1并赋值:str1[0]=’c’str1[1]=’h’ str1[2]=’i’str1[3]=’n’ str1[4]=’a’str1[5]……=str1[39]=’\0’建立含有8个元素的整型数组str2并赋值:str2[0]=’b’ str2[1]=’e’str2[2]=’i’ str2[3]=’j’str2[4]=’i’ str2[5]=’n’ str2[6]=’g’str2[7]=’\0’ (全部元素初始化)温馨提示:部分元素初始化时,数组的长度一般不省略,并且是从下标为0的元素开始赋值,没有被赋值的数组元素C语言规定:数值型数组时值为0,字符型数组时值为’\0’。
C语言程序设计教案课程:C程序设计制订日期:2015-11-7例如:定义数组int a[10];表示定义了一个整型的数组a,含有10个元素(每个元素都是整型)。
其说明如图6.1所示。
图6.1 数组定义的说明数组一旦定义,各数组元素名就确定了。
数组元素的一般形式为:数组名[下标]数组的第一个元素的下标总是从0开始的。
对于上面所定义的数组a[10],其元素依次为a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]。
其实,数组名代表的是数组的首地址,下标则是数组元素到数组开始的偏移量。
系统为数组在内存分配的是一片连续的存储的单元,如定义了“int a[10];”,则它的10个元素在内存中的排列情况如图6.2所示:图6.2 一维数组元素在内存中的排列情况2.一维数组的初始化数组初始化是指在数组定义时给数组元素赋予初值。
数组初始化是在编译阶段进行的。
这样将减少运行时间,提高效率。
数组初始化赋值的一般形式为:数据类型数组名[常量表达式] = {值,值,……,值};其中在{ }中的各数据值依次为各元素的初值,各值之间用逗号间隔。
例如:int a[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };相当于a[0] = 0; a[1] = 1; ...; a[9] = 9;数组初始化赋值的几点说明:(1)可以只给部分元素赋初值。
当{ }中数据值的个数少于元素个数时,只给前面部分元素赋值。
例如:int a[10] = {0, 1, 2, 3, 4};表示只给a[0]~a[4]这5个元素赋值,而后5个元素将被编译器自动赋0值。
如图6.3所示。
图6.3 未赋值的元素自动被0填充(2)只能给元素逐个赋值,不能给数组整体赋值。
例如:给十个元素全部赋1值,只能写为:int a[10] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1};而不能写为:int a[10]=1;(3)如在定义数组时给全部元素赋初值,则在数组定义的说明中,可以不显式的指出数组容量,系统会以给出的数值个数默认为数组容量。
112 介绍数组的定义、数组的初始化、数组的存储、数组的引用、数组的输入输出,数组的应用等内容。
6.1 整型数组与实型数组6.1.1 一维数组1.一维数组的定义一维数组指只有1个下标的数组,与简单变量一样,数组也必须先声明,后使用。
(1)语法声明一维数组的语法格式为:类型标识符数组名[整型常量表达式];例如:int iA[4];(2)语义类型标识符指定数组的类型,数组为整型,每个数组元素占4个字节,数组名是用户为数组整体命名,表示数组的首地址,是地址常量。
一对方括号[]表示一维数组,方括号中整型常量表达式的值表示数组元素的个数,表示数组的长度。
定义一个整型数组iA,该数组有4个数组元素,元素的下标是从0开始计数,分别是iA[0]、iA[1]、iA[2]、iA[3],其数据类型都为整型,首地址为iA,各元素在内存中顺序存放。
(3)语用定义数组时应注意以下几点。
①类型标识符表明数组中的每个元素具有相同的数据类型,常用的类型标识符有int、float、double和char等。
②数组名的命名规则与标识符的命名规则相同。
③方括号中的整型常量表达式的值是正整数,表示数组的长度,即数组元素的个数。
注意不要把方括号错用作圆括号。
例如,下面用法是错误的:int iA(4);④整型常量表达式可以使用包括符号常量,例如,允许用下列定义方式:#define N 4int iA[N];⑤ C99支持动态数组,允许对数组的长度作动态定义,将整型常量表达式扩展成整型变量。
例如,下面是动态数组的程序:#include"stdio.h" //包含标准输入/输出头文件intmain()//主函数{ // 函数体开始intiK; //声明变量iKscanf ("%d",&iK); // 输入变量值,如6intiA[iK]; //声明动态数组iAscanf("%s",iA); // 输入字符串,如”Hello”。
C语言教学中一维数组的教学设计1 引言数组是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,用编号区分这些变量的集合。
这个名字称为数组名,编号称为下标,组成数组的各个变量称为数组的元素。
数组是C语言程序设计中非常重要的概念,学习数组的第一步是要掌握一维数组的定义、引用,以及初始化赋值方法。
2 教学方法简述(1)讲授法在理解数组的概念时需要使用讲授法配合课件进行活泼、有趣的讲解。
在教学过程中切忌照本宣科,这样容易让学生感到厌烦和枯燥,课件应制作得美观、生动,如选择美观大方的课件模板,结合节奏适宜的动画,在举例时尽量附上有关的图片等。
(2)“教、学、做”三位一体教学法对于出现的代码示例,教师边演示边讲解,学生随后模仿学习、上机操作。
既锻炼了学生的实际动手能力,又使学生对所学知识有了更深刻的印象。
(3)协同学习法由于学生学习水平有差异,基础好的学生可以给基础差的学生讲解,学生之间传递的知识往往比老师传授的更容易接受,这样基础差的学生有了初步的认识,基础好的学生得到知识的巩固。
3 教学过程设计(1)教学引入教师用超市中可以存储东西的储物柜类比C语言中的数组,提及柜子上有编号,为后面介绍数组的下标作铺垫。
语言组织举例:我们都见过超市的储物柜,一排柜子上有编号,柜子中可以存储东西,在C语言中也有类似的储物柜――数组。
(2)数组的基本概念教师将学过的概念――变量,比作小箱子,再将数组解释为连着的小箱子,并且点出数组的重要特点――数组中的元素必须为相同的数据类型。
语言组织举例:如果我们把变量比喻成小箱子,那么数组就是把这些小箱子都连起来。
连起来的箱子的类型必须都是一样的,这样方便我们存储一些同类型的内容。
比如,每门课的考试分数装入连着的一个个小箱子中,这些连着的小箱子就是一个数组。
教师用代码段举例不同类型的数组。
例:int array1[6];/*这个数组存的是整数,能存6个整数*/float array2[6];/*这个数组存的是实数,能存6个实数*/char array3[6];/*这个数组存的是字符,能存6个字符*/(3)一维数组的定义教师提问,能从上面的代码段中总结出数组的定义方法吗?学生思考,通过观察可以发现三个数组定义都是采用的数据类型名字[数字]的格式,通过注释可以猜测[]中的数字是数组能存放的数据个数。