第六章 一维数组(教案)

合集下载

一维数组应用 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语言中非常重要且常用的数据结构。

一维数组(C语言)ppt课件

一维数组(C语言)ppt课件

printf(“\n〞);
}
B、运用getchar putchar getch getche函数。
字符数组
〔2〕将整个字符串一次输入或输出。用%s格式符。 例:char c[ ]=“china〞; printf(“%s〞,c);
结果为:china
留意: A、输出字符不包括终了符‘\0’; B、用%s格式符输出字符串时,printf 函数中的输出项是字
printf(“请输入数字字符串:〞); Scanf(“%s〞,str);
strlen(str)
main( ) {
insert(str)
char str[10]; scanf(“请输入
数字字符串:%s\n〞,&str);
insert(str);
}
char str[ ]; { int i1;
for(i1=strlen(str[10]);i1>0; i1--) {
一维数组
4、数组元素的初始化 普通方式为:
类型名 数组名[整型常量表达式]={常量1,常量2,…}
例:int a[10]={1,2,3,4,5,6,7,8,9,10}; 该语句定义了一个动态数组,并对该动态数组进展了初始化。
留意: 1、所赋初值的类型必需与阐明的类型一致。 2、在指定初值时,第一个值赋给下标为0的元素。 3、不能够跳过前面的元素给后面的元素赋初值。
scanf(" %d",&a[i]); printf(" \nyou input is :"); for (i=0;i<10;i++) printf(" %d, ",&a[i]); }
一维数组

-一维数组的定义与引用教案

-一维数组的定义与引用教案
for(i=0;i<10;i++)
{ 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等;也可以是以后要介绍的其它数据类型,如结构型、共用型等。

一维数组教案

一维数组教案

“一维数组”教学方案【课题】一维数组【学时】50分钟【授课学生分析】教学对象为大学本科学生,通过前面程序的基本结构(顺序结构、选择结构、循环结构)的学习,学生已具备一定的编程能力,为学习数组的应用打下了基础。

【教学目标】1、知识目标理解数组的概念,掌握对数组的定义、初始化、引用的应用。

2、能力目标通过对数组定义、引用的掌握,引导学生利用数组解决同类型的多变量的问题,培养和提高学生逻辑思维能力,提高动手编程能力。

3、情感目标利用上机分组操作,培养学生的协作精神。

激发学生学习兴趣,使学生积极参与体验成功的快乐。

【重点难点】重点:一维数组的定义、一维数组的初始化、一维数组的引用难点:一维数组的引用、一维数组的应用【教学方法】1、采用案例、情境、启发式教学法。

2、以例子讲解→练习→引发学生思考为流程;循序渐进的教学策略。

3、运用“提出问题→学生尝试→演示与交流→解决问题”的课堂教学模式。

【教学策略】基本知识采用的基本模式:提出问题→学生尝试→演示与交流→解决问题。

然后是能力拓展,学生分组从其它工作表中挑选内容完成挑战,适用于分层进行教学,最后展示与交流,使学生享有成就感,充分发挥学生的应用知识的能力。

以学生为主、教师引导并给予鼓励,充分发挥学生的主体性及积极性。

【教学过程】【教学后记】专业班的学生基础较好,旧知识点没有过多的强调。

在整个教学过程中,紧紧围绕提出问题——分析问题——解决问题三个环节,充分体现了学生的主体地位、以及对学生各种能力的培养。

对于本次课的重点、难点,我通过启发引导、提出问题、巩固练习等形式,充分调动学生的学习积极性,使他们参与到教学的整个过程,让学生在积极思考,积极探索中掌握新知识、消化本节课的重点、难点。

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、从逻辑角度看,一维数组可以认为是一个一行多列的表格。

一维数组教学设计方案

一维数组教学设计方案
老师提出问题,讲解解题思路。让学生自己思考写出程序。然后评价。
学生根据老师讲解的思路,进行思考。结合刚刚学数组定义等的知识,写出程序。
让学生自己思考写出程序,这个程序包括数组的定义,引用初始化等,让学生能够更好的掌握这些知识。老师的评价让学生知道要怎样去定义引用等。没有自己去写,只是单纯的听老师讲是很难掌握新知识的。
带着兴趣听老师讲解新知识,在老师的提问中思考出自己答案,自主思考。
通过教师的讲解数组的定义引用,初始化。积极的让学生参与互动,能讲解枯燥新知识让学生更容易参与课堂,自我思考知识,对知识的理解深刻。也让学生的注意力更集中,专心课堂。
课堂程序举例(35分钟)
老师提出题目,讲解程序的思路,让两名学生上黑板其他同学在下面写出自己的程序,然后老师进行评价,给出正确的答案。
五、教法、学法设计
通过对学生群体的特征分析,再加上本节是基础的知识讲解课,我需要选择学生最容易接受的教学方法,要把知识讲得通俗易懂,避免学生担心数组是个难学的知识。失去学习的兴趣。主要应用以下几个方法:
1.教学方法:
(1)语言讲授法:以语言传递为主,向学生讲解知识点及本节重难点。在讲授的过程中与学生互动,让他们自主的思考。
七、教学活动过程
教学环节
教学过程
教师活动
学生活动
设计意图及资源准备
导入课题(5分钟)
语言讲授,对学生提问前几节课学的数据的基本类型的知识,引起学生兴趣学习数组的兴趣。
打开用PPT,提问学生,让学生思考问题。然后进入数组这个课题。
通过教师的提问,学生进行思考,并回答问题,接触新的知识数组。
通过教师的提问,让学生身心都在课堂上,让学生的注意力集中。学习新知识
2.学法:
自主探究法:学生在观察实例效果的过程中中能充分发挥想象力,通过分析比较获得设计的思路。

C语言电子教案第六章一维数组

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、掌握一维数组定义、初始化和引用方法
【技能性目标】
1、能够正确使用编译器进行相关的调试
2、能够正确定义一维数组、初始化一维数组和引用一维数组
3、能够运用一维数组进行简单程序设计
2,整型的数组b,长度为10,依次赋值0-9。
答案一:
float a[20]={2.0,21.5,15.3}
答案二:
int b[10];
for (i=0; i<=9;i++)
a[i]=i;
结合这个例题加深对两种赋值方式的理解,它们各自适用于哪种情况?
【巩固训练】
1、C语言编程实现长度为5,类型为float的一维数组的定义、初始化和数组元素的引用。
2,编写一个程序实现从键盘输入全班35名同学C语言成绩,然后将35个成绩存储并打印出来。
【总结强化】
本节课学习了:
1,数组的概念和特点
2,一维数组的定义
3,一维数组的存储
4,一维数组的引用
5,一维数组的初始化
重点:一维数组定义、引用与初始化的一般形式
【作业拓展】
1、每个学生课后在实际生活中找出3个用到数组知识来进行数据存储的例子,并说明为什么用数组
二、在程序中初始化
主要使用循环语句进行逐一赋值
例如:int i,score[50];
for (i=0;i<50;i++)
score [i]=0;
这种方法是在编程中普遍使用的一种方法,它适用于对某数组元素进行有规律的赋值或接受用户通过键盘输入对数组元素的赋值。

6.1.1一维数组的定义与初始化 课件《C语言程序设计》同步教学(电子工业版)

6.1.1一维数组的定义与初始化 课件《C语言程序设计》同步教学(电子工业版)

相关知识
(二)一维数组的初始化 1.直接对数组中的所有元素赋值,示例代码如下:
int i[5]={1,2,3,4,5}; //数组中元素的值依次为1、2、3、4、5
2.只对数组中的一部分元素赋值,示例代码如下:
int i[5]={1,2,3}; //数组中的一个数组中全部元素值为0,示例代码如下:
int a[10]={0}; //数组全部元素值为0
5.使用循环语句初始化数组,示例代码如下:
int scr[10];
//定义一个10个元素的整型数组
for (int i = 0; i <10; i++) //使用for循环
{
scr[i] = i ; //给数组赋值,10个元素值分别是0-10
一维数组的定义与初始化
复习导入
• 回顾学习过的基本数据类型
整形
int 变量列表;
实型
float/double 变量列表;
字符型
char 字符变量名列表;
复习导入
• 假如输入3个学生的c语言成绩,计算平均分。
数组 学生人数变成50?
100?………
复习导入
数组是相同类型数据的有序集合,即数组由若干数组元素组成,其中 所有元素都属于同一个数据类型,且它们的先后顺序是确定的。数组中的 元素称为数组元素,也称下标变量。
相关知识
(一)定义一维数组 一维数组的定义格式
不能用( )
数据类型 数组名[常量表达式];
例如:int scr[10];
合法标识scr符
0 sc表r[0示] 元素个数 1 scr下[1]标从0开始
2 scr[2]
3 scr[3]
4 scr[4] 5 scr[5] 6 scr[6]

一维数组排序教案

一维数组排序教案
课题序号
授课日期
第周月 日(星期 )
授课班级
09微机
授 课 课 时
2
授课形式
理论
授课章节
名称
一维数组应用举例(冒泡排序)
使用教具

教学目的
1、进一步让学生掌握一维数组的应用
2、掌握冒泡排序、选择排序算法。
3、进一步提高学生编写程序的能力
教学重点
掌握冒泡排序、选择排序算法。
教学难点
掌握冒泡排序、选择排序算法。
t=b[max_j]; b[max_j]=b[j];b[j]=t;
}
for(i=0;i<10;i++)
printf("%4d",b[i]);
printf("\n");
}
程序运行结果为:
若输入10个数是:22 34 98 76–90 59–11 45 81–27
则排序的结果为 :98 81 76 59 45 34 22–11–27 -90
更新、补
充、删节
内容

课外作业
补充
课堂教学安排
教学步骤
教学内容
教学方法及
双边活动
导入新课
新课讲授
课堂提问讨论
课堂小结
步骤五布置作业
一、采用“冒泡法”对任意输入的10个整数按由小到大的顺序排序。
冒泡法排序的思路是:n个数由小到大排序,将相邻两个数依次进行比较,将小数调换在前头,逐次比较,直至将最大的数移至最后;再将n-1个数继续比较,将次大数移至倒数第2位置;依此规律,直至比较结束。
例如“9、6、8、2、4”的排序过程示意如下:
第1步:9 交换6666
(比较4次)69 交换888

C语言第六章:一维数组

C语言第六章:一维数组

A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9]
第2轮比较后
第3轮比较后
外循环
第8轮比较后
第9轮比较后
内循环
23 25 34 52 56 78 83 88 100 123
23
25
34
52
56
78
83
88
100
123
for(i=0; i<=8; i++)
问题:如何使用冒
一、顺序查找法
• 假设数组a[0]、a[1]、…、a[N-1]中保存有N个数据,从中 查找一个数据F。若F在数组a中存在,则显示元素下标; 若不存在,显示不存在信息。 顺序查找法:
从数组第1个元素依次向后与要找的数据F比较;若相同,则查找结束 ;若不相同,则继续查找,直至数组最后一个元素。若所有元素均不 等于F,则说明F不在数组a中。
<
“擂台法”也适用于求最小值
一维数组应用举例
例 随机生成10个三位数整数,求其平均值.
例 用数组求Fibonacci数列前30项.
三、常用排序算法
1.选择排序法
A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9]
选择排序法的算法是: (1)第一趟,从N个元素中找出最小者,与第1个元素进行交换 位置. (2)第二趟,从剩下的N-1个元素中,找出最小的元素,与第2个 数进行交换位置. (3)依次类推,选择N-1次后,所有的元素都已按照从小到大的 顺序排列,每次操作都选择最小的与排头位置相交换. 最后,数组A中的数据成升序排列(相对于数组元素下标)。
三、常用排序算法
3. 冒泡排序法

