《C语言程序设计》-谭浩强(第四版)教案.doc
《《C语言程序设计》-谭浩强(第四版)教案.doc》由会员分享,可在线阅读,更多相关《《C语言程序设计》-谭浩强(第四版)教案.doc(32页珍藏版)》请在咨信网上搜索。
(完整版)《C语言程序设计》-谭浩强(第四版)教案 《C语言程序设计》教案 课程名称 C语言程序设计 教材 C语言程序设计(第四版) 作者:谭浩强 清华大学出版社 考核方式 考试课程. 总成绩:课堂参与占10%;试验报告占20%;期末考试占70%(闭卷考试)。 教 学 基 本 目 的 和 要 求 C语言是近年来国内外得到迅速推广使用的一种计算机语言。C语言程序设计课程是计算机专业和信息管理专业的核心专业基础课,它功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的优点。既适用于应用软件编写,又适用于系统软件的编写.在现代的工业机器人的众多语言中,大多编程风格以C语言非常类似,学生学好C语言,对将来的工作中,从事工业机器人现场编程是非常有帮助的。 课程的性质和任务 《语言程序设计》这门课是我校工业机器人、分布式发电与微电网专业的专业必修课。作为计算机系的数据结构、c++、单片机编程等课程的前导课程,也是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行.对工业机器人专业来说是一门必修的课程。 同时,这门课程也是“湖南省非计算机专业学生计算机应用能力水平考试”二级考试的主要语种之一。 课程的教学目标 本课程的教学目标是:通过理论和实践教学,使学生较好地掌握C语言各方面的知识,掌握基本的程序设计过程和技巧,具备初步的高级语言程序设计能力,并能熟练应用VC++6。0集成环境进行C语言的编写、编译与调试,能应用C语言解决一般编程问题的水平。 教 学 重 点 和 难 点 一、程序设计和C语言 重点:计算机程序、计算机语言、C语言编译软件的安装、最简单的C语言程序 二、算法:程序的灵魂 重点:简单的算法举例、算法的特性、用流程图表示算法。 三、顺序结构程序设计 重点: C语言的数据类型、C语句的种类、赋值语句、数据的输入输出及输入输出中最常用的控制格式。 四、选择结构程序设计 重点:关系运算符与逻辑运算符及其组成的具有逻辑值的表达式、二条分支语句的格式及基本应用、多分支的选择语句. 五、循环结构程序设计 重点:C构成循环的四种方法,尤其是后三种方法、break与continue语句的基本作用。 难点:while语句;do-while语句;for语句;循环的嵌套;break与continue语句。 六、数组 重点:一维数组、二维数组的定义与引用;字符数组的定义与引用、常用字符串处理函数及字符处理函数;数组的应用 难点:二维数组的定义与引用;字符数组;数组的应用 七、函数 重点:函数的定义;函数的参数和函数的值;函数的调用;函数的嵌套调用;函数的递归调用;数组作为函数参数;变量作用域;量存储类别; 难点:函数定义、函数调用、函数声明等基本基本概念;函数的嵌套调用与递归调用; 数组作为函数的参数、变量的存储类别与作用域。 八、指针 重点和难点:指针与地址的基本概念、指针与变量的关系;指针与数组;指针与字符串、指针数组与二级指针;指针的应用 九、建立自己的数据类型 重点和难点:定义和使用结构体变量、用指针处理链表、共用体类型 十、文件 重点:文件的基本知识、fopen、fclose函数打开与关闭文件、顺序读写数据文件、随机读写数据文件 难点:用二进制方式向文件读写一组数据。 十一、常见错误分析 重点和难点:文件的基本概念;文件的打开、关闭、常用读写方法。 十二、数组高级应用 重点:不定长数组与二维数组的应用 难点:不定长数组与二维数组的应用 十三、综合应用 重点:数组、if语句、 循环语句、函数知识的综合应用 难点:二维数组、指针 教材、 参考书 教材:《C程序设计》(第四版) 谭浩强著 清华大学出版社 2010年6月 参考书:《C程序设计语言》Kernighan&Ritchie 机械工业出版社 《C语言程序设计》教案 第 1-2课时 授课内容 第1章 C语言概述 教学目的 和要求 了解C历史,名称来源、C特点,掌握C程序基本结构;C语言的版本、C语言的关键字; 重点 难点 C语言的关键字; 教 学 安 排 引言 语言:人-人语言交流;聋哑人-手势语;人机-计算机语言 C语言是一种流行的计算机高级语言,C语言适合于编写系统软件,也可以编写应用程序。 讲授 一、语言出现的历史背景 (1)C语言的发展源于人们希望用高级语言编写操作系统.(C—BCPL第二字母) ALGOL60(高级语言)-〉CPL(硬件支持)- BCPC-〉B-〉C->标准C—〉 ANSI C —〉 ISO C (2) 语言既具有高级语言特性,又具有低级语言特性-中级语言. 二、C语言的特点 C语言既具有一般高级语言特性,又具有低级语言特性。8个特点。 1、C语言简洁、紧凑。 2、运算符丰富。 3、数据结构类型丰富。 4、具有结构化的控制语句。 5、语法限制不太严格,程序设计自由度大。 6、C语言允许直接访问物理地址,能实现汇编语言的大部分功能,可以直接对硬件进行操作。 7、生成目标代码质量高,程序执行效率高。 8、与汇编语言相比,用C语言写的程序可移植性好. 三、C语言的关键字 附录C(书本378页) 四、C语言的版本和关键字 auto、inline、restrict、_bool、_Complex、_Imaginary是后来扩充的,有些编译器也扩充了关键词。 五、Turbo C编译器的安装与使用 课后自我 总结分析 备注 《C语言程序设计》教案 第 3-4 课时 授课内容 第1章 VC++6。0、VS2015的安装和使用 教学目的 和要求 了解C语言常用的编译器;掌握VC++6。0、VS2015的下载与安装; 掌握VC++6.0、VS2015的使用 重点 难点 重点:VC++6。0、VS2015的使用 难点:VC++6.0、VS2015的使用 教 学 安 排 讲授 一、C语言常用的编译器 (1)32位的WINDOWS操作系统与64位的WINDOWS操作系统 (2)VC++6。0 (2)VS2015 二、文件夹与压缩包 1、文件夹 2、文件的压缩与解压 3、软件的下载 4、软件安装的一般流程 5、产品id号、序列号与破解补丁 三、VC++6。0、VS2015的下载与安装 7、生成目标代码质量高,程序执行效率高。 8、与汇编语言相比,用C语言写的程序可移植性好。 四、VC++6。0、VS2015的使用 VC++6.0、VS2015的使用 五、c4droid编译器的使用 1、基于安卓手机操作系统的C语言编译器 2、c4droid编译器的安装 3、c4droid编译器的使用 六、上机演示及实践操作 在win7电脑上示范VC++6.0、VS2015的编译器的安装和使用 课后自我 总结分析 同学们对计算机基础知识比较缺乏,安装VC++6.0时,不知道如何解压,也不知道如何下载和计算机操作系统版本匹配的VC++6。0或VS2015 备注 《C语言程序设计》教案 第 5-6 课时 授课内容 第2章 算法的基本概念和简单算法举例 教学目的 和要求 了解算法的基本概念、程序设计的一般流程、掌握书写简单的算法流程、了解算法的特性 重点 难点 掌握书写简单的算法流程。 教 学 安 排 引言(5分钟) 什么是算法?菜谱、拳谱、歌谱都是广义的算法。以湘潭去北京开会为例解释算法的优劣. 1+2+3+…100的常规算法和高斯的首尾相加快递算法 讲授 一、简单算法举例(37分钟) (1)求5!(10分钟) 常规求解方式的烦琐引出用循环方式求解的方法. 分析用循环方式求5!的C语言代码 (2)求1×3×4×5×7×9×11(10分钟) 询问同学此题与5!的异同,引每项是2n-1的通项,在上题的基础上改动少量代码可实现本题的C语言编程。 (3)求2000-2500年间的闰年(10分钟) 图示方式给学生解说闰年要满足的条件,引出要做多次判断的较复杂流程 提问:能被4整除,也能被100整除,是不是等同能被400整除这一认识误区 再次提问:2000年是不是闰年,为什么?2060年是不是闰年,为什么?检测学生是否了解闰年判断流程。 (4)素数的求法(7分钟) 根据素数的定义来循环判断是否能被一系列数整除,最后判断是不是素数,请学生尝试写出求解流程. 二、算法的特性(3分钟) 1、有穷性。2、确定性。3、0个或多少输入.4、1个或多个输出。5、有效性。 三、上机演示及实践操作 在讲课的同时切换软件界面调试代码 课后自我 总结分析 通过提问可以了解同学们对知识的掌握程序,互动性的教学设计更有益于教学 备注 《C语言程序设计》教案 第 7—8 课时 授课内容 第2章 算法的表示 教学目的 和要求 掌握用流程图表示算法;了解传统流程图的弊端;掌握N—S流程图表示方法. 重点 难点 重点:掌握用流程图表示算法;掌握N—S流程图表示方法 难点:掌握用流程图表示算法;掌握N-S流程图表示方法 教 学 安 排 讲授 一、用流程图表示算法(15分钟) 1、介绍流程图的图框及含义 起止框、输入输出框、判断框、处理框、流程线、连接点、注释框 2、示范用流程图表示两个分支的if语句 3、将例2。1的算法用流程图表示并分析 4、将例2。2的算法用流程图表示并分析 5、将例2.3的算法用流程图表示并分析 总结:流程图表示算法比较直观 2、将例2.4多项式求和用流程图表示 (1)、书本求解本题算法的流程图表示 (2)、其它算法的流程图表示 二、三种基本结构和改进的流程图 (15分钟) 1、统流程图的弊端 2、三种基本结构 (1)顺序 (2)选择 (3)循环 分当型和直到型两种 二、用N—S流程图表示算法(15分钟) 1、N—S流程图的符号 2、将例2。1的算法用N—S流程图表示并分析 3、将例2。2的算法用N—S流程图表示并分析 4、将例2。3的算法用N—S流程图表示并分析 三、实践环节 对“分时问候”的算法绘制N—S流程图 课后自我 总结分析 备注 《C语言程序设计》教案 第 9-10课时 授课内容 第3章 最简单的C程序设计—-顺序程序设计 教学目的 和要求 举例说明顺序程序调序的基本流程、整型数据类型、整型数据的溢出。 重点 难点 重点:整型数据类型;整型数据的溢出 难点:整型数据类型;整型数据的溢出 教 学 安 排 讲授 一、顺序程序设计举例 (10分钟) 1、绘制例3。1算法的N-S流程图 2、根据N—S流程图编写代码并调试 二、常量与变量 (15分钟) 1、常量概念。 (1)整型常量、整型常量、字符常量、字符串常量 (2)ASCII字符 (3)转义字符 2、变量概念、变量名 (1)先定义,后使用 (2)变量名与变量值概念的异同 三、数据类型概述 (5分钟) 1、不同类型的数据在内存中占用的存储单位长度是不同的 VC++6。0为字符型数据分配一个字节长度;为int型(基本型)分配4个字节的长度。 2、存储不同数据类型的方法也是不同的。 四、整型数据 (15分钟) 1、整型数据的分类: (1)基本整型(int 型) (2)短整型(short int); (3)长整型(long int) 2、整型变量的符号属性 (1)有符号型和无符号型 (2)整型数据常见的存储空间和值的范围 3、整型数据的溢出 五、上机演示及实践操作 在讲课的同时切换编译界面调试整型数据溢出 课后自我 总结分析 备注 《C语言程序设计》教案 第11—12 课时 授课内容 第3章 最简单的C程序设计—-顺序程序设计 教学目的 和要求 举例说明顺序程序调序的基本流程、数据的表现形式及运算、不同数据类型的混合运算。 重点 难点 整型数据类型long int和short int数据类型、运算符的优级先级、不同数据类型的混合运算 教 学 安 排 讲授 一、浮点型数据 1、浮点型数据的存储方式 2、浮点型数据的表现形式 浮点数据的指数形式 3、浮点型数据的类型 (1)单精度 (2)双精度 (3)长双精度 二、字符型数据 1、 字符常量表示.直接表示/转义表示(特殊的转义字符,一般字符也可以转义表示)。 特殊转义字符对显示/打印的控制作用 2、 字符变量-1个字节,char关键词。 3、 字符数据的存储-ASCII码/二进制存储-C语言可以将字符看做很短的整数处理. 例2—7A,例2-8A可以看出字符数据的具有整数特性。 三、怎样确定常量的类型 1、从常量的表示形式,如精度 2、只要看到单撇号括起来的单个字符或转义字符即字符常量 四、运算符与表达式 1、基本的算术运算符 2、自增、自减运算符 3、算术表达式和运算符的优先级与结合性 五、数值型数据混合运算 1、自动隐式转换。2、强制类型转换。 六、C语句 1、控制语句 2、函数调用语句 3、表达式语句 4、空语句 5、复合语句 七、上机演示及实践操作 在讲课的同时切换编译界面调试整型数据溢出 课后自我 总结分析 备注 《C语言程序设计》教案 第 13-14 课时 授课内容 第4章(1) 选择结构程序设计 教学目的 和要求 理解条件-产生逻辑值的表达式; 熟练绘制选择语句算术的流程图 掌握关系运算符、关系表达式;逻辑运算符、逻辑表达式 重点 难点 重点:关系运算符、关系表达式;逻辑运算符、关系表达式 难点:熟练绘制选择语句算术的流程图 教 学 安 排 讲授 一、选择结构的条件判断 1、理解条件-产生逻辑值的表达式 2、选择结构的流程图绘制 3、二元二次方程求根的算法及程序编写 二、关系运算符与关系表达式 “关系运算"(比较运算)即,将两个值进行比较,判断是否符合或满足给定的条件。 1、 关系运算符及其优先次序 a) C语言提供6种关系运算符。表5-1。 b) 关于优先次序:前4种高于后两种;关系低于算术;关系高于赋值 例5—2。 2、 关系表达式 关系表达式的值是逻辑值,即“真”“假”。C语言没有逻辑型数据,1-“真",0-“假”。 例5-3。 三、逻辑运算符和逻辑表达式 “关系运算”(比较运算)即,两个逻辑值的运算。 1、 逻辑运算符。(1)&& 逻辑与,(2)|| 逻辑或,(3)! 逻辑非 2、 逻辑运算符的优先顺序: 3、 逻辑表达式 四、条件运算符与条件表达式 1、单目运算符、双目运算符、三目运算符的概念 2、C语言唯一的三目运算符构成的条件表达式 课后自我 总结分析 备注 《C语言程序设计》教案 第15—16 课时 授课内容 第4章(2) 选择结构程序设计 教学目的 和要求 选择结构的嵌套;switch语句实现多分支选择结构 重点 难点 重点:选择结构的嵌套;switch语句实现多分支选择结构 难点:选择结构的嵌套;switch语句实现多分支选择结构 教 学 安 排 讲授 一、if语句的嵌套 1、在if语句中又包含一个或多个if语句称为if语句的嵌套。 2、如果if与else的数目不一致,为了体现程序设计者的思想,可加花括号来确定配对的关系. 3、利用代码缩进增强代码的可读性,养成良好的编程风格 4、例4.5阶跃函数用if语句的嵌套实现 (1)绘制流程图 (2)将流程图编写成程序 二、用switch语句实现多分支选择结构 如果条件分支较多,利用if语句显得程序冗长,且可读性降低。因此,C语言设计了switch语句. 1、switch语句的一般形式 2、例4。6 输出考试成绩的ABCD段等级 (1)绘制流程图 (2)将流程图编写成程序 3、例4.7 用switch语句处理菜单命令 三、选择结构程序设计综合举例 例4。8 判断某一年是否是闰年 例4。9 求二元二次方程的实根 四、上机演示及实践操作 在讲课的同时切换软件界面调试代码 课后自我 总结分析 备注 《C语言程序设计》教案 第 17—18 课时 授课内容 第5章(1) 循环结构程序设计 教学目的 和要求 掌握while当型循环、do while直到型循环、for循环 重点 难点 while当型循环、do while直到型循环、for循环的形式、执行过程、使用注意问题 教 学 安 排 引言 重复执行就是循环.重复工作是计算机特别擅长工作之一。 重复执行不是简单地重复,每次重复,操作的数据(状态、条件)都可能发生变化。 重复的动作是受控制的,C语言提供三种循环控制语句,构成了三种基本的循环结构. 讲授 一、while语句(当型循环) 1、while语句的一般形式是: 2、执行过程是:(流程图、N—S图) 3、使用while注意的问题. 例5—1:利用while语句,编写程序计算1+2+3+…+100。 二、do—while语句(直到型循环) 1、do—while语句的一般形式 2、do—while执行过程(流程图) 3、do-while说明: 例5—4:利用do-while语句计算机1+1/2+1/4+…+1/50. 三、for语句(当型循环) 1、 for语句的一般形式(给出while循环的对应结构) 2、 for循环执行过程(流程图) 例5-6:写一个程序,计算半径为0。5,1。5,2.5,3.5,4.5,5.5mm时圆的半径. 例5—7:求正整数n的阶乘n!,其中n由用户输入。 3、 for语句最容易理解、最常用的形式 4、 for语句说明(6点)。C语言的for语句功能强大,使用灵活。 四、上机演示及实践操作 在讲课的同时切换软件界面调试代码 课后自我 总结分析 备注 《C语言程序设计》教案 第19-20 课时 授课内容 第5章(2) 循环结构程序设计 教学目的 和要求 掌握条件运算符、条件表达式 掌握switch-case语句 重点 难点 switch-case语句 教 学 安 排 引言 a) 复习关系运算、逻辑运算、if语句 b) 引入简单的条件运算符及表达式、以及开关语句 讲授 一、条件运算符、条件表达式 在if语句中,在表达式为“真”和“假"时,都只执行一个赋值语句给同一个变量赋值时,可以使用简单的条件运算符来处理。 例如:if(a>b)max=a;else max=b; 〈=〉 max=a〉b?a:b; (1) 条件表达式的一般形式:表达式1?表达式2:表达式3 (2) 条件表达式说明(5点) 例5-4. 二、switch-case语句(多分支选择语句/开关语句) 3、 switch一般形式 4、 switch语句说明。(1)—(7) 三、分支程序例子 例5.5 写程序,判断某一年是否是闰年。 例5.6 求一元二次方程ax2+bx+c=0的根. 例5。7 运输公司对用户计算运费。 六、应用举例 例6-14:从键盘输入一个大于2的整数n,判断是不是素数。 例6-15:求100—200之间的所有素数。 例6-16:输出下三角99乘法表 七、上机演示及学生操作 在讲课的同时切换软件界面调试代码 课后自我 总结分析 备注 《C语言程序设计》教案 第21—22课时 授课内容 第6章(1) 一维组的应用 教学目的 和要求 数组的基本概念; 一维数组定义、初始化、引用;最大值、冒泡排序、选择排序算法。 重点 难点 重点:一维数组定义、初始化、引用;求最大值、冒泡排序、选择排序算法;矩阵操作 难点:冒泡排序、选择排序算法 教 学 安 排 引言 基本数据类型-构造类型的数据-数组 数组、数组元素、数组的下标、数组的维数 例如:int a[10]; 一维数组可以看作一个数列,向量. 例如:float b[3][3]; 二维数组可以看作一个矩阵. 讲授 一、定义和引用一维数组 1、一维数组的定义 类型说明 数组名[整型常量表达式] 2、一维数组定义说明 下标从0开始 3、数组元素的引用 例6。1 利用数组输出1-10 (1)循环语句 (2) 数组下标越界 4、一维数组的初始化的几种形式 (1)定义时赋初值 (2)部分赋初值 (3)数组元素全部置0 (4)数组元素如全部赋值可不指定长度 5、给数组元素赋初值和给数组集合赋初值的异同 (1) 给数组元素赋初值 int temp[1]=9; (2) 给数组集合赋初值 int temp[10]=(1,2,3); 二、一维数组的应用例子 例6—2:用数组来处理斐波那契数列 例6—3:采用“冒泡法”对任意输入的10个整数按由小到大的顺序排序。 例6-4:采用“选择法” 对任意输入的10个整数按由大到小的顺序排序. 三、动态内存分配法实现不定长一维数组 某些情境需要定义一个数组,但数组的长度不定,因为这个长度是根据某些其他条件确定的,这时我们需要定义一个长度不定的数组.如读取不同声音的语音数据序列。 课后自我 总结分析 备注 《C语言程序设计》教案 第23-24 课时 授课内容 第6章(2) 二维数组和多维数组的应用 教学目的 和要求 二维数组定义、初始化、引用;多维数组 重点 难点 重点:二维数组定义、初始化、;双重for循环读取二维数组;二维数组1维和2维的分辨; 难点:双重for循环读取二维数组、二维数组1维和2维的分辨 教 学 安 排 二、二维数组(注意:类比一维数组) 1、二维数组的应用场景 2、二维数组的定义 3、二维数组元素的内存分布 二、二维数组元素的引用 例6-5:二维数组元素的引用的例子(自学)-构造、打印单位矩阵。 思考:下标是从1开始使用的,哪些元素在此例子中未使用?它们的值是多少?(随机值) 三、二维数组的初始化的几种形式 (1)分行给二维数组赋值 (2)将所有数组写在一个花括号内 (3)对部分元素赋值 (4)对全部元素赋初值,二维数组的1维长度可以省略,2维长度不能省略 四、双重for循环法读取二维数组 比较抽象,图解较直观 五、二维数组应用举例 例6—4:将二维数组的行和列互换,存到另一个数组里。 例6-5:找出矩阵所有元素中的最大值。 例6—附加 分别计算矩阵的两条对角线(主、辅对角线)上的元素之和. 六、多维数组的应用 1、多维数组的定义 2、多维数组元素的引用 3、多维数组的初始化 七、不定长二维数组的实现 某些情境需要定义一个二维数组,但二维数组的长度不定,因为这个长度是根据某些其他条件确定的,这时我们需要定义一个长度不定的二维数组。如读取不同尺寸图像点的像素值。 八、上机演示及学生操作 在讲课的同时切换软件界面调试代码 课后自我 总结分析 备注 《C语言程序设计》教案 第25—26 课时 授课内容 第6章(3) 字符数组 教学目的 和要求 字符数组定义、初始化、引用;字符串与字符数组;字符串处理函数;字符数组应用 重点 难点 重点:字符串与字符数组;字符串处理函数 难点:字符串与字符数组;字符串处理函数 教 学 安 排 引言 复习数组概念,数组定义、初始化、元素引用方法。引入字符数组(元素为字符)。 讲授 一、字符数组 1、字符数组的定义 2、字符数组的初始化 3、字符数组的引用 4、二维字符数组的应用举例 二、字符和字符串结束标志 1、字符串与字符数组的区别 2、字符串结束标记志 系统对字符串常量也自动加一个'\0'作为结束符。例如"C Program”共有9个字符,但在内存中占10个字节,最后一个字节'\0'是系统自动加上的。(通过sizeof()函数可验证) 三、字符数组的输入和输出 (1)逐个字符输入输出 (2)将整个字符串输出 (3)利用字符串的结束符批量输出 四、字符串概述 1、字符串的输出 (1)“%s”格式符 (2)print语句的输出项参数用字符数组名,而非数组元素名 2、字符串的引用 五、由字符数组来构造字符串 根据定义,可由字符数组添加一个'\0’符形成字符串。 六、二维字符数组 1、二维字符数组的定义 2、二维字符数组的初始化 3、二维字符数组的引用 课后自我 总结分析 备注 《C语言程序设计》教案 第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、有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。 3、魔方阵,要求输出1~n2 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 课时 授课内容 第8章(3) 通过指针引用字符串 教学目的 和要求 掌握字符指针作为函数参数;理解使用字符指针变量和字符数组的异同 重点 难点 重点:字符指针作为函数参数;理解使用字符指针变量和字符数组的异同 难点:字符指针作为函数参数;理解使用字符指针变量和字符数组的异同 教 学 安 排 讲授 一、字符串的引用方式 1、可通过字符数组名和下标引用字符串中的一个字符。 2、也可以通过数组名和格式声明%s输出该字符串 例8.16 定义一个字符数组,在其中存放字符串“I love China!",输出该字符串和第8个字符。 C语言中只有字符变量,没有字符串变量。 例8。18 将字符串a复制为字符串b,然后输出字符串b。 例8。19 例8.18改用指针变量来处理 二、字符指针作为函数参数 例8。20 用函数调用实现字符串的复制 (1)用字符数组名作为函数的参数 (2)用字符指- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 语言程序设计 谭浩强 第四 教案
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文