C语言程序设计教案_第1页
C语言程序设计教案_第2页
C语言程序设计教案_第3页
C语言程序设计教案_第4页
C语言程序设计教案_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、咸宁职业技术学院教案课程名称: c语言程序设计 授课班级: 07计应1-2、07计科1-2班 授课教师: 姜 翠 2008年2月20日教案1授课题目第一章 c语言基本知识(发展历史、特点、程序结构、语法单位、上机步骤)课时安排2授课时间2007-2008第二学期教学目的1、了解c语言出现的背景2、掌握c语言程序的构成、书写格式和上机步骤教学内容:教学重点:c语言程序的构成教学难点:上机操作步骤一 引入新课从计算机应用基础中学过的计算机语言及语言处理系统引出c语言。步骤二 讲授新课一、 c语言出现的背景二、 c语言的特点1. 语言简洁、紧凑,使用方便、灵活;2. 运算符丰富3. 数据类型多(整型

2、、实型、字符型、数组类型、指针类型、结构体类型、共用体类等)4. 具有结构化的控制语句5. 语法不太严格,自由度大6. 既是高级语言,又具有低级语言的功能7. 生成目标代码质量高,程序执行效率8. 可移植性好三、 c语言程序的构成四、上机步骤1.进入环境c:tctc或进入ms-dos,cd,cd tc,tc2.编辑源程序3.保存源程序4.编译源程序f95.执行程序ctrl-f9,查看结果alt-f56. 退出c环境alt-x讨论、思考题、作业、上机练习:1、进入c编辑环境,按良好的程序设计风格输入例题,按步骤编译、运行、查看结果2、根据求两个数最大值的例题,试编写程序求三个数的最大值参考资料:

3、c语言程序设计(第三版) 清华大学出版社 谭浩强编著教学过程设计:1、 对本门课程进行总体概述10分钟2、 新课讲授65分钟3、 课堂练习10分钟4、 总结5分钟授课类型:理论课 教学方式:讲授 教学资源:多媒体 教案2授课题目第二章 数据类型(数据类型总述、整型、实型、字符型数据的常量及变量)课时安排2授课时间2007-2008第二学期教学目的1、掌握c的数据类型2、掌握整型、实型、字符型数据的常量及变量教学内容:教学重点:c语言程序的构成教学难点:上机操作步骤一 复习引导通常将程序的理解为两个方面:算法和数据结构,现在来学习其中一个方面数据结构。步骤二 讲授新课1、c语言提供的数据结构是以

4、数据类型形式出现的;2、数据在内存中存放的情况有数据类型决定; c的基本数据类型c语言的数据类型丰富,但在学习第8章之前,我们只遇到c的四种基本数据类型:整型、字符型、单精度实型、双精度实型常量与变量l常量:其值不能被改变的量。 两种:一般常量和符号常量1. 直接常量(字面常量):整型常量、实型常量、字符常量、字符串常量。2. 符号常量:l 变量:在程序运行过程中,其值会发生变化。一、整型数据1、 整型常量的表示方法 2、整型变量二、实型数据1、 实型常量的表示方法 2、实型变量步骤三 课堂小结1、 c的基本数据类型int、float、double2、 各种类型的常量表示、变量定义,以及不同类

5、型的数据在内存中的存储形式讨论、思考题、作业、上机练习:练习p32:t1,t2,t3,t4,t5,t6 上机:t8、t9参考资料:c语言程序设计(第三版) 清华大学出版社 谭浩强编著教学过程设计:1、新课讲授75分钟2、课堂练习10分钟3、总结5分钟授课类型:理论课 教学方式:讲授 教学资源:多媒体 教案3授课题目第二章 数据类型(字符型数据的常量及变量、字符串常量)课时安排2授课时间2007-2008第二学期教学目的1、掌握c的数据类型2、掌握字符型数据的常量及变量教学内容:教学重点:字符类型的常量和变量、字符串类型的常量教学难点:字符类型的数据在内存中的存储形式步骤一 复习引导 上次课我们

6、已经学习了基本数据类型中的整型和实型数据,这次课学习字符型数据。步骤二 讲授新课1、 字符型数据;2、 字符串常量;一、字符型数据1、字符常量2、字符变量3、字符数据的存放形式及使用方法二、字符串常量三、变量赋初值在定义变量时对变量进行赋值称为变量的初始化;格式:类型说明符 变量1=值1,变量2=值2,;注意: int a, b, c=5; 只对c初始化,值为5;对几个变量赋以同一个初值时,int a=b=c=5; 是非法的;int a=5, b=5, c=5; 是合法的。(注:a=b=c=5;是合法的赋值语句)说明:对变量赋初值,仅表示该变量在程序运行过程中执行本函数时的初值步骤三 课堂小结