一维数组教学设计方案

一维数组教学设计方案

一维数组教学设计方案
一维数组是计算机编程中非常重要的概念之一,它可以用于存储和管理多个相同类型的数据。

在计算机编程教学中,一维数组是一个基本的概念,掌握了一维数组的使用和操作,学生将能够更好地理解和解决实际问题。

以下是一维数组教学设计的方案,旨在帮助学生掌握一维数组的基本概念和操作。

1. 目标和预期结果
- 学生能够理解一维数组的概念和用途。

- 学生能够声明和初始化一维数组。

- 学生能够通过下标访问和修改数组元素。

- 学生能够使用循环结构遍历一维数组。

2. 教学方法和步骤
(a) 引入:
- 通过实际的例子引入一维数组的概念,例如学生的成绩列表或购物清单。

- 引发学生的思考,让他们意识到使用一维数组可以更有效地管理大量数据。

(b) 基本概念:
- 解释一维数组的定义和特点,即多个同类型数据的有序集合。

- 强调数组元素的索引是从0开始的,并解释如何通过下标访问和修改数组元素。

(c) 声明和初始化:
- 演示如何声明和初始化一维数组,包括指定数组元素的个数和类型。

- 强调数组元素的命名规则和初始化方法(逐个初始化或一次性初始化)。

