12.1判断是否为回文对联 教案(表格式)-《C语言程序设计》同步教学(电子科技大学出版社)

资源下载
  1. 二一教育资源

12.1判断是否为回文对联 教案(表格式)-《C语言程序设计》同步教学(电子科技大学出版社)

资源简介

课题 判断是否为回文对联
课时 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( )时,如何结束键盘输入? 【学生】聆听、思考、回答 【教师】总结学生的回答 2.字符串处理函数 常见的字符串处理函数包括检测字符串长度函数strlen( )、字符串连接函数strcat( )、字符串拷贝函数strcpy( )、小写字母转换函数strlwr( )、大写字母转换函数strupr( )和字符串比较函数strcmp( )等,其调用格式和功能如表6-3所示。 表6-3 字符串处理函数 调用格式功 能举 例strlen(字符串)检测字符串的实际长度k=strlen(s);/*检测字符串s的长度并将长度值赋给k*/strcat(字符串1,字符串2)将字符串2连接到字符串1的后面strcat(str1,str2); /*将str2连接到str1之后*/strcpy(字符串1,字符串2)将字符串2复制到字符串1中strcpy(str1,str2); /*将str2复制到str1中*/strlwr(字符串)将字符串中的字母转换成小写字母strlwr(s);/*将字符串s中所有大写字母转换成小写字母*/strupr(字符串)将字符串中的字母转换成大写字母strupr(s);/*将字符串s中所有小写字母转换成大写字母*/strcmp(字符串1,字符串2)从左至右逐个比较两个字符串中相应字符的ASCII码值k=strcmp(str1,str2);/*比较str1和str2的大小,并将比较结果赋给k*/
【课堂讨论】 【教师】请学生分组讨论以下问题 请同学们以小组为单位,讨论如何自己用代码实现字母的大小写转换。 【学生】讨论、总结、回答 【教师】总结学生的回答 提示 在使用字符串处理函数时,应注意以下四点。 (1)使用函数strlen(字符串)时,检测到的字符串长度不含字符串结束标志'\0'。 (2)使用函数strcat(字符串1,字符串2)时,会先删除字符串1后的结束标志'\0',再连接字符串。 (3)使用函数strcpy(字符串1,字符串2)时,字符串1的长度应大于字符串2的长度,否则会产生溢出错误。 (4)使用函数strcmp(字符串1,字符串2)时,如果字符串1等于字符串2,则结果为0;如果字符串1大于字符串2,则结果为一个正整数;如果字符串1小于字符串2,则结果为一个负整数。 素养之窗 俗话说:“众人拾柴火焰高。”即个人的力量是有限的,而一群人形成的集体力量是强大的,发挥集体的力量可以实现个人无法实现的目标。对于大学生而言,集体意识非常重要。在学习和生活中,我们要树立集体意识,通过集体合作实现最终的目标。在数组应用中,我们可以利用数组定义同类型变量,通过将变量集合在数组中成为集体,解决单独变量难以解决的问题,这就是集体的力量。 三、任务实施 【教师】多媒体观看“判断是否为回文对联”视频(详见教材),让学生熟悉程序要实现的功能,实现原理,代码设计流程,以及代码实现 1.任务分析 回文,指的是将词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情况。在回文对联中,对联正着读和倒着读内容相同,即若对联的字符个数为k,则第i个字符和倒数第i个字符相同。故在本任务中,要判断字符串是否为回文对联,就要利用循环语句判断第i个字符和倒数第i个字符是否相同,若相同,则该对联是回文对联。 【课堂讨论】 【教师】请学生分组讨论以下问题 请同学们以小组为单位,结合上述实现原理,讨论程序中会用到哪些字符串处理函数。 【学生】讨论、总结、回答 【教师】总结学生的回答 2.参考程序 ……(详见教材) 3.运行结果 程序运行结果如图6-8所示。 【课堂问答】 【教师】随机邀请学生回答以下问题 请同学们思考,上述程序中,为何每次循环中,循环变量的值要增加2? 【学生】聆听、思考、回答 【教师】总结学生的回答 每个汉字所占长度为2个字符,故循环变量每次的变化量为2。 【学生】聆听、思考、理解、记录
课堂实训 【教师】介绍课堂实训要求,以及实训内容,要求学生按照实训要求完成实训任务 请同学们按照任务实施中判断是否为回文对联的程序设计思路和步骤进行练习。定义字符串数组,存放要判断的对联,调用计算字符串长度的函数得到字符串的长度。然后使用for循环判断第i个字符和倒数第i个字符是否相同,遇到不相同的则退出循环,则该对联不是回文对联。如果循环正常结束,i>=j,则该对联符合回文要求,输出是回文对联。最后运行程序,验证结果是否正确。 【学生】按照要求进行操作,完成后总结自己哪些地方做得很好,还有哪些地方需要改进
课堂小结 【教师】简要总结本节课的要点 本次课介绍了字符数组的定义,将字符数组的数据类型定义为char型。介绍了字符数组的引用,同样采用下标的形式,来访问数组里面的元素。讲解了字符数组定义时可以进行赋值,即字符数组初始化。讲解了字符串的定义,即用字符数组来存放字符串,字符串初始化的两种方法:一种是用字符常量初始化数组,另一种是用字符串常量初始化数组。介绍了常见的字符串处理函数,及其使用方法。最后通过任务实施,编程实现判断字符串是否为回文对联,练习本次课所学。 【学生】总结回顾知识点
作业布置 【教师】布置课后作业 请根据本课内容,完成课后习题中的相关习题。 【学生】完成课后任务
教学反思

展开更多......

收起↑

资源预览