7、1、 c的基本数据类型除了int、float、double外还有char2、 char类型的常量表示、变量定义,以及此类型的数据在内存中的存储形式讨论、思考题、作业、上机练习:练习p32:t1,t2。t3,t4,t5,t6 上机:t8、t9参考资料:c语言程序设计(第三版) 清华大学出版社 谭浩强编著教学过程设计:1、新课讲授75分钟2、课堂练习10分钟3、讲解前两章习题25分钟4、讲解前两次上机20分钟5、总结5分钟授课类型:理论课 教学方式:讲授 教学资源:多媒体 教案4授课题目第三章 运算符与表达式(算术、强制类型转换及自增、自减运算符及表达式)课时安排2授课时间2007-2008第二学

8、期教学目的1、掌握c语言中的各种运算符2、掌握运算符的优先级与结合性教学内容:教学重点:算术运算符、强制类型转换运算符及自增、自减运算符及表达式教学难点:各种表达式中运算符的运算顺序步骤一 复习引导用运算符和括号将运算对象(数据)连接起来的、符合c语法规则的句子称为表达式。步骤二 讲授新课a.优先级是指表达式中包含多个运算符时,先进行优先级高的运算符操作,然后在进行优先级低的运算符操作;b.当表达式中包含的几个运算符的优先级全相同时,由运算符的结合性来决定他们的运算顺序。一、算术运算符和算术表达式1、 基本的算术运算符2、 算术表达式3、 5种算术运算符的优先级别不同:二、强制类型转换运算符格

9、式:(类型关键字或类型名)表达式三、自增与自减运算符四、各类数值型数据间的混合运算混合算术表达式,如:10+a+ i*fd/e需自动转换成同一类型再运算;转换的规则如下:(书p54)步骤三 课堂小结1、 算术运算符、强制类型转换运算符的应用,及相关表达式的值2、 +、-运算3、 各种运算符的优先级讨论、思考题、作业、上机练习:练习:p48 t6参考资料:c语言程序设计(第三版) 清华大学出版社 谭浩强编著教学过程设计:1、新课讲授75分钟2、课堂练习10分钟3、总结5分钟授课类型:理论课 教学方式:讲授 教学资源:多媒体 教案5授课题目第三章 运算符与表达式(赋值运算符、逗号运算符及关系、关系

10、、逻辑运算符及表达式)课时安排2授课时间2007-2008第二学期教学目的1、掌握c语言中的各种运算符2、掌握运算符的优先级与结合性教学内容:教学重点:赋值运算符、逗号运算符及关系、关系运算符及表达式、逻辑运算符及表达式教学难点:各种表达式中运算符的运算顺序步骤一 复习引导上次课学习了算术、强制类型转换运算符以及自增、自减运算符及其表达式,这次课继续学习赋值、逗号、关系、逻辑等运算符及其表达式步骤二 讲授新课一、赋值运算符和赋值表达式1、赋值运算符:= 2、类型转换 3、复合的赋值运算符 4、赋值表达式:二、逗号运算符和逗号表达式语法:表达式1,表达式2,表达式n语义:依次求各个表式的值,最后

11、一个表达式的值作为整个逗号表达式的值;三、关系运算符和关系表达式1、 关系运算符及其优先级2、 关系表达式3、 关系表达式的值4、 赋值运算符、逗号运算符及关系、关系运算符及表达式的运算以及值5、 各种运算符的优先级四、逻辑运算符和关系表达式1、逻辑运算符及其优先次序逻辑运算符及其优先次序 一元逻辑运算符:!(非),右结合 二元逻辑运算符:& (与)、|(或),左结合逻辑运算的真值表(书p40)2、逻辑表达式步骤三 课堂小结1、赋值运算符、逗号运算符及关系、关系运算符及表达式的运算以及值2、各种运算符的优先级讨论、思考题、作业、上机练习:练习:p48 t5参考资料:c语言程序设计(第三版) 清

