第27-28 课时
授课容 第6章(4) 字符串函数的应用 教学目的 字符数组定义、初始化、引用;字符串与字符数组;字符串处理函数;字符数组应用 和要求 重点 难点 重点:字符串与字符数组;字符串处理函数 难点:字符串与字符数组;字符串处理函数 讲授 一、使用字符串处理函数 1、puts函数 2、gets函数 3、strcat函数:字符串截取函数 4、strcopy和strncopy函数:字符串复制函数 5、strcmp函数:字符串比较函数 6、strlen测试字符串长度函数 7、strlwr函数:转换为小写的函数 8、strupr函数:转换为大写的函数 二、字符数组应用举例 例6.8:由键盘任意输入一个字符串和一个字符,要求从该字符串中删除所指定的字符。 例6.9:由键盘输入三个字符串,找出其中的最大串。(字符串库函数的应用) 三、学会阅读C标准函数手册 附录F C库函数 1、引用预编译头文件 include(包含头文件) 2、学会阅读函数库函数的函数类型和参数 四、字符数组函数的综合练习 1、打印辉三角形 2、有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。 23、魔方阵,要求输出1~n 4、找出二维数组的鞍点,即该位置上的元素在该行上最在、在该列上最小,也可能没有鞍点。 5、编一程序,将两个字符串连接起来,不要用strcat函数。 四、上机演示及学实践操作 在讲课的同时切换软件界面调试代码 教 学 安 排 课后自我 总结分析 备注 《C语言程序设计》教案
第29-30 课时
授课容 第7章(1) 函数及函数的调用 教学目的 掌握函数定义、调用、声明;函数参数传递方式;了解函数递归调用 和要求 重点 难点 重点: 函数定义、调用、声明; 函数参数传递方式 难点:函数参数传递方式-传址(尚未学习指针,用数组举例) 讲授 一、函数概述 1、C语言的函数。C语言的函数是子程序的总称,包括函数和过程。 C语言函数可以分为库函数、用户自定义函数 2、C语言的程序由函数组成,函数是C语言程序的基本单位,程序的总体功能通过函数的调用来实现。其中,main起点(图) 3、函数的一些概念:主函数、其它函数;主调函数、被调函数;库函数、用户自定义函数;无参函数、有参函数;无返回值函数、有返回值函数 二、函数的一般形式-函数应当先定义,后调用。 函数定义的一般形式及说明 (1)(2) 例7-1:输入三个整数,求三个整数中的最大值,打印。思考问题。 三、函数的参数和返回值 1、 形式参数 2、实际参数 3、参数的传递。 2、 函数返回值。return语句及说明。 四、函数的调用 1、 函数调用的一般形式及说明(单独语句/表达式中、参数相容) 例7-3:以表达式的形式进行函数的调用。(自学) 2、 函数调用时数据的传递-参数传递、函数的返回值、全局变量 例7-4:求学生平均成绩。P110.(注意参数传递的是数组的地址) 3、 函数的声明 例7-5:函数声明例子。P112. 五、函数的嵌套调用和递归调用 函数允许嵌套调用和递归调用。递归调用是嵌套调用的特例。 (1)函数的嵌套调用 例7-6:计算两整数的最小公倍数。P113. (2)函数的递归调用 例7-7:用递归法求n!(P.114) 教 学 安 排 课后自我 总结分析 备注 《C语言程序设计》教案
第31-32 课时
授课容 第7章(2) 函数变量的作用域和生命周期 教学目的 掌握变量作用域、生命期 和要求 掌握插入排序 重点 难点 重点:变量作用域、生命期;插入排序 难点:变量作用域、生命期;插入排序 讲授 六、变量的作用域(有效围、可见性) 变量的作用域:变量的有效围或者变量的可见性。变量定义的位置决定了变量的作用域。 变量从作用域(变量的有效围,可见性)的角度可以分为:局部变量,全局变量。 1、局部变量(函数体变量、形参变量、复合语句变量)-互不干预、动态分配 例7-8:各函数局部变量同名的应用示例。P116-117. 2、全局变量(所有函数之外-文件作用域、程序作用域) 全局变量可以和局部变量同名-坐井观天 例7-9:全局变量、局部变量同名的应用示例。P118。 例7-10:全局变量、局部变量的应用示例。P118。 七、变量的存储类别(生存期、生命期) 变量从空间上分为局部变量、全局变量。 从变量存在的时间的长短(即变量生存期)来划分,变量还可以分为:动态存储变量、静态存储变量。变量的存储方式决定了变量的生存期。 C语言变量的存储方式可以分为:动态存储方式、静态存储方式。 全局变量全部是静态的;局部变量可以是静态,也可以是动态(auto,register)。 例7-11:寄存器局部变量的应用.P120.(完成n+(n-1)+(n-2)+...+1) 例7-12:静态局部变量的应用示例。P121. 八、部函数和外部函数 默认是外部函数 九、函数应用举例 例7-14:字符串逆序。P124. 例7-15:求矩阵最大元素。P124-125. 例7-16:利用插入法将10个字符从小到大进行排序。P125-126. 教 学 安 排 课后自我 总结分析 备注
《C语言程序设计》教案
第33-34 课时
授课容 第8章(1) 指针概述及指针作为函数参数 教学目的 指针的基本概念,变量访问方式;指针变量定义、赋值、引用。 和要求 指针作为函数参数。 重点 难点 重点:指针的基本概念;指针变量定义、赋值、引用;指针作为函数参数 难点:指针的基本概念 讲授-指针基础 一、指针变量的定义(变量先定义后使用) 1、定义格式: 2、说明: (1)指针变量基类型-指针变量指向数据的类型 (2)指针变量存放地址值,本身占用空间2字节 二、指针变量的赋值(使用未赋值指针等同于向一个随机的存中写入数据) 1、将地址直接赋值给指针变量。例如,float *f=malloc(4); 2、将变量地址赋值给指针变量。例如:float a,*p;p=&a; 三、指针变量的引用 1、&运算符(取地址运算符) 2、*运算符(指针运算符、间接访问运算符) 例9-1,P137.指针变量定义、赋值、引用例子。 四、指针变量作为函数的参数 变量可以作为函数参数,指针变量同样可以作为函数参数。使用指针作为函数参数,可以在函数中对指针所指向变量的值进行处理(修改)。 指针作为函数参数,本质上同样是单向传值,但是由于传递的是地址值,所以可以通过地址值间接修改形参、实参共同指向的变量。 例9-2:输入a,b两个数交换后输出。 在swap函数中使用两个指针作为函数参数,对两个指针所指向变量值进行交换。 结论: 1、要在被调用函数中,修改主调函数的变量值应当: (1)将主调函数变量的地址传递给被调用函数,就是说函数应当传递的是变量的地址。 (2)被调用函数的形参应当使用指针变量接受主调函数的地址值。 (3)在被调用函数过形参指针变量间接访问,修改实参、形参地址所共同指向的变量。本例的操作是交换两个指针变量所指向的变量。 2、函数使用指针作为参数,可以增加主调函数与被调函数之间数据沟通的渠道。 教 学 安 排 课后自我 总结分析 备注
《C语言程序设计》教案
第35-36 课时
授课容 第8章(2) 通过指针引用数组 教学目的 通过指针引用数组元素;数组的指针变量”作为函数参数;通过指针指向多维数组 和要求 重点 难点 重点:数组的指针变量”作为函数参数;通过指针指向多维数组 难点:数组的指针变量”作为函数参数;通过指针指向多维数组 讲授 一、数组元素的指针 每个数组元素都在存中占有存储单元,它们都有相应的地址,所谓数组元素的指针就是数组元素的地址。 二、在引用指针元素时指针的运算 1、在一定条件下允许对指针进行加和减的运算。 2、在指针指向数组元素时,可以对指针进行加和自加,减和自减运算。 三、通过指针引用数组元素 1、下标法 2、指针法 例8.7 通过指针变量输出整型数组a的10个元素。 四、用数组名和“数组的指针变量”作为函数参数 例8.8 将数组a中n个整数按相反顺序存放。 例8.9 将例8.8写成指针变量作实参 例8.10 用指针法对10个整数按从大到小顺序排序 五、通过指针指向多维数组 1、多维数组的地址 2、指向多维数组元素的指针 (1)指向数组元素的指针变量 例8.12 有一个3×4的二维数组,要求用指向元素的指针变量输出二维数组各元素的值。 (2)指向由m个元素组成的一维数组的指针变量 3、用指向数组的指针作函数参数 例8.14 有一个班,3个学生,各学4门课程,计算总平均分数以及第n个学生的成绩。 例8.15 在例8.14的基础上,查找有1 门以上课程不及格的学生,输出他们全部课程的成绩。 教 学 安 排 课后自我 总结分析 备注 《C语言程序设计》教案
第37-38 课时