《C语言程序设计谭浩强(第四版)教案.pdf》由会员分享,可在线阅读,更多相关《C语言程序设计谭浩强(第四版)教案.pdf(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C 语言程序设计教案课程名称课程名称教材教材考试课程。考试课程。总成绩:课堂参与占总成绩:课堂参与占 10%10%;试验报告占;试验报告占 20%20%;期末考试占;期末考试占 70%70%(闭卷考试)(闭卷考试)。C C 语言程序设计语言程序设计C C 语言程序设计(第四版)语言程序设计(第四版)作者:谭浩强作者:谭浩强 清华大学出版社清华大学出版社考核方式考核方式C C 语言是近年来国内外得到迅速推广使用的一种计算机语言。语言是近年来国内外得到迅速推广使用的一种计算机语言。C C 语言程序设计课程是语言程序设计课程是计算机专业和信息管理专业的核心专业基础课计算机专业和信息管理专业的核心专业
2、基础课,它功能丰富,它功能丰富,表达能力强,表达能力强,使用灵活方便,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的优点。既适用于应用软件编写,又适用于系统软件的编写。在现代的工业机器人的众多优点。既适用于应用软件编写,又适用于系统软件的编写。在现代的工业机器人的众多语言中,大多编程风格以语言中,大多编程风格以C C 语言非常类似,学生学好语言非常类似,学生学好C C 语言,对将来的工作中,从事工语言,对将来的工作中,从事工业机器人现场编程是非常有帮助的。业机器人现场编程是非
3、常有帮助的。课程的性质和任务语言程序设计这门课是我校工业机器人、分布式发电与微电网专业的专业必修课。语言程序设计这门课是我校工业机器人、分布式发电与微电网专业的专业必修课。作为计算机系的数据结构、作为计算机系的数据结构、c+c+、单片机编程等课程的前导课程,也是一门实践性很强、单片机编程等课程的前导课程,也是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行。对工业机器人专业来说是的课程,既要掌握概念,又要动手编程,还要上机调试运行。对工业机器人专业来说是一门必修的课程。一门必修的课程。同时,这门课程也是“湖南省非计算机专业学生计算机应用能力水平考试”二级考同时,这门课程也是“
4、湖南省非计算机专业学生计算机应用能力水平考试”二级考试的主要语种之一。试的主要语种之一。课程的教学目标本课程的教学目标是:本课程的教学目标是:通过理论和实践教学,通过理论和实践教学,使学生较好地掌握使学生较好地掌握 C C 语言各方面的知识,语言各方面的知识,掌握基本的程序设计过程和技巧,具备初步的高级语言程序设计能力,并能熟练应用掌握基本的程序设计过程和技巧,具备初步的高级语言程序设计能力,并能熟练应用VC+VC+集成环境进行集成环境进行 C C 语言的编写、编译与调试,能应用语言的编写、编译与调试,能应用C C 语言解决一般编程问题的水语言解决一般编程问题的水平。平。教教学学基基本本目目的
5、的和和要要求求一、程序设计和 C 语言重点:计算机程序、计算机语言、重点:计算机程序、计算机语言、C C 语言编译软件的安装、最简单的语言编译软件的安装、最简单的C C 语言程序语言程序二、算法:程序的灵魂重点:简单的算法举例、算法的特性、用流程图表示算法。重点:简单的算法举例、算法的特性、用流程图表示算法。三、顺序结构程序设计重点:重点:C C 语言的数据类型、语言的数据类型、C C 语句的种类、赋值语句、数据的输入输出及输入输出语句的种类、赋值语句、数据的输入输出及输入输出中最常用的控制格式。中最常用的控制格式。四、选择结构程序设计重点:关系运算符与逻辑运算符及其组成的具有逻辑值的表达式、
6、二条分支语句的重点:关系运算符与逻辑运算符及其组成的具有逻辑值的表达式、二条分支语句的格式及基本应用、多分支的选择语句。格式及基本应用、多分支的选择语句。五、循环结构程序设计重点:重点:C C 构成循环的四种方法,尤其是后三种方法、构成循环的四种方法,尤其是后三种方法、breakbreak 与与 continuecontinue 语句的基语句的基本作用。本作用。难点:难点:whilewhile 语句;语句;do-whiledo-while 语句;语句;forfor 语句;循环的嵌套;语句;循环的嵌套;breakbreak 与与 continuecontinue语句。语句。六、数组重点:一维数组
7、、二维数组的定义与引用;字符数组的定义与引用、常用字符串处重点:一维数组、二维数组的定义与引用;字符数组的定义与引用、常用字符串处教教学学重重点点和和难难点点用;用;数组作为函数的参数、变量的存储类别与作用域。数组作为函数的参数、变量的存储类别与作用域。八、指针理函数及字符处理函数;数组的应用理函数及字符处理函数;数组的应用难点:二维数组的定义与引用;字符数组;数组的应用难点:二维数组的定义与引用;字符数组;数组的应用七、函数重点:函数的定义;函数的参数和函数的值;函数的调用;函数的嵌套调用;函数重点:函数的定义;函数的参数和函数的值;函数的调用;函数的嵌套调用;函数的递归调用;数组作为函数参
8、数;变量作用域;量存储类别;的递归调用;数组作为函数参数;变量作用域;量存储类别;难点:函数定义、函数调用、函数声明等基本基本概念;函数的嵌套调用与递归调难点:函数定义、函数调用、函数声明等基本基本概念;函数的嵌套调用与递归调教材、教材、参考书参考书教材:C C 程序设计程序设计(第四版)(第四版)谭浩强著谭浩强著 清华大学出版社清华大学出版社 20102010 年年 6 6 月月参考书:C C 程序设计语言程序设计语言Kernighan&RitchieKernighan&Ritchie 机械工业出版社机械工业出版社C 语言程序设计教案第 1-2 课时授课内容授课内容第第 1 1 章章 C C
9、 语言概述语言概述教学目的教学目的和要求和要求重点重点难点难点C C 语言的关键字;语言的关键字;了解了解 C C 历史,名称来源、历史,名称来源、C C 特点,掌握特点,掌握 C C 程序基本结构;程序基本结构;C C 语言的版本、语言的版本、C C 语言的关键字;语言的关键字;引言语言:人人语言交流;聋哑人手势语;人机计算机语言语言:人人语言交流;聋哑人手势语;人机计算机语言C C 语言是一种流行的计算机高级语言,语言是一种流行的计算机高级语言,C C 语言适合于编写系统软件,也可以编写应用程序。语言适合于编写系统软件,也可以编写应用程序。讲授一、语言出现的历史背景(1 1)C C 语言的
10、发展源于人们希望用高级语言编写操作系统。语言的发展源于人们希望用高级语言编写操作系统。(C-BCPLC-BCPL 第二字母)第二字母)ALGOL60ALGOL60(高级语言)(高级语言)-CPL-CPL(硬件支持)(硬件支持)-BCPC-B-C-BCPC-B-C-标准标准 C-ANSI C-ISO CC-ANSI C-ISO C(2 2)语言既具有高级语言特性,又具有低级语言特性语言既具有高级语言特性,又具有低级语言特性-中级语言。中级语言。二、C 语言的特点C C 语言既具有一般高级语言特性,又具有低级语言特性。语言既具有一般高级语言特性,又具有低级语言特性。8 8 个特点。个特点。教教学学
11、安安排排1 1、C C 语言简洁、紧凑。语言简洁、紧凑。2 2、运算符丰富。、运算符丰富。3 3、数据结构类型丰富。、数据结构类型丰富。4 4、具有结构化的控制语句。、具有结构化的控制语句。5 5、语法限制不太严格,程序设计自由度大。、语法限制不太严格,程序设计自由度大。6 6、C C 语言允许直接访问物理地址,能实现汇编语言的大部分功能,可以直接对硬件进行操语言允许直接访问物理地址,能实现汇编语言的大部分功能,可以直接对硬件进行操作。作。7 7、生成目标代码质量高,程序执行效率高。、生成目标代码质量高,程序执行效率高。8 8、与汇编语言相比,用、与汇编语言相比,用C C 语言写的程序可移植性
12、好。语言写的程序可移植性好。三、C 语言的关键字附录附录 C C(书本(书本 378378 页)页)四、C 语言的版本和关键字autoauto、inlineinline、restrictrestrict、_bool_bool、_Complex_Complex、_Imaginary_Imaginary 是后来扩充的,有些编译器也是后来扩充的,有些编译器也扩充了关键词。扩充了关键词。五、Turbo C编译器的安装与使用课后自我课后自我总结分析总结分析备注备注C 语言程序设计教案第 3-4 课时授课内容授课内容第第 1 1 章章 VC+VC+、VS2015VS2015 的安装和使用的安装和使用教学目
13、的教学目的了解了解 C C 语言常用的编译器;掌握语言常用的编译器;掌握VC+VC+、VS2015VS2015 的下载与安装;的下载与安装;和要求和要求掌握掌握 VC+VC+、VS2015VS2015 的使用的使用重点:重点:VC+VC+、VS2015VS2015 的使用的使用难点:难点:VC+VC+、VS2015VS2015 的使用的使用重点重点难点难点讲授一、C 语言常用的编译器(1 1)3232 位的位的 WINDOWSWINDOWS 操作系统与操作系统与 6464 位的位的 WINDOWSWINDOWS 操作系统操作系统(2 2)VC+VC+(2 2)VS2015VS2015二、文件夹
14、与压缩包1 1、文件夹、文件夹2 2、文件的压缩与解压、文件的压缩与解压3 3、软件的下载、软件的下载4 4、软件安装的一般流程、软件安装的一般流程教教学学安安排排5 5、产品、产品 idid 号、序列号与破解补丁号、序列号与破解补丁三、VC+、VS2015 的下载与安装7 7、生成目标代码质量高,程序执行效率高。、生成目标代码质量高,程序执行效率高。8 8、与汇编语言相比,用、与汇编语言相比,用C C 语言写的程序可移植性好。语言写的程序可移植性好。四、VC+、VS2015 的使用VC+VC+、VS2015VS2015 的使用的使用五、c4droid编译器的使用1 1、基于安卓手机操作系统的
15、、基于安卓手机操作系统的C C 语言编译器语言编译器2 2、c4droidc4droid编译器的安装编译器的安装3 3、c4droidc4droid编译器的使用编译器的使用六、上机演示及实践操作在在 win7win7 电脑上示范电脑上示范VC+VC+、VS2015VS2015 的的编译器的安装和使用编译器的安装和使用课后自我课后自我总结分析总结分析同学们对计算机基础知识比较缺乏,安装同学们对计算机基础知识比较缺乏,安装VC+VC+时,不知道如何解压,也不知道如何下载时,不知道如何解压,也不知道如何下载和计算机操作系统版本匹配的和计算机操作系统版本匹配的VC+VC+或或 VS2015VS2015
16、备注备注C 语言程序设计教案第 5-6 课时授课内容授课内容第第 2 2 章章 算法的基本概念和简单算法举例算法的基本概念和简单算法举例教学目的教学目的和要求和要求重点重点难点难点掌握书写简单的算法流程。掌握书写简单的算法流程。了解算法的基本概念、程序设计的一般流程、掌握书写简单的算法流程、了解算法的特性了解算法的基本概念、程序设计的一般流程、掌握书写简单的算法流程、了解算法的特性引言(5 5 分钟)分钟)什么是算法?菜谱、拳谱、歌谱都是广义的算法。以湘潭去北京开会为例解释算法的优劣。什么是算法?菜谱、拳谱、歌谱都是广义的算法。以湘潭去北京开会为例解释算法的优劣。1+2+3+1+2+3+100
17、100 的常规算法和高斯的首尾相加快递算法的常规算法和高斯的首尾相加快递算法讲授一、简单算法举例(3737 分钟)分钟)(1 1)求)求 5 5!(1010 分钟)分钟)常规求解方式的烦琐引出用循环方式求解的方法。常规求解方式的烦琐引出用循环方式求解的方法。分析用循环方式求分析用循环方式求 5 5!的!的 C C 语言代码语言代码(2 2)求)求 1 1 3 3 4 4 5 5 7 7 9 9 1111(1010 分钟)分钟)询问同学此题与询问同学此题与 5!5!的异同,引每项是的异同,引每项是2n-12n-1 的通项,在上题的基础上改动少量代码可实现本的通项,在上题的基础上改动少量代码可实现
18、本教教学学安安排排(3 3)求)求 2000-25002000-2500 年间的闰年(年间的闰年(1010 分钟)分钟)图示方式给学生解说闰年要满足的条件,引出要做多次判断的较复杂流程图示方式给学生解说闰年要满足的条件,引出要做多次判断的较复杂流程提问:能被提问:能被 4 4 整除,也能被整除,也能被 100100 整除,是不是等同能被整除,是不是等同能被400400 整除这一认识误区整除这一认识误区再次提问:再次提问:20002000 年是不是闰年,为什么?年是不是闰年,为什么?20602060 年是不是闰年,为什么?检测学生是否了年是不是闰年,为什么?检测学生是否了解闰年判断流程。解闰年判
19、断流程。(4)(4)素数的求法(素数的求法(7 7 分钟)分钟)根据素数的定义来循环判断是否能被一系列数整除,最后判断是不是素数,请学生尝试写根据素数的定义来循环判断是否能被一系列数整除,最后判断是不是素数,请学生尝试写出求解流程。出求解流程。二、算法的特性(3 3 分钟)分钟)1 1、有穷性。、有穷性。2 2、确定性。、确定性。3 3、0 0 个或多少输入。个或多少输入。4 4、1 1 个或多个输出。个或多个输出。5 5、有效性。、有效性。三、上机演示及实践操作在讲课的同时切换软件界面调试代码在讲课的同时切换软件界面调试代码题的题的 C C 语言编程。语言编程。课后自我课后自我总结分析总结分
20、析备注备注通过提问可以了解同学们对知识的掌握程序,互动性的教学设计更有益于教学通过提问可以了解同学们对知识的掌握程序,互动性的教学设计更有益于教学C 语言程序设计教案第 7-8 课时授课内容授课内容第第 2 2 章章 算法的表示算法的表示教学目的教学目的和要求和要求重点重点难点难点掌握用流程图表示算法;了解传统流程图的弊端;掌握掌握用流程图表示算法;了解传统流程图的弊端;掌握N-SN-S 流程图表示方法。流程图表示方法。重点:掌握用流程图表示算法;掌握重点:掌握用流程图表示算法;掌握N-SN-S 流程图表示方法流程图表示方法难点:掌握用流程图表示算法;掌握难点:掌握用流程图表示算法;掌握N-S
21、N-S 流程图表示方法流程图表示方法讲授一、用流程图表示算法(1515 分钟)分钟)1 1、介绍流程图的图框及含义、介绍流程图的图框及含义起止框、输入输出框、判断框、处理框、流程线、连接点、注释框起止框、输入输出框、判断框、处理框、流程线、连接点、注释框2 2、示范用流程图表示两个分支的、示范用流程图表示两个分支的if if 语句语句3 3、将例的算法用流程图表示并分析、将例的算法用流程图表示并分析4 4、将例的算法用流程图表示并分析、将例的算法用流程图表示并分析5 5、将例的算法用流程图表示并分析、将例的算法用流程图表示并分析总结:流程图表示算法比较直观总结:流程图表示算法比较直观2 2、将
22、例多项式求和用流程图表示、将例多项式求和用流程图表示教教学学安安排排(1 1)、书本求解本题算法的流程图表示、书本求解本题算法的流程图表示(2 2)、其它算法的流程图表示、其它算法的流程图表示二、三种基本结构和改进的流程图(1515 分钟)分钟)1 1、统流程图的弊端、统流程图的弊端2 2、三种基本结构、三种基本结构(1 1)顺序)顺序(2 2)选择)选择(3 3)循环)循环 分当型和直到型两种分当型和直到型两种二、用 NS 流程图表示算法(1515 分钟)分钟)1 1、N-SN-S 流程图的符号流程图的符号2 2、将例的算法用、将例的算法用 N-SN-S 流程图表示并分析流程图表示并分析3
23、3、将例的算法用、将例的算法用 N-SN-S 流程图表示并分析流程图表示并分析4 4、将例的算法用、将例的算法用 N-SN-S 流程图表示并分析流程图表示并分析三、实践环节对“分时问候”的算法绘制对“分时问候”的算法绘制N-SN-S 流程图流程图课后自我课后自我总结分析总结分析备注备注C 语言程序设计教案第 9-10 课时授课内容授课内容第第 3 3 章章 最简单的最简单的 C C 程序设计顺序程序设计程序设计顺序程序设计教学目的教学目的和要求和要求重点重点难点难点举例说明顺序程序调序的基本流程、整型数据类型、整型数据的溢出。举例说明顺序程序调序的基本流程、整型数据类型、整型数据的溢出。重点:
24、整型数据类型;整型数据的溢出重点:整型数据类型;整型数据的溢出难点:整型数据类型;整型数据的溢出难点:整型数据类型;整型数据的溢出讲授一、顺序程序设计举例(10(10 分钟分钟)1 1、绘制例算法的、绘制例算法的 N-SN-S 流程图流程图2 2、根据、根据 N-SN-S 流程图编写代码并调试流程图编写代码并调试二、常量与变量(15(15 分钟分钟)1 1、常量概念。、常量概念。(1)(1)整型常量、整型常量、字符常量、字符串常量整型常量、整型常量、字符常量、字符串常量(2)ASCII(2)ASCII 字符字符(3)(3)转义字符转义字符2 2、变量概念、变量名、变量概念、变量名教教学学安安排
25、排(2)(2)变量名与变量值概念的异同变量名与变量值概念的异同三、数据类型概述(5(5 分钟分钟)1 1、不同类型的数据在内存中占用的存储单位长度是不同的、不同类型的数据在内存中占用的存储单位长度是不同的VC+VC+为字符型数据分配一个字节长度;为为字符型数据分配一个字节长度;为intint 型(基本型)分配型(基本型)分配 4 4 个字节的长度。个字节的长度。2 2、存储不同数据类型的方法也是不同的。、存储不同数据类型的方法也是不同的。四、整型数据(15(15 分钟分钟)1 1、整型数据的分类:、整型数据的分类:(1)(1)基本整型基本整型(int(int 型型)(2)(2)短整型短整型(s
26、hort int)(short int);(3)(3)长整型长整型(long int)(long int)2 2、整型变量的符号属性、整型变量的符号属性(1)(1)有符号型和无符号型有符号型和无符号型(2)(2)整型数据常见的存储空间和值的范围整型数据常见的存储空间和值的范围3 3、整型数据的溢出、整型数据的溢出五、上机演示及实践操作在讲课的同时切换编译界面调试整型数据溢出在讲课的同时切换编译界面调试整型数据溢出(1)(1)先定义,后使用先定义,后使用课后自我课后自我总结分析总结分析备注备注C 语言程序设计教案第 11-12 课时授课内容授课内容第第 3 3 章章 最简单的最简单的 C C 程
27、序设计顺序程序设计程序设计顺序程序设计教学目的教学目的和要求和要求重点重点难点难点举例说明顺序程序调序的基本流程、数据的表现形式及运算、不同数据类型的混合运算。举例说明顺序程序调序的基本流程、数据的表现形式及运算、不同数据类型的混合运算。整型数据类型整型数据类型 long intlong int和和 short intshort int 数据类型、运算符的优级先级、不同数据类型的混合运数据类型、运算符的优级先级、不同数据类型的混合运算算讲授一、浮点型数据1 1、浮点型数据的存储方式、浮点型数据的存储方式2 2、浮点型数据的表现形式、浮点型数据的表现形式浮点数据的指数形式浮点数据的指数形式3 3
28、、浮点型数据的类型、浮点型数据的类型(1 1)单精度)单精度(2 2)双精度)双精度(3 3)长双精度)长双精度二、字符型数据1 1、字符常量表示。直接表示字符常量表示。直接表示/转义表示(特殊的转义字符,一般字符也可以转义表示)转义表示(特殊的转义字符,一般字符也可以转义表示)。特殊转义字符对显示特殊转义字符对显示/打印的控制作用打印的控制作用2 2、字符变量字符变量1 1 个字节,个字节,charchar 关键词。关键词。教教学学安安排排3 3、字符数据的存储字符数据的存储ASCIIASCII 码码/二进制存储二进制存储C C 语言可以将字符看做很短的整数处理。语言可以将字符看做很短的整数
29、处理。例例 2-7A2-7A,例,例 2-8A2-8A 可以看出字符数据的具有整数特性。可以看出字符数据的具有整数特性。三、怎样确定常量的类型1 1、从常量的表示形式,如精度、从常量的表示形式,如精度2 2、只要看到单撇号括起来的单个字符或转义字符即字符常量、只要看到单撇号括起来的单个字符或转义字符即字符常量四、运算符与表达式1 1、基本的算术运算符、基本的算术运算符2 2、自增、自减运算符、自增、自减运算符3 3、算术表达式和运算符的优先级与结合性、算术表达式和运算符的优先级与结合性五、数值型数据混合运算1 1、自动隐式转换。、自动隐式转换。2 2、强制类型转换。、强制类型转换。六、C 语句
30、1 1、控制语句、控制语句2 2、函数调用语句、函数调用语句3 3、表达式语句、表达式语句4 4、空语句、空语句5 5、复合语句、复合语句七、上机演示及实践操作在讲课的同时切换编译界面调试整型数据溢出在讲课的同时切换编译界面调试整型数据溢出课后自我课后自我总结分析总结分析备注备注C 语言程序设计教案第 13-14 课时授课内容授课内容第第 4 4 章(章(1 1)选择结构程序设计选择结构程序设计教学目的教学目的理解条件理解条件-产生逻辑值的表达式产生逻辑值的表达式;熟练绘制选择语句算术的流程图熟练绘制选择语句算术的流程图和要求和要求掌握关系运算符、关系表达式;逻辑运算符、逻辑表达式掌握关系运算
31、符、关系表达式;逻辑运算符、逻辑表达式重点:关系运算符、关系表达式;逻辑运算符、关系表达式重点:关系运算符、关系表达式;逻辑运算符、关系表达式难点:熟练绘制选择语句算术的流程图难点:熟练绘制选择语句算术的流程图重点重点难点难点讲授一、选择结构的条件判断1 1、理解条件、理解条件-产生逻辑值的表达式产生逻辑值的表达式2 2、选择结构的流程图绘制、选择结构的流程图绘制3 3、二元二次方程求根的算法及程序编写、二元二次方程求根的算法及程序编写二、关系运算符与关系表达式“关系运算”“关系运算”(比较运算)即,将两个值进行比较,判断是否符合或满足给定的条件。(比较运算)即,将两个值进行比较,判断是否符合
32、或满足给定的条件。1 1、关系运算符及其优先次序关系运算符及其优先次序a)a)C C 语言提供语言提供 6 6 种关系运算符。表种关系运算符。表 5-15-1。教教学学安安排排例例 5-25-2。2 2、关系表达式关系表达式关系表达式的值是逻辑值,即“真”关系表达式的值是逻辑值,即“真”“假”“假”。C C 语言没有逻辑型数据,语言没有逻辑型数据,1 1“真”“真”,0 0“假”“假”。例例 5-35-3。三、逻辑运算符和逻辑表达式“关系运算”“关系运算”(比较运算)即,两个逻辑值的运算。(比较运算)即,两个逻辑值的运算。1 1、逻辑运算符。逻辑运算符。(1 1)&逻辑与逻辑与,(2 2)|逻
33、辑或逻辑或,(3 3)!逻辑非逻辑非2 2、逻辑运算符的优先顺序:逻辑运算符的优先顺序:3 3、逻辑表达式逻辑表达式四、条件运算符与条件表达式1 1、单目运算符、双目运算符、三目运算符的概念、单目运算符、双目运算符、三目运算符的概念2 2、C C 语言唯一的三目运算符构成的条件表达式语言唯一的三目运算符构成的条件表达式课后自我课后自我总结分析总结分析b)b)关于优先次序:前关于优先次序:前 4 4 种高于后两种;关系低于算术;关系高于赋值种高于后两种;关系低于算术;关系高于赋值备注备注C 语言程序设计教案第 15-16 课时授课内容授课内容第第 4 4 章(章(2 2)选择结构程序设计选择结构
34、程序设计教学目的教学目的和要求和要求重点重点难点难点选择结构的嵌套;选择结构的嵌套;switchswitch 语句实现多分支选择结构语句实现多分支选择结构重点:选择结构的嵌套;重点:选择结构的嵌套;switchswitch 语句实现多分支选择结构语句实现多分支选择结构难点:选择结构的嵌套;难点:选择结构的嵌套;switchswitch 语句实现多分支选择结构语句实现多分支选择结构讲授一、if 语句的嵌套1 1、在、在 if if 语句中又包含一个或多个语句中又包含一个或多个if if 语句称为语句称为 if if 语句的嵌套。语句的嵌套。2 2、如果、如果if if 与与 elseelse 的
35、数目不一致,为了体现程序设计者的思想,可加花括号来确定配对的关的数目不一致,为了体现程序设计者的思想,可加花括号来确定配对的关系。系。3 3、利用代码缩进增强代码的可读性,养成良好的编程风格、利用代码缩进增强代码的可读性,养成良好的编程风格4 4、例阶跃函数用、例阶跃函数用 if if 语句的嵌套实现语句的嵌套实现(1)(1)绘制流程图绘制流程图(2)(2)将流程图编写成程序将流程图编写成程序教教学学安安排排如果条件分支较多,如果条件分支较多,利用利用 if if 语句显得程序冗长,语句显得程序冗长,且可读性降低。且可读性降低。因此,因此,C C 语言设计了语言设计了 switchswitch
36、语句。语句。1 1、switchswitch 语句的一般形式语句的一般形式2 2、例、例 输出考试成绩的输出考试成绩的 ABCDABCD 段等级段等级(1)(1)绘制流程图绘制流程图(2)(2)将流程图编写成程序将流程图编写成程序3 3、例、例 用用 switchswitch 语句处理菜单命令语句处理菜单命令三、选择结构程序设计综合举例例例 判断某一年是否是闰年判断某一年是否是闰年例例 求二元二次方程的实根求二元二次方程的实根四、上机演示及实践操作在讲课的同时切换软件界面调试代码在讲课的同时切换软件界面调试代码课后自我课后自我总结分析总结分析备注备注二、用 switch 语句实现多分支选择结构
37、C 语言程序设计教案第 17-18 课时授课内容授课内容第第 5 5 章(章(1 1)循环结构程序设计循环结构程序设计教学目的教学目的和要求和要求重点重点难点难点掌握掌握 whilewhile 当型循环、当型循环、do whiledo while 直到型循环、直到型循环、forfor 循环循环whilewhile 当型循环、当型循环、dodo whilewhile 直到型循环、直到型循环、forfor 循环的形式、执行过程、使用注意循环的形式、执行过程、使用注意问题问题引言重复执行就是循环。重复工作是计算机特别擅长工作之一。重复执行就是循环。重复工作是计算机特别擅长工作之一。重复执行不是简单地
38、重复,每次重复,操作的数据(状态、条件)都可能发生变化。重复执行不是简单地重复,每次重复,操作的数据(状态、条件)都可能发生变化。重复的动作是受控制的重复的动作是受控制的,C,C 语言提供三种循环控制语句,构成了三种基本的循环结构。语言提供三种循环控制语句,构成了三种基本的循环结构。讲授一、while 语句(当型循环)1 1、whilewhile 语句的一般形式是:语句的一般形式是:2 2、执行过程是:、执行过程是:(流程图、(流程图、N-SN-S 图)图)3 3、使用、使用 whilewhile 注意的问题。注意的问题。例例 5-15-1:利用:利用 whilewhile 语句,编写程序计算
39、语句,编写程序计算 1+2+3+1+2+3+100。+100。教教学学安安排排1 1、do-whiledo-while 语句的一般形式语句的一般形式2 2、do-whiledo-while 执行过程(流程图)执行过程(流程图)3 3、do-whiledo-while 说明:说明:例例 5-45-4:利用:利用 do-whiledo-while 语句计算机语句计算机 1+1/2+1/4+1/50。1+1/2+1/4+1/50。三、for 语句(当型循环)1 1、forfor 语句的一般形式(给出语句的一般形式(给出 whilewhile 循环的对应结构)循环的对应结构)2 2、forfor 循环
40、执行过程(流程图)循环执行过程(流程图)例例 5-65-6:写一个程序,计算半径为:写一个程序,计算半径为,5.5mm,5.5mm 时圆的半径。时圆的半径。例例 5-75-7:求正整数:求正整数 n n 的阶乘的阶乘 n!,n!,其中其中 n n 由用户输入。由用户输入。3 3、forfor 语句最容易理解、最常用的形式语句最容易理解、最常用的形式4 4、forfor 语句说明(语句说明(6 6 点)点)。C C 语言的语言的 forfor 语句功能强大,使用灵活。语句功能强大,使用灵活。四、上机演示及实践操作在讲课的同时切换软件界面调试代码在讲课的同时切换软件界面调试代码二、do-while
41、 语句(直到型循环)课后自我课后自我总结分析总结分析备注备注C 语言程序设计教案第 19-20 课时授课内容授课内容第第 5 5 章(章(2 2)循环结构程序设计循环结构程序设计教学目的教学目的掌握条件运算符、条件表达式掌握条件运算符、条件表达式和要求和要求掌握掌握 switch-caseswitch-case 语句语句重点重点难点难点switch-caseswitch-case 语句语句引言a)a)复习关系运算、逻辑运算、复习关系运算、逻辑运算、if if 语句语句b)b)引入简单的条件运算符及表达式、以及开关语句引入简单的条件运算符及表达式、以及开关语句讲授一、条件运算符、条件表达式在在
42、if if 语句中,在表达式为“真”和“假”时,都只执行一个赋值语句给同一个变量赋值语句中,在表达式为“真”和“假”时,都只执行一个赋值语句给同一个变量赋值时,可以使用简单的条件运算符来处理。时,可以使用简单的条件运算符来处理。例如:例如:if(ab)max=a;else max=b;max=ab?a:bif(ab)max=a;else max=b;max=ab?a:b;(1)(1)条件表达式的一般形式:表达式条件表达式的一般形式:表达式1 1?表达式?表达式 2 2:表达式:表达式 3 3(2)(2)条件表达式说明(条件表达式说明(5 5 点)点)教教学学安安排排例例 5-4.5-4.二、s
43、witch-case 语句(多分支选择语句/开关语句)3 3、switchswitch 一般形式一般形式4 4、switchswitch 语句说明。语句说明。(1)-(7)(1)-(7)三、分支程序例子例例 写程序,判断某一年是否是闰年。写程序,判断某一年是否是闰年。例例 求一元二次方程求一元二次方程 ax2+bx+c=0ax2+bx+c=0的根。的根。例例 运输公司对用户计算运费。运输公司对用户计算运费。六、应用举例例例 6-146-14:从键盘输入一个大于:从键盘输入一个大于 2 2 的整数的整数 n n,判断是不是素数。,判断是不是素数。例例 6-156-15:求:求 100-20010
44、0-200 之间的所有素数。之间的所有素数。例例 6-166-16:输出下三角:输出下三角 9999 乘法表乘法表七、上机演示及学生操作在讲课的同时切换软件界面调试代码在讲课的同时切换软件界面调试代码课后自我课后自我总结分析总结分析备注备注C 语言程序设计教案第 21-22 课时授课内容授课内容第第 6 6 章章(1)(1)一维组的应用一维组的应用教学目的教学目的数组的基本概念;数组的基本概念;和要求和要求一维数组定义、初始化、引用;最大值、冒泡排序、选择排序算法。一维数组定义、初始化、引用;最大值、冒泡排序、选择排序算法。重点:一维数组定义、初始化、引用;求最大值、冒泡排序、选择排序算法;矩
45、阵操作重点:一维数组定义、初始化、引用;求最大值、冒泡排序、选择排序算法;矩阵操作难点:冒泡排序、选择排序算法难点:冒泡排序、选择排序算法重点重点难点难点引言基本数据类型构造类型的数据数组基本数据类型构造类型的数据数组数组、数组元素、数组的下标、数组的维数数组、数组元素、数组的下标、数组的维数例如:例如:int a10;int a10;一维数组可以看作一个数列,向量。一维数组可以看作一个数列,向量。例如:例如:float b33;float b33;二维数组可以看作一个矩阵。二维数组可以看作一个矩阵。讲授一、定义和引用一维数组1 1、一维数组的定义、一维数组的定义类型说明类型说明 数组名数组名
46、 整型常量表达式整型常量表达式 2 2、一维数组定义说明、一维数组定义说明下标从下标从 0 0 开始开始3 3、数组元素的引用、数组元素的引用教教学学安安排排例例 利用数组输出利用数组输出 1-101-10(1)(1)循环语句循环语句(2)(2)数组下标越界数组下标越界4 4、一维数组的初始化的几种形式、一维数组的初始化的几种形式(1 1)定义时赋初值)定义时赋初值(2 2)部分赋初值)部分赋初值(3 3)数组元素全部置)数组元素全部置 0 0(4 4)数组元素如全部赋值可不指定长度)数组元素如全部赋值可不指定长度5 5、给数组元素赋初值和给数组集合赋初值的异同、给数组元素赋初值和给数组集合赋
47、初值的异同(1)(1)给数组元素赋初值给数组元素赋初值int temp1=9;int temp1=9;(2)(2)给数组集合赋初值给数组集合赋初值int temp10=(1,2,3);int temp10=(1,2,3);二、一维数组的应用例子例例 6-26-2:用数组来处理斐波那契数列:用数组来处理斐波那契数列例例 6-36-3:采用“冒泡法”对任意输入的:采用“冒泡法”对任意输入的1010 个整数按由小到大的顺序排序。个整数按由小到大的顺序排序。例例 6-46-4:采用“选择法”:采用“选择法”对任意输入的对任意输入的 1010 个整数按由大到小的顺序排序。个整数按由大到小的顺序排序。三、
48、动态内存分配法实现不定长一维数组某些情境需要定义一个数组,但数组的长度不定,因为这个长度是根据某些其他条件确某些情境需要定义一个数组,但数组的长度不定,因为这个长度是根据某些其他条件确定的,这时我们需要定义一个长度不定的数组。如读取不同声音的语音数据序列。定的,这时我们需要定义一个长度不定的数组。如读取不同声音的语音数据序列。课后自我课后自我总结分析总结分析备注备注C 语言程序设计教案第 23-24 课时授课内容授课内容第第 6 6 章章(2)(2)二维数组和多维数组的应用二维数组和多维数组的应用教学目的教学目的和要求和要求重点重点难点难点二维数组定义、初始化、引用;多维数组二维数组定义、初始
49、化、引用;多维数组重点:二维数组定义、初始化、重点:二维数组定义、初始化、;双重;双重forfor 循环读取二维数组;二维数组循环读取二维数组;二维数组1 1 维和维和 2 2 维的分辨;维的分辨;难点:双重难点:双重 forfor 循环读取二维数组循环读取二维数组、二维数组二维数组 1 1 维和维和 2 2 维的分辨维的分辨二、二维数组(注意:类比一维数组)1 1、二维数组的应用场景、二维数组的应用场景2 2、二维数组的定义、二维数组的定义3 3、二维数组元素的内存分布、二维数组元素的内存分布二、二维数组元素的引用例例 6-56-5:二维数组元素的引用的例子(自学):二维数组元素的引用的例子
50、(自学)-构造、打印单位矩阵。构造、打印单位矩阵。思考:下标是从思考:下标是从 1 1 开始使用的,哪些元素在此例子中未使用?它们的值是多少?(随机值)开始使用的,哪些元素在此例子中未使用?它们的值是多少?(随机值)三、二维数组的初始化的几种形式(1 1)分行给二维数组赋值)分行给二维数组赋值(2 2)将所有数组写在一个花括号内)将所有数组写在一个花括号内(3 3)对部分元素赋值)对部分元素赋值教教学学安安排排(4 4)对全部元素赋初值,二维数组的)对全部元素赋初值,二维数组的1 1 维长度可以省略,维长度可以省略,2 2 维长度不能省略维长度不能省略四、双重 for 循环法读取二维数组比较抽