引言 重复执行就是循环。重复工作是计算机特别擅长工作之一。 重复执行不是简单地重复,每次重复,操作的数据(状态、条件)都可能发生变化。 重复的动作是受控制的,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'作为结束符。例如\9个字符,但在内存中占10个字节,最后一个字节'\\0'是系统自动加上的。(通过sizeof()函数可验证) 三、字符数组的输入和输出 (1)逐个字符输入输出 (2)将整个字符串输出 (3)利用字符串的结束符批量输出 四、字符串概述 1、字符串的输出 (1)“%s”格式符 (2)print语句的输出项参数用字符数组名,而非数组元素名 2、字符串的引用 五、由字符数组来构造字符串 根据定义,可由字符数组添加一个'\\0'符形成字符串。 六、二维字符数组 1、二维字符数组的定义 2、二维字符数组的初始化 3、二维字符数组的引用 课后自我 总结分析 备注 《C语言程序设计》教案
第27-28 课时 授课内容 第6章(4) 字符串函数的应用 教学目的 字符数组定义、初始化、引用;字符串与字符数组;字符串处理函数;字符数组应用 和要求 重点 难点 重点:字符串与字符数组;字符串处理函数 难点:字符串与字符数组;字符串处理函数