C语言一维数组教案_第1页
C语言一维数组教案_第2页
C语言一维数组教案_第3页
C语言一维数组教案_第4页
C语言一维数组教案_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、;.学科:计算机科学与技术课程: c 语言程序设计课题:一维数组课时: 2教学目标: 1、掌握一维数组的定义和引用2、掌握一维数组的初始化方法3、了解与一维数组有关的应用编程方法教学重点: 一维数组的定义和引用、初始化方法教学难点: 与一维数组有关的应用编程方法教学方法: 举例法,引导法教学步骤:1、通过一个例子提出问题来引出本节课的知识点2、讲授一维数组的定义和引用、初始化方法3、示例训练4、进行本节课的总结及作业布置教具:黑板计算机投影仪教学过程:一、 导入:提问:保存一个班 50 位同学的一门功课的成绩,并且找出最高分和最低分,应如何实现?解题思路:定义 50 个变量,从键盘中输入值,然

2、后再相互比较。处理起来很复杂,是否有更简便的方法?引出本节课的知识点 - 数组。;.;.二、 讲授:1、数组概述:数组:是数目固定,类型相同的若干个变量的有序集合,用数组名标识。序:是数组元素之间的位置关系,不是元素值的大小顺序。数组名:是用于区别其它数组及变量的。数组元素:集合中的变量,属同一数据类型,用数组名和下标确定。下标:是数组元素在数组中的位置。数组的维数:数组名后所跟下标的个数。2、一维数组的定义一维数组是指由一个下标数组元素组成的数组。其定义形式为:存储类型数据类型数组名 常量表达式 例如: static int score50;它表示定义了一个名为 score的数组,该数组有

3、50 个元素,其存储类型为静态型,数据类型为整型。说明:(1)存储类型为任选项,可以是auto、static、extern 存储类型,但是没有register型。(2)数据类型是用来说明数组元素的类型:int , char , float。(3)数组名的命名应遵守标识符的命名规则,但是不能与其他变量同名。(4)数组名后是用方括号 括起来的常量表达式。常量表达式表示的是数组元素的个数,即数组的长度。在上例中定义了数组score 50,第一个元素为 score 0,最后一个为 score 49。(5)常量表达式中可以包括常量和符号常量,不能包含变量,因为c 语言规定不允许对数组的大小作动态定义。(

4、6)允许在同一个类型说明中,说明多个数组和多个变量,彼此间以逗号相隔。例如: inta,b,k110,k220;/定义了两个一维数组、两个整型变量判断下面的定义是否合法:int b, b5;/不合法,数组名不能与变量名同名#define size 10intbsize;/合法, size 已经在宏定义中说明,在程序中作为符号常量int a(6);/不合法,数组名后不能使用(),只能用 int n=5;int an;/不合法,不能用变量定义数组元素的个数int an+2;/不合法,不能用变量表达式定义数组元素的个数一维数组的存储结构: c 语言在编译时给数组分配一段连续的内存空间。内存字节数 =

5、 数组元素个数 *sizeof( 元素数据类型 )数组元素按下标递增的次序连续存放。数组名是数组所占内存区域的首地址,即数组第一个元素存放的地址。例 int a5; 假设首地址是 2000a0a1a2a3a4内存地址20002002200420062008;.;.占用字 数 : 5*sizeof(int)=5*2=103、一 数 元素的引用数 元素是 成数 的基本 元。数 元素用数 名和下 确定。下 表示了元素在数 中的 序号, c 言 定:数 必 先定 , 后使用。一 数 的引用形式 :数 名 下 其中下 可以是整型常量、整型 量或整型表达式。例如有定 :intt,a10,i=2 ; 以下都