12、华大学出版社 谭浩强编著教学过程设计:1、新课讲授75分钟2、课堂练习10分钟3、总结5分钟授课类型:理论课 教学方式:讲授 教学资源:多媒体 教案6授课题目第三章 运算符与表达式(条件、长度、位运算符及表达式)及前三章课后习题处理课时安排2授课时间2007-2008第二学期教学目的1、掌握c语言中的各种运算符2、掌握运算符的优先级与结合性教学内容:教学重点:条件、长度、位运算符及表达式教学难点:各种表达式中运算符的运算顺序步骤一 复习引导上次课学习了赋值运算符、逗号运算符及关系、关系、逻辑运算符及表达式的运算以及值的相关知识,这次课继续学习条件、长度及位运算符及表达式。步骤二 讲授新课一、条

13、件运算符和条件表达式1、 条件运算符:?: 结合方向:“自右向左”2、 一般形式:表达式1?表达式2:表达式33、 执行过程 4、优先级二、长度运算符和长度运算表达式1、 长度运算符:sizeof 用来求数据类型所占的字节数。2、 长度运算表达式:sizeof(数据类型)如:sizeof(float)的值为4。应用:一般与动态存储分配函数malloc和calloc联合使用。三、位运算符及表达式(一)按位逻辑运算符1、按位与(&)用途:(1)清零 (2)截取(析出)变量指定的二进制位,其余位清零。2、按位或(|) 用途:将二进制数据的指定位置1,而不管原来的二进制位状态如何。工作数:指定位为1,

14、其余位为03、按位异或()当且仅当参加运算的两个操作数对应的二进制位的状态不同时才将对应的二进制位置1; 用途:使指定的二进制位状态翻转(1变0,0变1) 与0相,保留原值步骤三 课堂小结1、条件、长度、位运算符及表达式以及值 2、各种运算符的优先级讨论、思考题、作业、上机练习:p48 t4参考资料:c语言程序设计(第三版) 清华大学出版社 谭浩强编著教学过程设计:1、新课讲授75分钟2、课堂练习10分钟3、总结5分钟授课类型:理论课 教学方式:讲授 教学资源:多媒体 教案7授课题目第四章 语句和顺序程序结构课时安排2授课时间2007-2008第二学期教学目的1、掌握赋值语句、输入输出语句2、

15、学会简单的顺序程序设计教学内容:教学重点:输入、输出语句教学难点:格式输入输出语句步骤一 复习引导上一章介绍的常量、变量、运算符、表达式等都是构成程序的基本成分。本章将介绍为编写简单程序所必需的一些内容。步骤二 讲授新课一、c语句概述1、控制语句:if-else、switch、for、while、do-while、continue、break、return2、函数调用语句: 如:printf(“hello, world!”);3、表达式语句: x+y; i+; a=2; a=3*5, 40 ; 4、空语句( ;)5、复合语句: 语句序列 二、 赋值语句赋值语句是由赋值表达式加上一个分号构成,如

16、:b=3; if(a=b)0) t=a;三、 数据输入输出的概念及在c语言中的实现1、输入输出操作是由函数来实现的2、在使用库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中。例#include 或 #include “stdio.h”3、字符输入、输出函数getchar()、putchar(c)4、格式输入、输出函数-scanf()、printf()四、顺序结构程序设计举例例1:输入三角形的三边长,求三角形面积。分析:三边为a,b,c,面积area2=s(s-a)(s-b)(s-c),其中s=(a+b+c)/2例2:从键盘输入一个大写字母,要求改用小写字母输出。

17、步骤三 课堂小结1、 字符输入输出函数:getcharputchar2、 格式输入输出函数:scanfprintf,特别注意scanf函数的地址项是否要加&3、 注意简单程序的结构,头文件、变量定义、输入语句及输出语句讨论、思考题、作业、上机练习: (p74)4.1参考资料:c语言程序设计(第三版) 清华大学出版社 谭浩强编著教学过程设计:1、新课讲授75分钟2、课堂练习10分钟3、总结5分钟授课类型:理论课 教学方式:讲授 教学资源:多媒体 教案8授课题目第四章 选择程序结构(if-else语句、switch语句)及while()和do-while()循环结构课时安排2授课时间2007-20

18、08第二学期教学目的1、掌握实现选择结构的两种语句、一个运算符2、掌握while()和do-while()循环结构2、学会编写选择结构及循环结构的程序教学内容:教学重点:if-else语句、switch语句、while()和do-while()语句教学难点:嵌套if-else语句中的if与else匹配问题、while()和do-while()语句步骤一 复习引导上一次课已经介绍了程序基本结构之一,但在大多数情况下还要用到选择和循环结构。步骤二 讲授新课一、条件语句if语句的三种形式语法1:if (表达式)语句; 语法2:if (表达式) 语句1; else 语句2;语法3:if (表达式1)