(d) 数组操作:。

C程序设计 一维数组应用(教案)

C程序设计 一维数组应用(教案)
课题
一维数组应用
课型
实训课
教学时数
2
教学目的
掌握数组的常见操作(输入/输出,逆序,找最大、最小值,平均值)
重点难点
一维数组的定义、初始化
采用教法
讲解演示
学法建议
讨论交流、模仿练习
教学
过程
设计
(复习内容、课题引入、主要知识点序列或操作步骤教法设计、时间分配等)
1、布置上机练习作业及要求
随机产生10个[10,50平均值及各元素之和。
根据实验中发生问题,有针对性小结
交流讨论
3、完成上机实训报告册
备注
思考与
练习
试归纳数值数组元素的输入、输出操作。
总结如何根据题意将循环变量与数组下标结合起来使用的思路与方法。
教学后记
从键盘输入10个战士的身高,输出最高、最低的身高。
从键盘输入20个整数,求出它们的平均值及比平均值大的数。
从键盘上输入20个元素的值存入一维数组a中,然后将下标为(1、3、5、7、9……)的元素值赋值给数组b,输出数组b的内容。
2、实验操作考察
实验预习情况,源程序、测试数据准备情况
程序实现过程,问题解决指导

c语言教学中一维数组的教学设计

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)一维数组的定义教师提问,能从上面的代码段中总结出数组的定义方法吗?学生思考,通过观察可以发现三个数组定义都是采用的数据类型名字[数字]的格式,通过注释可以猜测[]中的数字是数组能存放的数据个数。

