C语言一维数组教案
一维数组应用 c语言 精品教案
一维数组应用 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语言中非常重要且常用的数据结构。
-一维数组的定义与引用教案
{ a[i]=i+1;
printf(“%4d”,a[i]);}
printf(“\n”);
for(i=0;i<5;i++)
printf(“%4d”,b[i]);
printf(“\n”);
}
在引用时应注意以下几点:
⑴引用时只能例7-1】中的a或b。
⑷整型常量表达式可以是整型常量或符号常量。最常见的是整型常量。不允许为变量。
⑸C编译程序(如Turbo C)为a数组在内存中分配了10个连续的数组单元(共占20个字节),为b数组在内存中分配了5个连续的数组单元(共占10个字节),如图7-1所示。
a[0]
a[1]
a[2]
a[3]
a[4]
a[5]
a[6]
课题序号
1
授课日期
第周月日(星期)
授课班级
10单招、10计算机
授课课时
2
授课形式
理论
授课章节
名称
一维数组的定义与引用
使用教具
无
教学目的
1、了解数组的基本概念。
2、掌握一维数组定义、引用;
4、提高学生编写程序的能力
教学重点
掌握一维数组定义、引用;
教学难点
掌握一维数组定义、引用;
更新、补
充、删节
内容
无
课外作业
⑵a数组含有10个数组元素,即a[0]、a[1]、a[2]、…、a[9];b数组含有5个数组元素,即b[0]、b[1]、b[2]、b[3]和b[4]。注意,不能使用a[10]和b[5],否则即出现数组超界现象。
⑶类型说明符int说明a数组和b数组中的每个元素均占2个字节,只能存放整型数据。类型说明符可以是任何基本类型,如float、double、char等;也可以是以后要介绍的其它数据类型,如结构型、共用型等。
C程序设计-教案-18(2课时——一维数组)
它的元素只需要用数组名加一个下标,就能惟一确定
要使用数组,必须在程序中先定义数组
6.1.1怎样定义一维数组
定义一维数组的一般形式为:
类型符数组名[常量表达式];
数组名的命名规则和变量名相同
如int a[10];
6.1.1怎样定义一维数组
定义一维数组的一般形式为:
类型符数组名[常量表达式];
int a[4+6];合法
int n=10;
int a[n];
6.1.2怎样引用一维数组元素
在定义数组并对其中各元素赋值后,就可以引用数组中的元素
注意:只能引用数组元素而不能一次整体调用整个数组全部元素的值
6.1.2怎样引用一维数组元素
引用数组元素的表示形式为:
数组名[下标]
如a[0]=a[5]+a[7]-a[2*3]合法
int n=5,a[10];
a[n]=20;
6.1.2怎样引用一维数组元素
例6.1对10个数组元素依次赋值为0,1,
2,3,4,5,6,7,8,9,要求按逆序输出。
解题思路:
定义一个长度为10的数组,数组定义为整型
要赋的值是从0到9,可以用循环来赋值
用循环按下标从大到小输出这10个元素
#include <stdio.h>
for (i=0; i<=9;i++)
a[i]=i;
for(i=9;i>=0; i--)
printf("%d ",a[i]);
printf("\n");
return 0;
}
6.1.3一维数组的初始化
在定义数组的同时,给各数组元素赋值
一维数组教案
“一维数组”教学方案【课题】一维数组【学时】50分钟【授课学生分析】教学对象为大学本科学生,通过前面程序的基本结构(顺序结构、选择结构、循环结构)的学习,学生已具备一定的编程能力,为学习数组的应用打下了基础。
【教学目标】1、知识目标理解数组的概念,掌握对数组的定义、初始化、引用的应用。
2、能力目标通过对数组定义、引用的掌握,引导学生利用数组解决同类型的多变量的问题,培养和提高学生逻辑思维能力,提高动手编程能力。
3、情感目标利用上机分组操作,培养学生的协作精神。
激发学生学习兴趣,使学生积极参与体验成功的快乐。
【重点难点】重点:一维数组的定义、一维数组的初始化、一维数组的引用难点:一维数组的引用、一维数组的应用【教学方法】1、采用案例、情境、启发式教学法。
2、以例子讲解→练习→引发学生思考为流程;循序渐进的教学策略。
3、运用“提出问题→学生尝试→演示与交流→解决问题”的课堂教学模式。
【教学策略】基本知识采用的基本模式:提出问题→学生尝试→演示与交流→解决问题。
然后是能力拓展,学生分组从其它工作表中挑选内容完成挑战,适用于分层进行教学,最后展示与交流,使学生享有成就感,充分发挥学生的应用知识的能力。
以学生为主、教师引导并给予鼓励,充分发挥学生的主体性及积极性。
【教学过程】【教学后记】专业班的学生基础较好,旧知识点没有过多的强调。
在整个教学过程中,紧紧围绕提出问题——分析问题——解决问题三个环节,充分体现了学生的主体地位、以及对学生各种能力的培养。
对于本次课的重点、难点,我通过启发引导、提出问题、巩固练习等形式,充分调动学生的学习积极性,使他们参与到教学的整个过程,让学生在积极思考,积极探索中掌握新知识、消化本节课的重点、难点。
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、从逻辑角度看,一维数组可以认为是一个一行多列的表格。
一维数组教学设计方案
学生根据老师讲解的思路,进行思考。结合刚刚学数组定义等的知识,写出程序。
让学生自己思考写出程序,这个程序包括数组的定义,引用初始化等,让学生能够更好的掌握这些知识。老师的评价让学生知道要怎样去定义引用等。没有自己去写,只是单纯的听老师讲是很难掌握新知识的。
带着兴趣听老师讲解新知识,在老师的提问中思考出自己答案,自主思考。
通过教师的讲解数组的定义引用,初始化。积极的让学生参与互动,能讲解枯燥新知识让学生更容易参与课堂,自我思考知识,对知识的理解深刻。也让学生的注意力更集中,专心课堂。
课堂程序举例(35分钟)
老师提出题目,讲解程序的思路,让两名学生上黑板其他同学在下面写出自己的程序,然后老师进行评价,给出正确的答案。
五、教法、学法设计
通过对学生群体的特征分析,再加上本节是基础的知识讲解课,我需要选择学生最容易接受的教学方法,要把知识讲得通俗易懂,避免学生担心数组是个难学的知识。失去学习的兴趣。主要应用以下几个方法:
1.教学方法:
(1)语言讲授法:以语言传递为主,向学生讲解知识点及本节重难点。在讲授的过程中与学生互动,让他们自主的思考。
七、教学活动过程
教学环节
教学过程
教师活动
学生活动
设计意图及资源准备
导入课题(5分钟)
语言讲授,对学生提问前几节课学的数据的基本类型的知识,引起学生兴趣学习数组的兴趣。
打开用PPT,提问学生,让学生思考问题。然后进入数组这个课题。
通过教师的提问,学生进行思考,并回答问题,接触新的知识数组。
通过教师的提问,让学生身心都在课堂上,让学生的注意力集中。学习新知识
2.学法:
自主探究法:学生在观察实例效果的过程中中能充分发挥想象力,通过分析比较获得设计的思路。
C语言一维数组教案
学科:计算机科学与技术课程: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]。
C语言电子教案第六章一维数组
元素:属同一数据类型,用数组名和下标确定
6.1一维数组
一维数组的定义
定义方式:数据类型数组名[常量表达式];
例int a[6];
一维数组的引用
数组必须先定义,后使用
只能逐个引用数组元素,不能一次引用整个数组
数组元素表示形式:数组名[下标]
其中:下标可以是常量或整型表达式
(2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置
(3)重复上述过程,共经过n-1趟冒泡排序后,排序结束
#include <stdio.h>
main()
{ int a[11],i,j,t;
printf("Input 10 numbers:\n");
for(i=1;i<11;i++)
printf("Minimum value is %d\n",min);
}
例用冒泡法对10个数排序
排序过程:
(1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止——第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上
c语言电子教案第六章一维数组
2
课
题
一维数组
教学目标
一维数组的定义,调用数组中的元素
教学重点
一维数组定义的方式,调用规则以及初始化
教学难点
一维数组的应用,多种方法对数组中的元素排序
课型
公共课
教学媒体
多媒体
教法选择
讲授,举例,演示
教学过程
教法运用及板书要点
一维数组教学设计方案
一维数组教学设计方案
一维数组是计算机编程中非常重要的概念之一,它可以用于存储和管理多个相同类型的数据。
在计算机编程教学中,一维数组是一个基本的概念,掌握了一维数组的使用和操作,学生将能够更好地理解和解决实际问题。
以下是一维数组教学设计的方案,旨在帮助学生掌握一维数组的基本概念和操作。
1. 目标和预期结果
- 学生能够理解一维数组的概念和用途。
- 学生能够声明和初始化一维数组。
- 学生能够通过下标访问和修改数组元素。
- 学生能够使用循环结构遍历一维数组。
2. 教学方法和步骤
(a) 引入:
- 通过实际的例子引入一维数组的概念,例如学生的成绩列表或购物清单。
- 引发学生的思考,让他们意识到使用一维数组可以更有效地管理大量数据。
(b) 基本概念:
- 解释一维数组的定义和特点,即多个同类型数据的有序集合。
- 强调数组元素的索引是从0开始的,并解释如何通过下标访问和修改数组元素。
(c) 声明和初始化:
- 演示如何声明和初始化一维数组,包括指定数组元素的个数和类型。
- 强调数组元素的命名规则和初始化方法(逐个初始化或一次性初始化)。
(d) 数组操作:。
C语言一维数组说课稿
教学流程
课程导入 概念介绍
示例训练
编程方法讲解 反思总结
课后作业布置
板书设计
一维数组
1.数组概念 2.数组元素 3.下标
s 0 s[0] 1 …… s[1] s[299] 299
4.一维数组的定义 5.一维数组的初始化
例
Float int a[6]; 如:int a[5]={1,2,3,4,5};
C语言一维数组
授课人:计网一班
杨晓燕
教材分析 学情分析
教学方法 教学流程
板书设计
教材分析
课程地位:计算机相关专业中 ,《c语言程序设计》与《基于c 语言的数据结构算法》, 《VC++》,《VB》,《软件工 程》及其他编程语言类课程内容 联系紧密。按层次结构, 《C语言程序设计》处于最底层 ,是他们的基础,是其他几门课 的前导课。
教学方法
1.讲练结合教学 理论讲授与学生工 作页同步进行,课 程在机房进行,教 师讲课时能统一控 制学生用机,学生 练习时能开放学生 用机。这种教学方 式具有实效性,学 生可以及时发现问 题,提出问题,教 学过程是双向的。
2.任务驱动教学 在上课时,分析该 次课的主要任务, 把任务细分后通过 学生工作页布置给 学生,由学生在规 定的时间内去完成。 这种教学法提高了 学生自学的兴趣和 能力,由被动学习 向主动学习转变。
教材分析
本节课选自《C语言程序设计》李俊主编 电子工业出版社 2012年1月第一版 第七章的内容
教材特点如下:
1、在内容上体现科学性、时代性、实用性,编排上面向应用, 理论与实践有机结合; 2、采用案例教学法等教学手段,各章节均有案例, 贯穿整个课程进行难点讲解,以实际应用作突破口,使学生能 够真实体验到知识的实际应用, 提高兴趣,促进理解;教学与项目开发融为一体,浅显易懂, 符合中职学生认知规养学生认真学习的 态度,培养学生对编程的兴趣
《C语言程序设计》一维数组教案
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)如在定义数组时给全部元素赋初值,则在数组定义的说明中,可以不显式的指出数组容量,系统会以给出的数值个数默认为数组容量。
C程序设计 一维数组应用(教案)
一维数组应用
课型
实训课
教学时数
2
教学目的
掌握数组的常见操作(输入/输出,逆序,找最大、最小值,平均值)
重点难点
一维数组的定义、初始化
采用教法
讲解演示
学法建议
讨论交流、模仿练习
教学
过程
设计
(复习内容、课题引入、主要知识点序列或操作步骤教法设计、时间分配等)
1、布置上机练习作业及要求
随机产生10个[10,50平均值及各元素之和。
根据实验中发生问题,有针对性小结
交流讨论
3、完成上机实训报告册
备注
思考与
练习
试归纳数值数组元素的输入、输出操作。
总结如何根据题意将循环变量与数组下标结合起来使用的思路与方法。
教学后记
从键盘输入10个战士的身高,输出最高、最低的身高。
从键盘输入20个整数,求出它们的平均值及比平均值大的数。
从键盘上输入20个元素的值存入一维数组a中,然后将下标为(1、3、5、7、9……)的元素值赋值给数组b,输出数组b的内容。
2、实验操作考察
实验预习情况,源程序、测试数据准备情况
程序实现过程,问题解决指导
《C语言程序设计》教案 第四章 数组—一维数组
if(a[i]>average)
printf(“%f\n”,a[i]);
(2)在这里,a代表数组名,a[i]代表a数组中的一个元素,i是数组元素的下标,当i的值为1时,a[i]代表a[1];当i的值为2时,a[i]代表a[2]。在循环中当i从1变化到100时,a[i]也就逐个代表a[1]到a[100]。
if(a1>average)printf(“%f\n”,al);
if(a2>average)printf(“%f\n”,a2);
……
if(a100>average)printf(“%f\n”,a100);这样的程序是无法让人接受的。
解决上述问题方法:(1)在C语言中,我们可以定义一个名叫a的变量,它不代表一个单一的成绩值,而是代表整个成绩组。使用数组元素a[1]、a[2]、…、a[100]来代替a1、…、a2、…、a100,则程序就会简单得多,只需要用一个for循环就能完成100次比较:
每个数组元素也都可以作为单个变量使用。
3、一维数组(45分钟)
(1)一维数组的定义(先定义后使用)
格式:类型说明数组名[常量表达式]
例如:
int grades[10]; /*定义了一个数组grades,元素个数为10,数组元素类型为整型。*/
说明:1)数组的类型就是数组各个元素的类型,对于一个数组,所有元素的数据类型都是相同的。
(3)数组的下标:是数组元素的位置的一个索引或指示。
(4)数组的维数:数组元素下标的个数。根据数组的维数可以将数组分为一维、二维、三维、多维数组。
例如:int a[10];
定义了一个一维数组a,该数组由10个数组元素构成的,其中每一个数组元素都属于整型数据类型。
C语言之一维数组(第2讲)
一维数组第2讲:应用举例1、读程,写出程序运行后的正确运行结果.main(){int n[2]={0},i,j,k=2;//赋值for(i=0;i<k;i++)for(j=0;j<k;j++){n[j]=n[i]+1;printf("%d,%d\n",j,n[j]);}//输出printf("\n**************\n");for(i=0;i<k;i++)printf("n[%d]=%d\n",i,n[i]);getch();}运行结果:2、程序填空求:100以内的素数。
(11_1.c)#include <stdio.h>#include <math.h>main(){int a[101],i,k,m;for(i=2;i<=100;i++) a[i]=1 ;for(i=2;i<=100;i++)if(a[i]==1){m=sqrt(i);for(k=2;k<=m;k++)if(i%k==0) a[i]=0;}//outputfor(i=1;i<=100;i++)if(a[i]==0) printf("%4d",i);getch();}【提示】素数是指,除了1和本身,没有其它因子的自然数。
最小素数为2.判断一个数是否为素数通常对所有可能的因子进行判断。
我们只须判断整数num,是否能被2~sqrt(num)范围内的整数整除,如果能,则不是,否则为素数。
3、读入10个数,输出偶数项,并打印它们的和,输出奇数项,并打印它们的平均值。
(11_2.c)4、读入10个数,打印其中的最大数和最小数及其位置号。
(11_3.c)5、有N盏灯,放在一排,从1到N依次顺序编号。
有N个人也从1到N依次编号。
第1个人(1号)将灯全部关闭;第2个人(2号)将凡是2的倍数的灯打开;第3个人(3号)将凡是3的倍数的灯做相反处理(该灯如是打开的,则将它关闭;如是关闭的,则将它打开)。
C语言 实验六 一维数组
#define N 10
#include"stdio.h"
main()
{
int a[N],i,j,temp;
printf("please input %d numbers\n",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N-1;i++)
for(i=1;i<=10;i++)
scanf("%f",&a[i]);
for(i=1;i<=9;i++)
{min=i;
for(j=i+1;j<=10;j++)
if(a[min]>a[j])
min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
for(i=2;i<=9;i++) /*注意i值的变化范围*/
分析:C中数组长度必须是确定大小,即指定N的值。排序的方法有多种,我们取出其中两种作为参考。
方法一:起泡排序
从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比较后,最大的数已放在最后,第二遍只需考虑(N-1)个数,以此类推直到第(N-1)遍比较后就可以完成排序。
4. 编一程序,将两个字符串连接起来,不要用strcat函数。
分析:这道题的核心是排序。将评委所打的10个分数利用数组按增序(或降序)排列,计算数组中除第一个和最后一个分数以外的数的平均分,其中排序部分这里用选择法实现。
c语言教学中一维数组的教学设计
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)一维数组的定义教师提问,能从上面的代码段中总结出数组的定义方法吗?学生思考,通过观察可以发现三个数组定义都是采用的数据类型名字[数字]的格式,通过注释可以猜测[]中的数字是数组能存放的数据个数。
一维数组的应用课程设计
一维数组的应用课程设计一、实训目标熟练掌握使用一维数组的编程方法和常用算法。
1、掌握数组的定义、输入和输出方法。
2、掌握下标变量的使用方法。
3、掌握求极值、分类统计、排序、查找、移动等常用算法。
4、进一步熟练程序的调试和测试方法。
5、*学习数组作为函数参数的编程方法。
二、语法练习1、数组是把同类型的变量组织在一起。
2、int a[5]; 表示定义了5 个整形类型的变量,分别为:a[2]、a[3]、a[4] 、a[0],各元素在内存中连续存放,数组名a表示数组在内存中的初始地址。
3、在C语言中对一维整型数组的正确定义为D。
A)int a(10); B)int n=10,a[n];C)int a[ ]; D)#define N 10int a[N];4、以下能对一维数组a进行初始化的语句是:(C )A.int a[5]=(0,1,2,3,4,);B.int a(5)={} ;C.int a[3]={0,1,2};D.int a[5]={5*1};5、已知:int a[10]; 则对a数组元素的正确引用是(D )。
A、a[10]B、a[3.5]C、a(5)D、a[0]6、若有以下数组说明,则数值最大的和最小的元素下标分别是( B ) int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};A.1,12B.0,11C.1,11D.0,127、若有以下数组说明,则i=4;a[a[i]] 元素数值是( A )int a[6]={ 8,11,3,6,2,12};A.3B.2C.6D.118、设有定义int a[5],i; 用for 循环结构分别写出数组的输入和输出程序段。
for(i=0;i<5;i++)scanf( “%d” ,&a[i]);for(i=0;i<5;i++)printf( “%d”,&a[i]);1三、实训内容和步骤1、定义一个具有10个元素的一维整型数组, 从键盘给各元素赋值,并以每行4 个数的格式输出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学科:计算机科学与技术课程: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]。
(5)常量表达式中可以包括常量和符号常量,不能包含变量,因为C语言规定不允许对数组的大小作动态定义。
(6)允许在同一个类型说明中,说明多个数组和多个变量,彼此间以逗号相隔。
例如:int a,b,k1[10],k2[20]; //定义了两个一维数组、两个整型变量判断下面的定义是否合法:int b, b[5]; //不合法,数组名不能与变量名同名#define size 10int b[size]; //合法,size已经在宏定义中说明,在程序中作为符号常量int a(6); //不合法,数组名后不能使用(),只能用[]int n=5;int a[n]; //不合法,不能用变量定义数组元素的个数int a[n+2]; //不合法,不能用变量表达式定义数组元素的个数一维数组的存储结构:C语言在编译时给数组分配一段连续的内存空间。
内存字节数=数组元素个数*sizeof(元素数据类型)数组元素按下标递增的次序连续存放。
数组名是数组所占内存区域的首地址,即数组第一个元素存放的地址。
例int a[5]; 假设首地址是2000内存地址2000 2002 2004 2006 2008占用字节数为:5*sizeof(int)=5*2=103、一维数组元素的引用数组元素是组成数组的基本单元。
数组元素用数组名和下标确定。
下标表示了元素在数组中的顺序号,C语言规定:数组必须先定义,后使用。
一维数组的引用形式为:数组名[下标]其中下标可以是整型常量、整型变量或整型表达式。
例如有定义:int t,a[10],i=2;则以下都是正确的表达式:t=a [6];a[0]= a[i]+a[i+1];引用说明:(1)必须像使用变量那样,先定义,再使用,如以下操作是错误的:int x=a[2];int a[10];(2)下标的最小值为0,最大值是数组大小减1。
在前例中定义了数组score [50],使用的时候不能使用score [50], 否则产生数组越界。
C语言对数组不作越界检查,使用时要注意!(3)在C语言中只能对数组元素进行操作,不能一次对整个数组进行操作。
例如要输出有10个元素的数组,则必须使用循环语句逐个输出各下标变量:for(i=0; i<10; i++)printf("%d",a[i]);而不能用一个语句输出整个数组。
下面的写法是错误的:printf("%d",a);例:输出5个学生的成绩#include <stdio.h>void main ( ){int i, score[5]={82,79,65,91,86};for (i=0;i<5;i++)printf (" %d ",score[i]);}4、一维数组的初始化数组的初始化就是给数组元素赋初始值。
主要有两种方法:1.数组定义时初始化:就是在定义数组时给数组元素赋初值。
其初始化的一般格式为:数据类型数组名[数组元素个数] ={值1,值2,… ,值n};(1)对数组全部元素赋初值例如int a[5]={2,4,6,8,10};其作用是在定义数组的同时将常量2、4、6、8、10分别置于数组元素a[0]、a[1]、a[2]、a[3]、a[4]中。
(2)对数组部分元素赋初值,其它数组元素自动赋以0值例如:int a[4]={1,2 };执行后各元素的初值为a [0]=1,a [1]=2,a [2]=0,a [3]=0 (3)全部元素均初始化为0,可写成:int a[10]={0,0,0,0,0,0,0,0,0,0};或int a[10]={0};不能写成int a[10]={0*10};说明:(1)数组元素的值可以是数值型、字符常量或字符串。
(2)数组元素的初值必须依次放在一对大括号{ }内,各值之间用逗号隔开。
(3)在进行数组的初始化时,{ }中值的个数不能超过数组元素的个数。
例如:int a[5]={1,2,3,4,5,6};是一种错误的数组初始化方式,所赋初值多于定义数组的元素个数。
(4)在给数组所有元素赋初值时,可以不指定数组长度。
例如:int a[ ]={1,2,3,4,5};则系统会自动定义数组a的长度为5。
在定义时赋初值是一种简单而行之有效的方法,它适用于长度较小的数组或对长度较大的数组部分元素赋值,而且可对每个数组元素赋不同的值。
2.在程序中初始化:主要使用循环语句进行逐一赋值例如:int i,score[50];for (i=0;i<50;i++)score [i]=0;这种方法是在编程中普遍使用的一种方法,它适用于对某数组元素进行有规律的赋值或接受用户通过键盘输入对数组元素的赋值。
三、举例:1.以引例为例,从键盘输入10个学生一门课的成绩,找出最高分和最低分并输出。
步骤:(1) 输入: 用for循环输入10个学生的成绩(2) 处理:(a) 先令max=min=score[0](b) 依次用score [i]和max,min比较(循环)若max< score [i],令max= score [i]若min> score [i],令min= score [i](3) 输出: max和min程序如下:#include <stdio.h>void main(){int i;float score [10],max,min;printf("Enter 10 score s:\n");for(i=0;i<10;i++) //输入10个浮点型的学生的成绩scanf("%f",& score [i]);max=min= score [0];for(i=1;i<10;i++) //循环比较,找出最高分和最低分{if(max< score [i]) max= score [i];if(min> score [i]) min= score [i];}printf("Max score is %f\n",max); //输出最高分printf("Min score is %f\n",min); //输出最低分}2.以引例为例,从键盘输入10个学生一门课的成绩,用冒泡法从低到高排序并输出。
分析:冒泡排序法的基本思想是将相邻两个数进行比较,将小的调到前面。
排序过程:(1)比较第一个数与第二个数,若为逆序score [0]> score [1],则交换;然后比较score[1]与score [2]比较;依次类推,直至score [8]与score [9]比较为止——第一趟冒泡排序,结果最大的数被安置在最后一个元素score [9]位置上,此次共比较9次。
(2)对前9个数进行第二趟冒泡排序,结果使次大的数被安置在倒数第二个元素score[8]位置,此次共比较8次。
(3)重复上述过程,共经过9趟冒泡排序后,排序结束程序如下:#include <stdio.h>void main(){int i,j;float score [10], t,max,min;printf("Enter 10 scores:\n");for(i=0;i<10;i++) //输入10个浮点型学生的成绩scanf("%f",& score [i]);printf("\n");for(i=1;i<10;i++) //趟数,共9趟{for(j=0;j<10-i;j++) //实现一次冒泡操作if(score [j]> score [j+1]) //交换score [j]和score [j+1]{t= score [j]; score [j]=score [j+1]; score [j+1]= t;}}for(i=0;i<10;i++) //输出排好序的成绩printf(" %f ", score [i]);printf("\n");}四、总结:这节课主要介绍了数组这一特殊的数据结构。
数组的特点是大小必须是确定的,且数组中元素的类型必须相同。
它的优点是表述简洁,可读性高,便于使用循环结构。
一维数组的定义和使用:在使用时应遵循先定义、后使用的原则。
不能整体引用,也不能越界使用数组元素,可以用循环结构很方便地访问数组元素。
一维数组初始化的方法:定义时初始化的几种方式、在程序中用赋值语句初始化。
五、作业要求:课后大家将课本上的例题和课后习题进行练习,以此提高对程序设计的更高程度的认识。