19、语句1; else if (表达式2) 语句2; else 语句n+1;说明: if (expression!=0) 完全可用 if (expression) 来代替;同理: if(!exp)语句; 等价于: if(exp= =0) 语句;二、switch 语句三、while()和do-while()语句1、while语句 语法:while (exp) 循环体语句;2、do-while语句语法:do 循环体语句; while (exp);四、程序举例例:求ax2+bx+c=0方程的根。(分情况讨论)步骤三 课堂小结1、 两种选择语句:if-else、switch语句,while()和do-wh

20、ile()循环结构,注意各种条件的描述;2、 在编写程序过程中,注意分支的作用范围,及复合语句的运用。讨论、思考题、作业、上机练习:上机作业p74: 4.3、4.4 、4.6 书面作业p74: 4.2、4.5参考资料:c语言程序设计(第三版) 清华大学出版社 谭浩强编著教学过程设计:1、新课讲授75分钟2、课堂练习10分钟3、总结5分钟授课类型:理论课 教学方式:讲授 教学资源:多媒体 教案9授课题目第四章 for循环程序结构及其他控制语句课时安排2授课时间2007-2008第二学期教学目的1、掌握for循环语句的语法结构、熟悉三种循环语句嵌套使用的方法2、灵活运用各种控制语句来编写程序教学内

21、容:教学重点:for循环语句、break、continue控制语句教学难点:三种循环语句的区别步骤一 引入新课在c语言中可以用以下语句来实现循环: (1)while (2)do-while (3)for步骤二 讲授新课一、for 语句语法:for(表达式1;表达式2;表达式3) 循环体语句;注意与while()和do-while()循环结构作比较!二、循环的嵌套及几种循环的比较三种循环可以互相嵌套例:打印九九乘法表说明: 内循环必须完全包含在外循环中,不能交叉; 并列循环允许使用相同的循环变量,嵌套循环不允许三、break语句和continue语句1、break语句:只能用在循环语句、swit

22、ch语句中,它的功能是强行退出循环或switch。2、continue语句:只能用在循环语句中,它的功能是结束本次循环,跳到循环体中下面尚未执行的语句,接着进行下次是否执行循环的判定。四、程序举例例1:求fibonacci数列的前40个数,即f1=1(n=1),f2=1(n=2),fn=fn-1+fn-2(n大于2)例2:判别m是否为素数。在此基础上求100200间的全部素数。程序设计的三种方法:1、枚举法:就是逐一列举出可能解的各个元素,并加以判断,直到求得所需要的解。常用在排列、组合、数据分类、信息检索、多解方程的求解上;2、归纳法:是从大量的特殊性中总结出规律性或一般性的结论。在程序设计

23、上主要表现为递归和迭代、数列和级数求和。3、抽象法:自顶向下,逐步求精。步骤三 课堂小结1、for语句的语法结构,特别是for语句中三个表达式的作用2、whie与do-while、for语句的区别及循环控制的实现方法讨论、思考题、作业、上机练习:上机练习:(p74)4.7、4.8、4.9参考资料:c语言程序设计(第三版) 清华大学出版社 谭浩强编著教学过程设计:1、新课讲授75分钟2、课堂练习10分钟3、总结5分钟授课类型:理论课 教学方式:讲授 教学资源:多媒体 教案10授课题目第五章 数组(一维、二维数组的定义、引用、初始化)课时安排2授课时间2007-2008第二学期教学目的1、掌握一维

24、数组的定义和引用2、掌握二维数组的定义和引用教学内容:教学重点:一维、二维数组的定义、引用、初始化教学难点:数组的存储形式,数组的首地址步骤一 引入新课迄今为止,我们使用的都是属于基本类型的数据,c语言还提供了构造类型的数据:数组类型、结构体类型和共用体类型。数组是有序数据的集合,数组中每一个元素都属于同一个数据类型。 步骤二 讲授新课一、一维数组的定义: 类型说明符 数组名exp ;例如:int data10, number5;二、一维数组元素的引用:数组名下标三、一维数组的初始化1. 在定义数组时对数组元素赋以初值;int a10=0, 1, 2, 3, 4, 5, 6, 7, 8, 9;

25、2. 可以只给一部分元素赋值; int a10=0, 1, 2, 3, 4;3. 如果想使一个数组中全部元素值为0,可简便实现;int a10=0, 0, 0, 0, 0, 0, 0, 0, 0, 0;其实,对static数组不赋初值,系统会对所有数组元素自动赋以0值,即上句等价于: static int a10;4. c允许通过所赋初值的个数来隐含定义一维数组的大小;int a=0,1,2,3,4,5,0; 相当于 int a7=0,1,2,3,4,5,0;二维数组的定义和引用一、二维数组的定义 类型说明符 数组名exp1exp2; 如:int number54; char ch34, na