信息化教学设计教案-《一维数组》

信息化教学设计教案-《一维数组》
其次,考虑到在获取大资源(如授课录像等)时的网络延时和网络阻塞的可能性,课程组将所 有资源(尤其是大资源,如授课录像等)发布到云平台,方便学生快速下载资源进行线下学习。
另外,除了可以通过课程网站即时发布与课程学习相关的通知外,还开通了 QQ 群及课程微信平 台辅助教学,这样,老师和学生都可以直接使用手机方便快捷的发布和查看即时消息,为师生的交 流互动提供了更加便捷的途径,有利于化解教学难点。
2
从学生的差异来看,基本操作能力不会相差太大,主要体现在创新能力和知识迁移的水平上。 所以,教法选择和学法指导要针对学生的基础及爱好差异,符合学生的认知规律,尊重学生个 性发展,注重学生的灵活运用能力培养。
四、 教学目标及重难点
教学目标设计
知识目标:
1、 熟练掌握一维数组的声 明、创建的语法结构及 使用的基本流程;
评价平台既可以给出学生个人的素养考核、在线作业、考试情况,也可以给出全班同学的作业、 考试分布情况、形成综合评定。
六、 教学方法
●任务驱动法 项目教学中,最常用的是任务驱动法。把一个项目分成若干个任务,每个任务都要完成一定的 功能。但我在教学实践中发现,如果学生对你设计的任务不感兴趣时,就不能驱动学生自主学习, 这样即使在你的帮助和引导下,学生完成了任务,但这种驱动,只能是外驱动或硬驱动。而通过创 设有趣味的情境,结合知识本身的特点,吸引学生全身心地投入到活动中来,让每个学生都在做中 学,学中乐,真正做到自主学习、探究学习,在活动体验中获得经验,培养学生的探索精神,提高学 生的信息素养,这种融合了情境的任务驱动才能真正做到学习以学生为中心,主动建构知识技能。
素材等。
5
八、教学过程设计
步骤 1:课前准备 教学内容
师生活动 教师
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第6章一维数组的定义和使用
龚宇洁
教学内容:一维数组的定义和使用
教学对象:11移动通信
课时:2课时
教学目标:
1.知识和技能目标:掌握一维数组的定义和使用的基本规则;理解数组的内存与地址,会利用编译工具查看内存分配;能利用一维数组解决简单的实际问题
2.能力培养目标:通过以上内容的学习,提高学生解决实际问题的能力。

