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)如在定义数组时给全部元素赋初值,则在数组定义的说明中,可以不显式的指出数组容量,系统会以给出的数值个数默认为数组容量。