26、me8; 数组的存储结构:以行为主序的连续空间二、二维数组的引用:二维数组元素的表示形式为:数组名下标下标步骤三 课堂小结1、 一维数组、二维数组的定义、引用及初始化2、 一维数组、二维数组的存储形式讨论、思考题、作业、上机练习:(p90-p91)t5.5 t5.6 t5.10参考资料:c语言程序设计(第三版) 清华大学出版社 谭浩强编著教学过程设计:1、新课讲授75分钟2、课堂练习10分钟3、总结5分钟授课类型:理论课 教学方式:讲授 教学资源:多媒体 教案11授课题目第五章 数组(字符数组的输入与输出)课时安排2授课时间2007-2008第二学期教学目的1、掌握字符数组的定义、初始化、引用

27、,及输入与输出2、掌握字符串处理函数教学内容:教学重点:字符数组的输入与输出教学难点:字符串处理函数步骤一 复习引导从一般的一维数组、二维数组到特殊的字符数组步骤二 讲授新课一、字符数组的定义 char 数组名exp; 如:char c10;二、字符数组的初始化1. 给每一个字符型数组元素依次赋给一个单字符。char str6=c, h, i, n, a, 0;2.直接在赋值号右边给出字符串常量。如:char str6=“china”;三、字符数组的引用四、字符串和字符串结束标志字符串结束标志是“0”,如:char ch=”china”; “china”在存储器中实际占用6个字节:五、字符数组

28、的输入和输出1、字符数组的输出(1)用格式符“c”控制的 printf();(2)用格式符“s”控制的 printf();(3)puts (字符数组);2、字符数组的输入(1)用格式符“s”控制的scanf();如果利用一个scanf函数输入多个字符串时,则以空格分隔;(2)用gets( );如: char ch16; gets(ch); 与scanf不同,输入字符串中的空格也会被接收。六、字符串处理函数1、puts(字符数组) 2、gets(字符数组)3、strcat(字符数组1,字符数组2) 4、strcpy(字符数组1, 字符串2) 5、strcmp(字符串1,字符串2) 6、strle

29、n(字符数组) 7、strlwr(字符串) 8、strupr(字符数组)步骤三 课堂小结1、 字符串的结束标记2、 字符串的输入与输出,gets、puts3、 字符串处理函数讨论、思考题、作业、上机练习:(p91)t5.8 t5.9参考资料:c语言程序设计(第三版) 清华大学出版社 谭浩强编著教学过程设计:1、新课讲授75分钟2、课堂练习10分钟3、总结5分钟授课类型:理论课 教学方式:讲授 教学资源:多媒体 教案12授课题目第五章 数组(程序举例)课时安排2授课时间2007-2008第二学期教学目的学会用数组解决问题教学内容:教学重点:教学难点:步骤一 复习引导步骤一、复习举例我们已经学习了

30、数组这种数据结构,但还要学会用数组来解决具体问题。习题1:有一已排好序的数组,今输入一个数,要求按原来的排序规律将它插入到数组中。main() int a11=1, 4, 6, 9, 13, 16, 19, 28, 40, 100; int temp1,temp2,number,end, i, j ; for( i=0; iend ) a10=number;else for( i=0; inumber) break; for( j=10; ji; j-) aj=aj-1; ai=number; for(i=0; i11; i+) printf(“%6d”,ai); 步骤二 讲授新课习题2:编写

31、一个程序,将字符数组s2中的全部字符拷贝到字符数组s1中。不用strcpy函数。拷贝时,0也要拷贝进去。0后面的字符不拷贝。#include main( ) char s180, s280; int i; printf(“input s2:”); scanf(“%s”, s2); for(i=0; i=strlen(s2); i+) s1i=s2i;printf(“s1:%sn”,s1); 步骤三、课堂小结1、 三种排序方法:冒泡排序、选择排序、插入排序2、 字符数组或字符串的处理讨论、思考题、作业、上机练习:(p91) 继续完成课后编程题目。参考资料:c语言程序设计(第三版) 清华大学出版社