3.情感和态度目标:通过对以上内容的学习过程,激发学习C语言编程的兴趣。

教学重点:一维数组的定义及使用
一维数组的内存和地址
教学难点:一维数组的内存与地址
利用VC调试工具查看变量、变量的地址以及内存
教学过程:
导入新课:2min
用基本数据类型可以解决所有问题吗?
例如:对学生的成绩按由高到低的次序进行排序。

3 名?stud01,stud02,stud03
一般的解决方法,定义三个变量,两两进行比较,进行交换就可以完成从大到小的排序300 名?stud001,stud02,……stud300 ?
要去定义300个变量吗?肯定不合适。

我们可以用数组来实现
数组:是具有一定顺序关系的若干相同类型变量的集合,用数组名标识
1.学习新课:
①一维数组的定义和使用3min
定义方式:数据类型数组名[常量表达式];
例 int a[6];表示有6个元素,元素是类型是整型,数组名是a。

数据类型:可以是C语言里面提供的任意数据类型,int,float,char……
float stu[300];
数组名:一定要是合法的标示符,(合法标示符,字母,数字,下划线组成,首字节只能输字母或者下划线,不可以是C语言里面的关键字,数组名不可以是int)
常量表达式:定义时数组的长度必须是常量,不能用变量定义数组的长度
int i=15;
int data[i];( )
②一维数组元素的使用5min
数组必须先定义,后使用
通过数组名和下标的方式来表示数组名
例如int a[6];//a[0]表示第一个元素,a[1]表示第二个元素。

……a[5]表示第5个元素。

注意越界, a[6]越界
不能一次使用全部数组的元素,只能逐个引用数组元素。

例如:不能一次性对一整个数组进行赋值,只能对一个个元素进行赋值
int a[10];
a=10; ( )
a[0]=10;a[1]=10;a[2]=10
数组的一些操作常常和for语句以前使用
例如;一个长度为10的数组,全部赋值为1
int a[10];
for(j=0;j<11;j++)
{a[j]=10;}
提问:以上程序存在问题,请指出
越界了,定义的数组大小是10,最后一个元素应该是a[9]
③一维数组在内存中的分配(难点)8min
移动专业是一个比较偏硬件的专业,任何的移动硬件设备,都是需要软件支持的。

软件开发很多都是对硬件进行编程,目前在通信的企业中,都是用C语言来完成对硬件的编程。

对硬件编程一定要弄清楚内存和地址。

弄清楚了内存和地址,才能帮助我们学习好后续的指针。