6、是正确的表达式:t=a 6;a0= ai+ai+1 ;引用 明:(1)必 像使用 量那 ,先定 ,再使用,如以下操作是 的:intx=a2;inta10;(2)下 的最小 0,最大 是数 大小减 1。在前例中定 了数 score 50,使用的 候不能使用 score 50, 否 生数 越界。 c 言 数 不作越界 , 使用 要注意!(3)在 c 言中只能 数 元素 行操作,不能一次 整个数 行操作。 例如要 出有 10 个元素的数 , 必 使用循 句逐个 出各下 量:for(i=0; i10; i+)printf(%d,ai);而不能用一个 句 出整个数 。下面的写法是 的:printf(%d

7、,a);例: 出 5 个学生的成 #include void main ( )inti, score5=82,79,65,91,86 ;for (i=0 ; i5; i+)printf ( %d ,scorei) ;4、一 数 的初始化数 的初始化就是 数 元素 初始 。主要有两种方法:1.数 定 初始化:就是在定 数 数 元素 初 。其初始化的一般格式 :数据 型数 名 数 元素个数 = 值 1,值 2, ,值 n ;(1) 数 全部元素 初 例如 int a5=2,4,6,8,10 ;其作用是在定 数 的同 将常量2、 4、6、8、10 分 置于数 元素a0、a1、a2、 a3、a4中。;

8、.;.(2)对数组部分元素赋初值,其它数组元素自动赋以0 值例如:int a4=1,2 ;执行后各元素的初值为 a 0=1,a 1=2,a 2=0,a 3=0 (3)全部元素均初始化为 0,可写成:inta10=0,0,0,0,0,0,0,0,0,0;或 inta10=0 ;不能写成inta10=0*10 ;说明:(1)数组元素的值可以是数值型、字符常量或字符串。(2)数组元素的初值必须依次放在一对大括号 内,各值之间用逗号隔开。(3)在进行数组的初始化时, 中值的个数不能超过数组元素的个数。例如: int a5=1,2,3,4,5,6 ;是一种错误的数组初始化方式,所赋初值多于定义数组的元素

9、个数。(4)在给数组所有元素赋初值时,可以不指定数组长度。例如:inta =1,2,3,4,5 ;则系统会自动定义数组a 的长度为 5。在定义时赋初值是一种简单而行之有效的方法,它适用于长度较小的数组或对长度较大的数组部分元素赋值,而且可对每个数组元素赋不同的值。2.在程序中初始化:主要使用循环语句进行逐一赋值例如: inti,score50;for (i=0;i50;i+)score i=0;这种方法是在编程中普遍使用的一种方法,它适用于对某数组元素进行有规律的赋值或接受用户通过键盘输入对数组元素的赋值。三、举例:1.以引例为例,从键盘输入10 个学生一门课的成绩,找出最高分和最低分并输出。

10、步骤 :(1) 输入 : 用 for 循环输入 10 个学生的成绩(2) 处理 :(a) 先令 max=min=score0(b) 依次用 score i和 max,min 比较 (循环 )若 max score i, 令 min= score i(3) 输出 : max 和 min程序如下:#include void main()inti;floatscore 10,max,min;printf(enter 10 score s:n);for(i=0;i10;i+)/输入 10 个浮点型的学生的成绩scanf(%f,& score i);.;.max=min= score 0;for(i=1

11、;i10;i+)/循环比较,找出最高分和最低分if(max score i)min= score i;printf(max score is %fn,max);/输出最高分printf(min score is %fn,min);/输出最低分2.以引例为例,从键盘输入10 个学生一门课的成绩,用冒泡法从低到高排序并输出。分析:冒泡排序法的基本思想是将相邻两个数进行比较,将小的调到前面。排序过程:( 1)比较第一个数与第二个数,若为逆序score 0 score 1,则交换;然后比较score1 与 score 2比较;依次类推,直至score 8与 score 9比较为止 第一趟冒泡排序,结果

12、最大的数被安置在最后一个元素score 9位置上,此次共比较9 次。( 2)对前 9 个数进行第二趟冒泡排序,结果使次大的数被安置在倒数第二个元素score8 位置,此次共比较 8 次。( 3)重复上述过程,共经过 9 趟冒泡排序后,排序结束程序如下:#include void main()inti,j;floatscore 10, t,max,min;printf(enter 10 scores:n);for(i=0;i10;i+)/输入 10 个浮点型学生的成绩scanf(%f,& score i);printf(n);for(i=1;i10;i+)/趟数,共 9 趟for(j=0;j score j+1) /交换 score j和 score j+1 t= score j; score j=score j+1; score j+1= t;for(i=0;i10;i+)/输出排好序的成绩printf( %f , score i);printf(n);.;.四、总结:这节课主要介绍了数组这一特殊的数据结构。数组的特点是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论