32、 谭浩强编著教学过程设计:1、新课讲授45分钟2、课堂练习10分钟3、讲解习题35分钟授课类型:理论课 教学方式:讲授 教学资源:多媒体 教案13授课题目第六章 编译预处理(宏的使用,文件包含)课时安排2授课时间2007-2008第二学期教学目的1、了解预处理的概念及特点2、掌握有参宏与无参宏的定义及使用,领会文件包含的使用及效果教学内容:教学重点:掌握宏的使用,文件包含教学难点:有参宏与无参宏的使用步骤一 复习引导 ansi c标准规定可以在c源程序中加入一些“预处理命令”,以改进程序设计环境,提高编程效率。 步骤二 讲授新课c语言与其他高级语言的一个重要区别是可以使用预处理命令和具有预处理

33、的功能。c提供的预处理功能主要有以下三种: 宏定义、文件包含、条件编译。分别用宏定义命令、文件包含命令、条件编译命令来实现。为了与一般c语句相区别,这些命令以符号“ #” 开头。宏定义 宏: 代表一个字符串的标识符。 宏名:被定义为“宏”的标识符。 宏代换(展开):在编译预处理时,对程序中所有出现的 “宏名”,用宏定义中的字符串去代换的过程。一、不带参数的宏定义 一般形式: #define 标识符 字符串二、带参数的宏定义 格式:#define 宏名(参数表) 字符串“文件包含”处理一般形式,#include “文件名” 或 #include 步骤三 课堂小结 本课主要讲解了宏定义、“文件包含

34、”处理。对带参数的宏的使用,及与函数的使用的区别。搞清经常使用的头文件。讨论、思考题、作业、上机练习:p99 t1、t2、t3 参考资料:c语言程序设计(第三版) 清华大学出版社 谭浩强编著教学过程设计:1、新课讲授55分钟3、课堂练习10分钟4、习题处理25分钟授课类型:理论课 教学方式:讲授 教学资源:多媒体 教案14授课题目第七章 函数(函数定义、调用的一般形式)课时安排2授课时间2007-2008第二学期教学目的掌握函数定义、声明、调用的一般形式教学内容:教学重点:函数定义、调用的一般形式教学难点:形式参数和实际参数步骤一 复习引导一个c语言源程序可由一个主函数和若干个辅助函数组成。由

35、主函数调用其他函数,其他函数也可以互相调用。 步骤二 讲授新课7.1 概述 例7.1 简单函数的一个例子7.2 函数定义和声明的一般形式定义:(一)无参函数的定义形式 类型标识符 函数名( ) 函数体(包括声明部分和执行部分) (二)有参函数定义的一般形式 类型标识符 函数名(形式参数表) 函数体(包括声明部分和执行部分) (三)一个函数可以是空函数 如 dummy( ) 声明: 函数类型 函数名(参数类型1,参数类型2, , 参数类型n);或:函数类型 函数名(参数类型1 参数名1,参数类型2 )7.3 函数参数和函数的值、函数调用(一)形式参数和实际参数 关于形参和实参的说明:(书p112

36、)(二)函数的返回值return语句: return (表达式); 或:return 表达式; 或:return;(三)函数的调用 函数调用形式: 函数名(实参表列); 步骤三 课堂小结1、有参函数的定义形式 2、形参和实参的区别 3、函数的声明和调用讨论、思考题、作业、上机练习:p142 7.1 7.2参考资料:c语言程序设计(第三版) 清华大学出版社 谭浩强编著教学过程设计:1、新课讲授75分钟2、课堂练习10分钟3、总结5分钟授课类型:理论课 教学方式:讲授 教学资源:多媒体 教案15授课题目第七章 函数(函数定义、调用的一般形式)课时安排2授课时间2007-2008第二学期教学目的1、

37、掌握函数的嵌套调用和递归调用2、掌握虚实结合教学内容:教学重点:嵌套和递归调用、数组作为函数参数教学难点:递归调用、虚实结合步骤一 复习引导函数调用时,要记录程序执行的中断点、保护现场。调用结束时,又要恢复现场给出返回值和返回地址,以便实现流程控制的返回,显然函数调用必然要有一定的时间和空间的开销,从而影响执行效率。 步骤二 讲授新课7.4 函数的嵌套和递归调用一、 函数的嵌套调用在调用一个函数的过程中,又可以调用另外一个函数。函数的嵌套调用是c语言函数调用的最重要的特色,是体现c语言函数互相独立的最根本规则。二、函数的递归调用直接或间接调用自身的函数为递归函数。一个问题采用递归方法来解决时必

