C语言单元6-3教案
教案首页 周次 第周 时间 年 月曰 专业班级: 授课 章节 单元6:数组的使用(三) 授课 方式 理论课口实验课口实训课 □教学做一体化课程M 教学 时数 2学时 教学 目的 理解字符数组的含义;掌握字符数组的定义、初始化及引用方法;掌握字符串及其处理函数。 教 学 组 织 教学内容 教学过程设计及时间分配 1. 复习二维数组 2. 字符数组的定义与初始化 3. 字符串的与处理函数 4. 案例与实践操作 1. 复习讲授互动5分 2. 字符数组的定义讲授10分 3. 字符数组的初始化演示、讲授10分 4. 字符串的引用演示、操作15分 5. 字符串处理函数演示、讲授25分 6. 随堂练习案例20分 7. 小结、作业及实验安排讲授5分 教学 重点 重点:字符数组与字符串的定义 难点:字符串操作函数 教学 难点 教学 手段 理论讲授、演示、对比讲解、案例分析 双语 教学 character string 一 字符串 bubble sort —冒泡排序 作业及 思考题 作业:单元总结与单元练习 知识拓展:算法的空间复杂度 参考 资料 1. 谭浩强主编的《C语言程序设计》(清华大学出版社)。 2. 丹尼斯•里奇《C语言程序设计》(第二版)。 3. NCRE考试用教程《C语言程序设计》(高等教育出版社)。 4. 网络教学资源:国家精品课网站:http:〃121.26.225.5/jpkc/cyuyan/index.htm。 本讲 内容 学法 指导 对于字符串的使用,首先理解其存储形式,在此基础上掌握字符串的几个重要处理函数,个别 函数相对抽象,需要通过实践加深印象。 课程:C语言程序设计 学年第 学期 授课教师: 单元6-3数组的使用(教案) 教学内容及教学过程 说明 步骤一复习 二维数组的定义 二维数组的初始化 二维数组元素的引用 步骤二讲授 6. 3字符数组与字符串 字符数组:存放字符型数据的数组,其中每个数组元素的值都是一 个字符。 字符串:C语言用字符数组实现字符串,此时需在字符数组有效字符 的末端存放一个字符串结束标志 \0 。 6. 3. 1字符数组的定义及初始化 【例6-16] 类比 (Dchar s[3],str[4][5];〃定义一维字符数组s和二维字符数组 str (2) chars[3]=(板,“,V}; 〃定义一维字符数组s,同时为各个元 素初始化 (3) char str[6]=( C, h,亍,5n\ ?a\⑩}; 〃定义一维字符数组存放 字符串“ China“ (4) char str[6]=( “China“); 〃与(3)等价,可简写为 char str[6]= “China“; (5) char str[3][10]= ( “China»,“Italy“,“Germany“}; //.定义二维字符数组 str,存放三个字符串 实例说明 注意特殊结束符 6. 3. 2字符串及其处理函数 程序开头使用编译预处理命令#include 。 1.字符串输入函数gets() 函数调用格式:gets(str); 函数功能:在标准输入设备输入一个字符串,以回车符结束,并将 字符串存放到str指定的字符数组或存储区域中。 注意 2.字符串输出函数puts() 函数调用格式:puts(str); 函数功能:将str中存放的字符串输出到显示器,输出时自动将字符 串结束标志,\0,转换为回车换行符。 【例6-18] char str[20]= “China“; puts(str); 输出结果为:China 3.求字符串长度函数strlen() 函数调用格式:strlen(str); 函数功能:求str所代表的字符串的长度,不包括字符串结束标志,\0,。 【例6-19] 重点 int len; char str[20]= “China“; len=strlen(str); //len 的值为 5 重点强调 4.字符串复制函数strcpy() 函数调用格式:strcpy(strl,str2 ); 函数功能:将字符串str2复制到strl对应的字符数组或存储区域中。 【例6-20] char strl[20],str2[20]= “China“; strcpy(strl,str2); puts(strl);〃输出字符串 strl,即 China 难点 分析算法 5.字符串连接函数strcat() 函数调用格式:strcat(strl,str2); 函数功能:去掉strl后的切,将字符串str2连接到strl的有效字符 之后o 【例6-21] char strl[20]= “Hello!“,str2[20]= “China.“; strcat(strl,str2); puts(strl);〃输出字符串 strl,即 Hello!China. 需要说明的是,strl所对应的存储空间要能容得下连接后的字符串。 6.字符串比较函数strcmp() 函数调用格式:strcmp(strl,str2); 重点分析 函数功能:按字典序比较字符串strl和str2的大小。 比较规则:将两个字符串自左至右逐个字符按ASCII值大小比较, 直到出现不同的字符或遇 \0 为止。若全部字符相同,则认为两个字符串 相等,返回0值;否则,计算第一对不同字符的ASCII值之差,若为正 整数,贝0 strl>str2,返回值为1;若为负整数,贝0 strla[j+l]则 两元素交换,否则不交换。 (2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。 每对元素比较后都可得到“小数在先,大数在后”的结果,这样进行一 轮以后,数组最大值就排在了数组最后一个位置。 (3)针对所有的元素(除最后一个元素)重复以上的步骤,就排好数组 最后两个位置。 (4)依此类推,经过N-1轮比较后完成排序。 程序实现代码如下: #include #define N 10 void main() int i,j,k,t,a[N]; printfC i#输入%d 个整数:\n“,N); for(i=0;i