内容正文:
课题
判断是否为回文对联
课时
2课时(90 min)
教学目标
知识目标:
(1)掌握字符数组的定义、引用和初始化方法
(2)掌握字符串处理函数的使用方法
能力目标:
能够使用数组处理相同类型的数据
素质目标:
通过回文对联,感受中华民族传统文化之美
教学重难点
教学重点:字符数组的定义、引用和初始化,字符串输入/输出函数,字符串处理函数
教学难点:字符串处理函数的灵活运用
教学方法
问答法、讨论法、讲授法、实践法
教学用具
电脑、投影仪、多媒体课件、教材
教学过程
主要教学内容及步骤
课前任务
【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过文旌课堂APP或其他学习软件,完成课前任务
请同学们上网查找,回文对联相对于普通对联的区别,总结回文对联的特点。
【学生】完成课前任务
考勤
【教师】使用文旌课堂APP进行签到
【学生】班干部报请假人员及原因
问题导入
【教师】请同学们扫码观看“回文序列”视频(详见教材),讨论并回答以下问题:
什么是回文序列?在长度为10的整型数组pa中存放值为0~9的任意数字,判断数组pa是否为回文序列的流程图如何绘制?
【学生】思考、举手回答
传授新知
【教师】讲解字符数组的定义、引用和初始化,字符串输入、输出函数、处理函数
一、字符数组的定义、引用和初始化
✈【教师】介绍定义字符数组的方法,下标的形式来引用数组元素,如何对字符数组进行初始化
1.字符数组的定义
定义字符数组的方法与定义数值型数组的方法类似,只是字符数组的数据类型为char型。例如:
char a[5]; /*定义一维字符数组a*/
char b[3][4]; /*定义二维字符数组b*/
2.字符数组的引用
字符数组与数值型数组的引用方式一样,可使用下标的形式。例如,为上面定义的数组a和数组b中的第1个元素赋值,方式如下。
a[0]='H';
b[0][0] ='a';
【课堂问答】
✈【教师】随机邀请学生回答以下问题
请同学们思考,在上述方式中b[0][0] ='a',是否可以使用b[0] ='a'将二维数组第一行都赋值为字符a?
✈【学生】聆听、思考、回答
✈【教师】总结学生的回答
3.字符数组的初始化
字符数组同样允许在定义时进行赋值,即字符数组初始化。例如:
char a[5]={'H','e','l','l','o'};
初始化后各元素的值为a[0]='H'、a[1]='e'、a[2]='l'、a[3]='l'、a[4]='o'。
字符数组初始化时,如果字符数组提供的数据个数少于数组元素个数,则多余的数组元素初始化为空字符'\0'。例如:
char b[9]={'G','o','o','d'};
初始化后各元素的值为b[0]='G'、b[1]='o'、b[2]='o'、b[3]='d'、b[4]~b[8]的值均为'\0'。
二、字符串
✈【教师】介绍字符串的定义,字符串初始化的方法,输入、输出函数,字符串处理函数
在C程序中,没有专门的字符串变量,而是用字符数组来存放字符串。在引用或处理字符串前,须首先定义和初始化字符串。
字符串初始化有两种方法:一种是用字符常量初始化数组,另一种是用字符串常量初始化数组。例如:
char string1[6]={'C','h','i','n','a'};/*用字符常量初始化数组*/
char string2[6]={"China"}; /*用字符串常量初始化数组*/
char string3[6]="China"; /*“{}”可省略*/
✈高手点拨
字符数组初始化时应注意以下两个问题。
(1)用字符串常量初始化时,字符数组的下标可以省略,此时数组元素的个数由赋值的字符串长度决定。例如,“char str[ ]="1a2b3c";”等价于“char str[7]="1a2b3c";”。
(2)当初始化时,若字符个数与数组长度相同,则字符末尾不加字符串结束标志'\0',此时字符数组不能作为字符串处理。例如,“char str[5]={'C','h','i','n','a'};”中,str[5]不能作为字符串处理。
1.字符串输入/输出函数
字符串输入/输出函数包括字符串输入函数gets( )和字符串输出函数puts( ),其调用格式和功能见表6-2所列。
表6-2 字符串输入/输出函数
函数调用格式
功 能
举 例
gets(字符串名)
字符串输入
gets(a);/*a为已定义的字符串*/
puts(字符串名)
字符串输出
puts(a);/*a为已定义的字符串*/
【课堂问答】
✈【教师】随机邀请学生回答以下问题
请同学们思考,在使用字符串输入函数gets( )时,如何结束键盘输入?
✈【学