38、须符合以下条件:(1)可将一个问题转化为具有同样解法的规模较小的问题;(2)必须有明确的结束条件。7.5 数组作函数参数虚实结合(哑实结合)一、数组元素作函数实参二、数组名作函数参数三、多维数组名作函数参数步骤三 课堂小结函数的嵌套调用和递归调用,注意调用的过程数组作为函数参数有两种情况:传递数组元素的值、传递数组名讨论、思考题、作业、上机练习:(p142)7.3、7.4、7.5参考资料:c语言程序设计(第三版) 清华大学出版社 谭浩强编著教学过程设计:1、新课讲授75分钟2、课堂练习10分钟3、总结5分钟授课类型:理论课 教学方式:讲授 教学资源:多媒体 教案16授课题目第七章 函数(局部变

39、量和全局变量、变量的存储类别)课时安排2授课时间2007-2008第二学期教学目的1、掌握局部变量和全局变量的作用范围2、掌握变量的存储类别,了解内部函数和外部函数教学内容:教学重点:局部变量和全局变量、变量的存储类别教学难点:变量的作用域和生存期步骤一 复习引导在函数调用过程中,不仅要注意实参和形参的数据结合,而且要注意各个变量的作用域和生存期。 步骤二 讲授新课7.6 局部变量和全局变量一、局部变量 二、全局变量7.7 变量的存储类别从变量的作用域(空间)来分,为全局和局部变量。从变量值存在的(生存期)时间来分,可以分为:一、动态存储方式与静态存储方式静态存储方式 动态存储方式二、auto

40、变量、用static声明局部变量、register变量、用extern声明外部变量三、存储类别小结从作用域角度分:局部变量 全局变量 从变量存在的时间分:动态存储 静态存储从变量值存放的位置分:内存中的静态存储区 内存中的动态存储区寄存器:寄存器变量 static对局部变量和全局变量的作用不同。7.8 内部函数和外部函数一、内部函数 一个函数只能被本文件中其他函数所调用。 即:static 类型标识符 函数名(形参表)二、外部函数 一个函数可供其他文件调用,称为外部函数步骤三 课堂小结1、 局部变量和全局变量的作用域2、 变量的存储类别有动态存储方式和静态存储方式3、 关键字有auto、sta

41、tic、register、extern讨论、思考题、作业、上机练习:(p134)7.6、7.7、7.8、7.9、7.10参考资料:c语言程序设计(第三版) 清华大学出版社 谭浩强编著教学过程设计:1、新课讲授75分钟2、课堂练习10分钟3、总结5分钟授课类型:理论课 教学方式:讲授 教学资源:多媒体 教案17授课题目第八章 指 针课时安排2授课时间2007-2008第二学期教学目的了解指针与地址的概念掌握指针变量的定义、初始化及指针变量的引用掌握指针变量的运算掌握指针变量作函数参数教学内容:教学重点:指针变量的定义、初始化及指针变量的引用教学难点:指针变量的引用步骤一 复习引导指针是c语言的一

42、个重要概念,也是c语言的一个重要特色。步骤二 讲授新课8.1 地址和指针的概念计算机的主存储器被分成一个个存储单元,为了区分各存储单元,要为每个存储单元编号,这个编号即地址。8.2变量的指针和指向变量的指针变量一、定义一个指针变量格式: 存储类型 基类型 *指针变量名;二、指针变量的初始化指针置初始化值的格式:存储类型 基类型 *指针名=初始化值;;三、指针变量的引用指针变量有两个运算符:&:取地址运算符* :取内容运算符(“间接访问”运算符)四、指针变量的运算五、指针变量作函数参数教材p149例.,p151的思考题的分析讲解。步骤三 课堂小结本课介绍了指针与地址的概念,指针变量的定义、初始化

43、及指针变量的引用、运算和指针变量作函数参数。 指针:就是地址,即内存单元的编号。 指针变量:用来存放另一变量的地址(即指针)的变量。 注意:“地址传递”的实质讨论、思考题、作业、上机练习:c语言实训指导同步练习参考资料:c语言程序设计(第三版) 清华大学出版社 谭浩强编著教学过程设计:1、新课讲授75分钟2、课堂练习10分钟3、总结5分钟授课类型:理论课 教学方式:讲授 教学资源:多媒体 教案18授课题目第八章 指 针(指向数组的指针变量)课时安排2授课时间2007-2008第二学期教学目的掌握指针与数组的知识教学内容:教学重点: p176 t2 以及c语言习题集同步练习。教学难点: 指向二维