编译时分配空闲的连续内存
内存字节数=数组大小×每元素的字节
int a[6];
(板书)
分配了6*4=24个内存
内存跟每个人的家一样,都有一个住址,一个门牌号,
内存也由门牌号,称为内存地址,例如a[0]的地址是0x0002,因为分给数组的内存是连续分配的,a[1]相当于在它的隔壁,一个元素占了4个字节,所以a[1]的地址是0x0006.
提问 char ch[10];分配了多大的内存?假如ch[0]分配的地址是0x0002,ch[1]分配的地址是什么?
④一维数组的输入输出8min
回忆,提问:一般类型数据的输入输出
int a;
scanf(“%d”,&a);//&为取地址符,意义是往a所在的地址输入一个数
printf(“%d”,a);
数组的输入输出:
int x[10];
scanf("%d",&x[0]);//为第0个元素输入值
printf ("%d",x[0]); //输出第0个元素的值
for(i=0;i<10;i++)//循环为数组的每一个元素输入值
{
scanf("%d",&x[i]);
//&为取地址符,意义是往a[i]这个元素所在的地址输入一个数}
for(i=0;i<10;i++)//循环输出数组的每一个元素的值
{
printf ("%d",x[i]);
}
&是一种运算符,取地址符(重难点),
a&b,这时,&符号是“按位与”例如10&11==10
&a,这时,&表示“取地址”
(板书)
&a[0]==0x0002,&a[0]表示a[0]这个元素所占内存的地址
&a[1]==0x0006,&a[1]表示a[1]这个元素所占内存的的地址
&a[2]==0x000a,&a[2]表示a[2]这个元素所占内存的的地址
a==0x0002,a表示数组所占内存的首地址,其值就是&a[0]
scanf("%d",&a); 往a所在的地址输入一个数
scanf("%d",&x[i]); 往想x[i]这个元素的地址输入一个数
这里要强调输入时,要指明为某个元素输入,还要在前面加上取地址符&
在学习指针之前,只有scanf函数会用到&
⑤做书上P88的练习题,加强学生对于数组、数组元素的表示,数组元素的地址等基本知
识的理解(提问)4min
⑥如何运用VC调试工具观察内存分配状况(难点:帮助理解内存分配,在程序出现问题
时,可以利用这种方法查找问题,在实际编程应用中很常用)5min 打来一段关于数组的程序,演示过程:
只有在调试的过程中才能去查看,
1,设置断点
2,点击Go,开始调试
3,点击打开调试窗口中的Memory和watch
4,执行下一步(单步执行)——F10
在watch中查看数组元素的值和元素所在的地址:
在watch中输入x,回车,这是系统随机分配的,例如0x0012ff58,表示分配给数组x 的内存的首地址
在watch中输入x[0],回车,表示第0个元素的值,例如从键盘输入的是10
在watch中输入&x[0],回车,表示第0个元素所在地址的值0x0012ff58,和x相同,因为数组的首地址,就是第一个元素的地址
在watch中输入x[1],回车,表示第1个元素的值,例如从键盘输入的是20
在watch中输入&x[1],回车,表示第1个元素所在地址的值0x0012ff5c,在第0个元素的地址数上加了4,因为1个元素占4个字节
(板书)
添加设置断点——F9
点击Go
点击打开调试栏中的Memory和watch窗口
执行下一步(单步执行)——F10
Memory显示的是内存的分配状况,
Watch用于查看,某个变量当前的值或者这个变量所在的地址
练习1:要求编程实现从键盘输入一个整型数组,并输出。

要求,用调试工具观察数组元素内存分配情况15min 根据学生的操作情况,找出共性问题,有针对性的重新演示一遍5min
练习2:读10个整数存入数组,找出其中最大值和最小值。

要求,用调试工具观察程序中关键变量的变换
学生思考方法5min 讲思路,带学生画流程图(虚线内部的是循环体) 5min 步骤:
1. 输入:for循环输入10个整数
2. 处理:
(a) 先令max=min=x[0]
(b) 依次用x[i]和max,min比较(循环)
若max<x[i],令max=x[i]
若min>x[i],令min=x[i]
3. 输出:max和min
学生完成本题练习10min 根据学生的操作情况,找出共性问题,进行讲解。

给学生演示最终结果,用调试工具的watch 窗口,观察关键变量min和max的变化5min
3.课堂小结:10min
本节课学习了一维数组基本的使用规则,如何定义,如何使用,以及使用时要注意的问题,例如数组定义时,数组的长度必须是个常量,使用数组元素时,要注意越界的问题。

数组内存的分配,取地址符的含义,是为了后续学习,字符串,指针打下基础,
利用VC调试工具查看变量,以及变量的地址。

可以更快的帮助我们找出程序中很难找到的一些逻辑问题。

(因为在实际编程过程中,写代码和调试代码所花的时间是50:50的,所以一定要学会如何调试程序,即找出程序中存在的问题)
作业:P85 2
后续:掌握了一维数组的基本知识,以及调试方式,后续会解决一些更复杂的实际问题,
分配了6*4=24个内存
内存跟每个人的家一样,都有一个住址,一个门牌号,内存也由门牌号,称为内存地址,例如
&a[0]==0x0002,&a[0]表示a[0]这个元素所占内存的地址&a[1]==0x0006,&a[1]表示a[1]这个元素所占内存的的地址&a[2]==0x000a,&a[2]表示a[2]这个元素所占内存的的地址
板书)。

相关文档
最新文档