44、数组的指针步骤一 复习引导 上节课介绍了指针变量的应用知识。一个变量有地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址。指针变量既然可以指向变量,当然也可以指向数组和数组元素(把数组起始地址或某一元素的地址放到一个指针变量中)步骤二 讲授新课所谓数组的指针是指数组的起始地址,数组元素的指针是数组元素的地址。 引用数组元素可以用下标法(如a3),也可以用指针法,即通过指向数组元素的指针找到所需的元素。使用指针法能使目标程序质量高(占内存少,运行速度快)。一、指向一维数组的指针二、通过指针引用数组元素按c的规定:如果指针变量p已指向数组中的一个元素,则p+1指向同

45、一个数组中的下一个元素(而不是简单地加1)。三、指向二维数组的指针和指针变量1、二维数组的地址2、指向二维数组的指针变量(1)指向数组元素的指针变量设指针变量p=a0 (&a00、a、a+0、*(a+0) )计算aij在n*m数组中的位置:(2)行指针(指向由m个元素组成的一维数组的指针变量) 定义:指针基类型 (*指针名)m 其中,m表示二维数组每行有m列步骤三 课堂小结本课介绍了指向数组的指针,主要是指向一维数组的指针。用指针变量p指向数组a,指针变量p可以+、-,表示指向数组的上一元素或下一元素。但c编译程序不作下标越界检查。使用指针既方便有灵活,但初学者容易搞错。 讨论、思考题、作业、

46、上机练习:p176 t4、t5 以及c语言实训指导同步练习参考资料:c语言程序设计(第三版) 清华大学出版社 谭浩强编著教学过程设计:1、新课讲授75分钟2、课堂练习10分钟3、总结5分钟授课类型:理论课 教学方式:讲授 教学资源:多媒体 教案19授课题目第八章 指 针(指向数组的指针变量作函数参数、指向字符串的指针变量)课时安排2授课时间2007-2008第二学期教学目的1、掌握指向数组的指针变量作函数参数2、掌握字符串的指针与指向字符串的指针变量教学内容:教学重点:指向数组的指针变量作函数参数、指向字符串的指针变量教学难点:用指针处理字符串步骤一 复习引导上节课介绍了指向一维数组的指针及二

47、维数组的指针,这次课学习使用指向数组的指针作函数参数,以及指针处理字符串的方法。 步骤二 讲授新课一、数组名作函数参数如果有一个实参数组,想在函数中改变此数组的元素的值,实参与形参的对应关系有以下4种情况:1、形参和实参都用数组名;2、实参用数组名,形参用指针变量;3、实参形参都用指针变量;4、实参为指针变量,形参为数组名。5、多维数组的指针作函数参数二、字符串的指针和指向字符串的指针变量(一)、字符串的表示形式1、用字符数组存放一个字符串。 2、用字符指针指向一个字符串。(二)、字符串指针作函数参数(1)用字符数组作参数。(2)形参用字符指针变量.(3)对copy_string函数还可以简化

48、。三、字符指针变量和字符数组的讨论 1、字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的是地址,决不是将字符串放到字符指针变量中。 2、赋值方式。对字符数组只能对各个元素赋值,不能用以下办法对字符数组赋值;3、对字符指针变量赋初值:4个格式字符串,可以用它代替printf函数中的格式字符串。也可以用字符数组实现,但由于不能采用赋值语句对数组整体赋值。步骤三 课堂小结本课介绍了指向数组的指针变量作函数参数、指针与字符串,我们既要掌握用数组处理字符串,也要掌握用指针变量处理字符串。要区分这两种方法的不同之处讨论、思考题、作业、上机练习:p166 t1以及c语言习题集同步练习参

49、考资料:c语言程序设计(第三版) 清华大学出版社 谭浩强编著教学过程设计:1、新课讲授75分钟2、课堂练习10分钟3、总结5分钟授课类型:理论课 教学方式:讲授 教学资源:多媒体 教案20授课题目第八章 指 针(指针数组)课时安排2授课时间2007-2008第二学期教学目的了解指针与函数的概念掌握指针数组,指针数组作main函数的参数等知识教学内容:教学重点:掌握等知识教学难点:指针数组步骤一 复习引导前面介绍了指针与维数组、指针与字符串,我们可以用指针变量指向整型变量、字符串、数组,也可以指向一个函数。步骤二 讲授新课函数的指针和指向函数的指针变量 函数的地址:函数存储区域的首地址就是该函数的入口点,其函数名表示了入口地址。一、指向函数指针变量的定义: 存储类型 数据类型 (*函数指针名)( );二、用指向函数的指针作函数参数函数的参数可以是变量、指向变量的指针变量、数组名、指向数组的指针变量等。现介绍指向函数的指针也可以作为参数,以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论