版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第页《C语言程序设计案例教程》教案项目1学生成绩的输入和输出(第一课)课题项目1学生成绩的输入和输出课型新授课(理论讲授+上机实践)课时2学时(90分钟)周次第一周课次第一课授课时间年月日授课班级授课地点多媒体机房(或多媒体教室)授课教师一、教材与内容分析本课选自大连理工大学出版社《C语言程序设计案例教程》(王明福主编)项目1“学生成绩的输入和输出”,是全书第一个教学项目,也是学生迈入C程序设计大门的第一课。教材以真实任务“学生成绩的输入和输出”为驱动,先呈现问题情境与参考程序,再依次引出程序和程序设计语言、简单的C程序、C程序的基本结构、基本输入和输出方法、C程序的上机步骤等必备知识,并配套课程思政、小结、习题与上机实验。本课是学生建立C语言整体认识、迈入程序设计大门的关键一课,为后续顺序结构、选择结构、循环结构等内容的学习奠定基础。二、学情分析1.学生已具备计算机基本操作和Windows系统使用经验,对程序如何运行有较强的求知欲。2.学生初次接触程序设计,对“源程序—编译—连接—可执行文件”缺乏整体概念;对C语言严格区分大小写、标点必须用英文等规范要求意识不足。3.学生对printf、scanf等函数的格式控制容易出错,需要通过对比演示与反复练习加深理解。4.对策:以真实任务驱动,多用演示与对比;把常用格式字符整理成表(表1-1、表1-2)随学随查;上机环节加强巡视与个别辅导。三、教学目标1.知识目标(1)认识C程序,了解其基本结构。(2)理解基本输入输出方法,涵盖字符输入输出、格式输入输出。(3)熟悉C程序的上机步骤。2.能力目标(1)理解C程序基本结构,能读懂简单的C程序并说明其功能。(2)熟练运用基本输入输出函数(getchar、putchar、printf、scanf)进行数据操作。(3)掌握C程序上机步骤,能在VisualC++2010环境中完成C程序的编辑、编译、连接和运行,为后续学习奠定基础。3.素质目标(1)理解课程意义与基本概念,构建C语言程序设计课程的整体知识框架。(2)树立民族自尊自信,了解我国科学家的科学探索精神,厚植家国情怀。(3)激发不断学习、精益求精的工匠精神,形成良好的职业素养。四、教学重点1.C程序的基本结构。2.基本输入和输出方法(getchar、putchar、printf、scanf函数及常用格式字符)。3.C程序的上机步骤(编辑→编译→连接→运行)。五、教学难点1.基本输入输出函数的格式控制(printf、scanf的格式字符及其用法)。2.VisualC++2010中新建项目、新建源程序文件的完整流程及项目文件(.sln、.sdf、ipch)的组织。六、教学方法与手段教学方法:任务驱动法、案例教学法、讲授法、演示法、对比法、练习法。教学手段:多媒体电子课件(约55页)、VisualC++2010集成环境屏幕广播演示、上机实践、随堂平台练习。七、教学准备教师:更新后的多媒体课件、机房广播软件、已安装VisualC++2010的计算机、示例源程序Li1_1.c~Li1_7.c、常用格式字符表(表1-1、表1-2)、随堂练习与评价量表。学生:预习教材项目1内容,准备好上机记录本。八、教学过程(共90分钟)(一)组织教学与情境导入(5分钟)1.师生问好、考勤,检查机房设备与VisualC++2010环境是否正常。2.情境导入:辅导员张老师需要把学生的成绩录入计算机并输出到屏幕上,请小王同学用C语言编写程序来实现。现场演示程序的运行效果。设计意图:用真实任务导入,让学生明确“学习C语言能解决什么问题”,激发学习兴趣。(二)任务导入,明确目标(10分钟)1.展示“学生成绩的输入和输出”参考程序(教材任务代码)并运行:/*功能:学生成绩的输入和输出*/#include<stdio.h>intmain(){floatyuwen,shuxue,yingyu;printf("请输入学生的语文,数学,英语的成绩:");scanf("%f%f%f",&yuwen,&shuxue,&yingyu);printf("该生的语文,数学,英语的成绩分别是:\n");printf("%f分\t%f分\t%f分\n",yuwen,shuxue,yingyu);return0;}提出问题:程序中为什么要有#include<stdio.h>?main是什么?printf、scanf起什么作用?程序是怎样从代码变成能运行的文件?3.交代本课学习目标与知识地图:程序和程序设计语言→简单的C程序→C程序的基本结构→基本输入和输出方法→C程序的上机步骤。设计意图:以问题链引导学生带着任务去学,明确知识脉络。(三)新课讲授与任务实施(60分钟)1.1C程序介绍(18分钟)(1)程序和程序设计语言(8分钟):以洗衣机洗衣的五个步骤类比“程序”,说明程序是完成某件事的步骤序列且可以不唯一;介绍机器语言、汇编语言(低级语言)与高级语言的区别,说明C语言属于编译型高级语言;强调计算机只识别机器指令,程序须由人用程序设计语言编写。(2)简单的C程序(10分钟):讲解并现场运行例1.1(在屏幕上输出一行字符串)、例1.2(求123与456之和)、例1.3(从键盘输入两个数,用自定义函数max()取较大者);强调规范写法——主函数统一写成intmain(),并以return0;结束。1.2C程序的基本结构(7分钟)函数是C程序的基本结构:一个C程序由一个或多个函数组成,一个C函数由若干条C语句构成;一个C程序必须有一个且只能有一个主函数main(),程序从main()开始执行,最后终止于main()。结合图1-1讲清C程序的一般格式:以#开头的编译预处理命令、主函数与其他函数;每个函数都包括函数名、形式参数和函数体三部分,函数体用{}括起来,一般由局部变量定义和语句序列组成。1.3基本输入和输出方法(25分钟)(1)字符输入函数getchar()(4分钟):格式为getchar(),功能是从键盘接收输入的一个字符,其值可以送给字符型变量,也可以送给整型变量(例1.4)。(2)字符输出函数putchar()(4分钟):格式为putchar(c),功能是向终端输出一个字符,c可以是字符型或整型变量,也可以是字符常量或整型常量(例1.5)。(3)格式输出函数printf()(9分钟):调用格式为printf("格式控制字符串",参数表);结合例1.6(输出a=8、b=18)讲解;对照表1-1讲解常用格式字符(%d、%o、%x、%u、%c、%f、%e、%s)以及%m、%-m、%m.n等宽度与精度控制字符。(4)格式输入函数scanf()(8分钟):调用格式为scanf("格式控制字符串",参数表);结合例1.7讲解;强调参数表中至少有一个输入项且必须是变量地址(变量名前加&);对照表1-2讲解常用格式字符。特别提醒:C语言(包括文件名)严格区分大小写,语法格式中一律使用英文标点,一个标点、一个字母出错程序都会报错;使用系统提供的头文件时用尖括号<>,使用自己编写的头文件时用双引号""。1.4C程序的上机步骤(10分钟)C源程序要经过编辑、编译、连接和运行四个环节,才能产生输出结果;目标文件扩展名为.obj,可执行文件扩展名为.exe。在VisualC++2010中演示:新建项目(【文件】|【新建】|【项目】→选择“Win32控制台应用程序”,附加选项选“空项目”)→新建源程序文件(建议输入扩展名.c,否则系统自动添加.cpp)→编译、连接、运行(【调试】|【启动调试】或按F5)。提醒:VisualC++2010生成项目时会同时产生.sln(解决方案)、.sdf及ipch文件夹等,注意其作用与项目文件的组织;编译出错时查看输出窗口的提示(如errorC2143:语法错误:缺少“;”),双击提示行可直接定位到出错位置。设计意图:先讲后演、边讲边练,帮助学生把知识落到上机操作上。(四)课程思政(5分钟)以“以基础之实,筑创新之基”为主线,融入家国情怀与工匠精神:1.结合王选院士结合汉字特性攻克激光照排难关、让中国印刷业实现“换道超车”的事迹,引导学生理解“筑牢根基、行稳致远”,以开放姿态吸收全球养分而不止于“拿来主义”。2.以“差之毫厘,谬以千里”强调编程需要严谨细致、一丝不苟的工匠精神,引导学生在细节处养成良好职业素养。3.结合中国古代算盘(起源于北宋,迄今已有2600多年历史)等素材,增强文化自信与民族自豪感。(五)课堂小结(5分钟)1.一个C程序的基本结构:以#开头的若干个编译预处理命令;然后是主函数main()和其他函数;用{}括起来的是函数体。2.函数是C程序的基本结构,一个C程序由一个或多个函数组成,必须有一个且只能有一个主函数main()。3.常用输入输出函数:getchar()、putchar()、printf()、scanf()。4.C源程序要经过编辑、编译、连接、运行四个环节才能产生输出结果。(六)作业布置(5分钟)1.必做题:教材项目1习题一、选择题(第1~10题);习题二、填空题(第1~10题)。程序设计题:教材项目1习题三第1~3题(输出指定图案;输出指定信息;分别用scanf和getchar读入两个字符,再用putchar和printf输出并比较其区别)。上机题:在VisualC++2010中完成例1.1~例1.7的录入、编译与运行,记录运行结果以及遇到的错误和解决方法。预习:下次课为配套实验“初识VisualC++2010环境及运行C程序”(2学时),请提前熟悉C程序的上机步骤。九、授课后记(课后填写:教学目标达成情况、学生上机操作情况、存在的问题与改进措施。)《C语言程序设计案例教程》教案项目1学生成绩的输入和输出(第二课)课题项目1学生成绩的输入和输出课型新授课(上机实验课)课时2学时(90分钟)周次第一周课次第二课授课时间年月日授课班级授课地点多媒体机房(或多媒体教室)授课教师一、教材与内容分析本课是项目1“学生成绩的输入和输出”的第2次课,为配套上机实验课。教材在1.4“C程序的上机步骤”中给出了源程序从编辑、编译、连接到运行的完整流程,并介绍了VisualC++2010中解决方案(.sln)、.sdf文件与ipch文件夹的作用。本课以“初识VisualC++2010环境及运行C程序”为主题,让学生在真机上把例1.1~例1.7逐个跑通,在做中真正掌握集成开发环境的使用方法和常见编译错误的排查思路,为后续各项目的上机实践打下操作基础。二、学情分析1.学生已在第1次课上理解了C程序的基本结构,认识了常用输入输出函数,具备了编写简单程序的知识准备。2.学生初次使用VisualC++2010,对“解决方案—项目—源文件”的层级关系缺乏直观认识,容易在新建项目、添加源文件等环节走错路径。3.部分学生在中英文输入法之间切换不熟练,误用中文标点、误写大小写,导致errorC2143一类的编译错误,容易产生畏难情绪。4.对策:教师先完整演示一遍上机流程,再按“跟着做—模仿做—独立做”三步推进;提供常见错误对照表,巡视中个别辅导、同伴互助。三、教学目标1.知识目标(1)了解VisualC++2010集成开发环境的界面组成与基本功能。(2)理解源程序经过编辑、编译、连接生成可执行文件的完整过程,以及.sln、.sdf、ipch文件的作用。(3)掌握在VisualC++2010中新建项目、新建源程序文件、编译、连接、运行的操作步骤。2.能力目标(1)能独立创建Win32控制台应用程序项目并添加扩展名为.c的源程序文件。(2)能录入、编译、连接、运行例1.1~例1.7,并读懂输出窗口的提示信息、定位并改正错误。(3)能熟练使用F7生成解决方案、F5启动调试、Ctrl+F5开始执行等常用快捷键。3.素质目标(1)在上机实践中养成规范化编码习惯,做到标点用英文、大小写正确、缩进整齐。(2)在反复调试与纠错中培养耐心细致、一丝不苟的工匠精神。(3)养成填写上机记录、归纳问题与方法的良好学习习惯,增强自主学习能力。四、教学重点1.VisualC++2010中新建项目、新建源程序文件的操作流程。2.程序的编辑、编译、连接、运行四步操作及常用快捷键。3.例1.1~例1.7的录入、编译与运行。五、教学难点1.解决方案、项目与源文件之间的层级关系,以及.sln、.sdf、ipch文件的作用。2.编译错误的阅读与定位,如errorC2143:语法错误:缺少“;”。六、教学方法与手段教学方法:任务驱动法、演示法、练习法、纠错法、小组互助法。教学手段:多媒体电子课件(约55页)、VisualC++2010集成环境屏幕广播演示、机房上机实践与随堂检查。七、教学准备教师:更新后的多媒体课件、机房广播软件、已安装VisualC++2010的计算机、实验任务单、例1.1~例1.7源程序清单、常见错误对照表。学生:复习教材项目1中1.1~1.4的内容,携带上机记录本与实训指导书。八、教学过程(共90分钟)(一)组织教学与复习导入(5分钟)1.师生问好、考勤,检查机房设备与VisualC++2010环境是否正常。2.复习提问:一个C程序由哪几部分构成?printf与scanf各起什么作用?源程序是怎样一步步变成可执行文件的?3.导入:本课走进机房,亲手把课本上的例1.1~例1.7运行起来。(二)实验任务布置与流程演示(15分钟)1.布置实验任务:完成例1.1~例1.7的录入、编译、连接与运行,记录运行结果与出现的错误。2.教师完整演示一遍上机流程:第一步启动VisualC++2010,执行【文件】|【新建】|【项目】,选择“Win32控制台应用程序”,在“附加选项”中勾选“空项目”,输入项目名称(如ch01_01)与保存路径。第二步在“解决方案资源管理器”中右击“源文件”|【添加】|【新建项】,选择“C++文件(.cpp)”,文件名输入ch01_01.c(务必带扩展名.c,否则系统自动添加.cpp)。第三步录入程序代码,按F7生成解决方案,按F5启动调试或按Ctrl+F5开始执行(不调试)。3.说明项目文件的组织:.sln为解决方案文件,是VisualC++2010中级别最高的文件;.sdf文件与ipch文件夹由系统自动生成,与智能提示、错误提示等有关,删除后重新编译会自动生成。(三)学生上机实践(55分钟)1.基础任务(20分钟):录入并运行例1.1(输出一行字符串)、例1.2(求两数之和),记录运行结果。2.提高任务(20分钟):录入并运行例1.3(求两数中较大者,含自定义函数max)、例1.4(getchar从键盘输入字符)、例1.5(输入字符并在屏幕上显示出来)。3.拓展任务(15分钟):录入并运行例1.6(printf输出两个整型变量的值)、例1.7(scanf输入两个整型变量的值);对照表1-1、表1-2体会常用格式字符的作用。4.教师巡视指导,重点纠正中文标点、大小写误写、漏写分号、变量未定义等常见错误。(四)典型错误辨析(8分钟)1.结合输出窗口的提示,辨析两类典型错误:errorC2143:语法错误:缺少“;”产生原因:使用了中文分号“;”,或上一行语句漏写分号。errorC3861:“printf”:找不到标识符产生原因:忘记书写编译预处理命令#include<stdio.h>。2.特别提醒:C语言严格区分大小写,语法格式中一律使用英文标点;使用系统提供的头文件用尖括号<>,使用自己编写的头文件用双引号"";出现错误时双击输出窗口的提示行可直接定位到出错位置。(五)实验小结与作业布置(7分钟)1.小结:新建项目→新建源文件→编辑→编译→连接→运行的完整流程;.sln、.sdf、ipch文件的作用;常见编译错误的排查方法。2.作业:整理本次上机记录,写出至少两个错误及其解决方法;完成教材项目1习题一选择题、习题二填空题。3.预习:教材项目2“成绩的计算”,思考计算机中为什么要区分不同的数据类型。九、授课后记(课后填写:实验任务完成情况、学生上机中出现的典型问题、改进措施。)《C语言程序设计案例教程》教案项目2成绩的计算(第一课)课题项目2成绩的计算课型新授课(理论讲授+上机实践)课时2学时(90分钟)周次第二周课次第一课授课时间年月日授课班级授课地点多媒体机房(或多媒体教室)授课教师一、教材与内容分析本课是项目2“成绩的计算”的第1次课。教材以“成绩的计算”这一真实任务为驱动,先用例2.1(输入职工的姓名、年龄、工资并输出)展示程序如何处理不同类型的数据,再引出C语言的数据类型体系、常量与变量的概念、标识符的命名规则,以及整型、实型、字符型数据的特点与变量赋初值的方法。学好本课,是学生能够正确地“给数据找到合适的类型”的前提,也是后面运算符、表达式和类型转换等内容的基础。本课的重点在于建立“类型先行”的意识:不同类型的数据在内存中占用的字节数不同、取值范围不同、能参与的运算也不同。教学时宜结合具体的成绩数据(如学号用整型、成绩用实型)反复举例,让学生在任务中体会数据类型的意义。二、学情分析1.学生已能编写并运行简单的C程序,但程序中的数据多为直接写在printf中的常量,对“变量”与“数据类型”的必要性缺乏体会。2.学生对标识符的命名规则容易忽视,常见错误是用关键字(如int、float)作变量名、以数字开头命名变量、大小写混用。3.字符型数据与ASCII码的关系、转义字符的含义较为抽象,学生对'1'与1的区别容易混淆。4.对策:以“录入学生成绩”为主线,先给出任务再引出知识点;把数据类型、取值范围、格式字符整理成表格随学随查;对易错点采用对比板书与即时练习强化。三、教学目标1.知识目标(1)了解C语言数据类型的分类及不同类型数据的取值范围。(2)理解常量的表示方法与标识符的命名规则,理解变量必须先定义后使用的原则。(3)掌握整型、实型、字符型数据的特点与变量定义、初始化、赋值的方法。2.能力目标(1)能根据数据的特点选择合适的数据类型定义变量,并合理赋初值。(2)能正确书写整型、实型、字符型常量及转义字符。(3)能在VisualC++2010中编写、调试例2.1~例2.3,并正确解释程序的输出结果。3.素质目标(1)养成“类型先行、细节求真”的严谨编码习惯,体会一字之差可能导致运行结果迥异。(2)由不同类型数据“各得其所”体会规则意识,树立代码即责任的职业观。(3)通过规范的变量命名与初始化,培养良好的工程素养与代码风格。四、教学重点1.C语言的基本数据类型(int、float、double、char)及其常量表示方法。2.变量的定义、初始化与赋值。3.标识符的命名规则。五、教学难点1.字符型数据与ASCII码的关系,字符常量'a'与整型常量1、字符串"a"的区别。2.转义字符的书写与作用。3.变量赋初值的时机与取值范围对计算结果的影响。六、教学方法与手段教学方法:任务驱动法、案例教学法、讲授法、演示法、对比法、练习法。教学手段:多媒体电子课件(约53页)、VisualC++2010集成环境屏幕广播演示、随堂练习与小组讨论。七、教学准备教师:更新后的多媒体课件、VisualC++2010环境、例2.1~例2.3源程序(Li2_1.c~Li2_3.c)、数据类型与格式字符对照表、随堂练习与评价量表。学生:预习教材项目2中2.1、2.2的内容,携带上机记录本。八、教学过程(共90分钟)(一)组织教学与情境导入(5分钟)1.师生问好、考勤,检查机房设备与VisualC++2010环境是否正常。2.情境导入:辅导员张老师要登记一名职工(学生)的姓名、年龄和工资(成绩),姓名是一串字符,年龄是整数,工资(成绩)有小数。如果只用一种“万能类型”,程序会怎样?3.设计意图:用真实数据的不同形态引出“数据类型”的必要性,让学生明确“数据要找到合适的类型”。(二)任务导入,明确目标(10分钟)1.展示例2.1:实现一个输入职工的姓名、年龄、工资并输出的程序,现场运行并观察不同类型数据的输入输出效果:/*源文件名:Li2_1.c功能:输入职工的姓名、年龄、工资并输出*/#include<stdio.h>intmain(){charemployname[6];intemployage;floatemploywage;scanf("%s%d%f",employname,&employage,&employwage);printf("%s%d%f\n",employname,employage,employwage);return0;}2.提出问题:姓名为什么用字符数组?年龄为什么用整型?工资为什么用实型?如果把工资定义为整型会怎样?3.交代本课学习目标与知识地图:数据类型概览→常量与变量→整型数据→实型数据→字符型数据→变量赋初值。(三)新课讲授与任务实施(60分钟)1.2.1数据类型及表达式——C程序引例(10分钟)(1)结合例2.1讲解三类数据在内存中的存储方式(字符型占1个字节、整型占4个字节、实型占4个字节),说明变量名与内存地址的对应关系。结合例2.2分析程序的输出结果,体会不同类型数据参与运算时的取值差异。(2)强调:变量必须先定义后使用,定义时要写清类型,程序才能为变量分配相应大小的存储空间。2.2.2C语言的数据类型(35分钟)(1)数据类型概览(5分钟):C语言的数据类型分为基本类型(整型、实型、字符型)、构造类型(数组、结构体、共用体)、指针类型和空类型,本项目主要介绍基本数据类型。(2)常量与变量(8分钟):常量是在程序运行过程中其值不能被改变的量,分为整型常量、实型常量、字符常量和字符串常量;变量是其值可以改变的量,变量名即标识符。标识符只能由字母、数字和下划线组成,且不能以数字开头、不能使用关键字、区分大小写。(3)整型数据(8分钟):整型常量可用十进制、八进制(0开头)、十六进制(0x开头)表示;整型变量按取值范围分为int、short、long及无符号类型;结合例2.3(变量声明示例)观察不同类型变量的定义与输出。(4)实型数据(7分钟):实型常量有小数形式和指数形式两种;float为单精度(4字节,有效数字6~7位),double为双精度(8字节,有效数字15~16位);输出时分别用%f和%lf。(5)字符型数据(7分钟):字符常量是用单引号括起来的单个字符,如'a'、'1',在内存中以ASCII码形式存放;介绍常用转义字符\n(换行)、\t(制表符)、\\(反斜杠)、\'(单引号);强调'a'与"a"的区别、'1'与1的区别。3.变量赋初值(10分钟)(1)介绍定义变量的同时赋初值(如inta=3;)、先定义后赋值(如inta;a=3;)以及部分赋初值的规则。(2)强调:未赋初值的变量其值是不确定的,不能直接参与运算;局部变量在使用前必须先赋初值。(3)当堂练习:给出“学生姓名、学号、数学成绩、等级”四项数据,请学生选择合适的数据类型并写出定义语句,教师点评。4.设计意图(不占课时)先讲后演、边讲边练,让学生在完成任务中把数据类型的选择与变量的定义落到实处。(四)课程思政(5分钟)1.以“数据各得其所,程序方能有序”为切入点,引导学生体会规则意识:每一种数据都有它合适的位置和边界,正如每一个人在社会中都有自己应守的规矩。2.结合我国古代“度量衡统一”的历史,说明统一规范对工程建设与社会发展的重要意义,增强文化自信。3.以“差之毫厘,谬以千里”提醒学生:类型选择错误或初值未赋,程序结果可能完全错误,需要严谨细致、一丝不苟的工匠精神。(五)课堂小结(5分钟)1.C语言的数据类型分为基本类型、构造类型、指针类型和空类型,本项目重点掌握基本类型。2.标识符只能由字母、数字和下划线组成,不能以数字开头,不能使用关键字,区分大小写。3.变量必须先定义后使用,定义时可同时赋初值;未赋初值的变量值不确定。4.整型常量可用十进制、八进制、十六进制表示;实型有float与double之分;字符常量用单引号,以ASCII码存放。(六)作业布置(5分钟)1.必做题:教材项目2习题一选择题、习题二填空题。2.程序设计题:教材项目2习题三相应题目(定义并输出不同类型的数据;编写程序输出指定转义字符的效果)。3.上机题:在VisualC++2010中完成例2.1~例2.3的录入、编译与运行,记录输出结果并解释其原因。4.预习:教材项目2中2.3运算符与表达式、2.4数据类型转换。九、授课后记(课后填写:教学目标达成情况、学生在类型选择上的常见错误、存在的问题与改进措施。)《C语言程序设计案例教程》教案项目2成绩的计算(第二课)课题项目2成绩的计算课型新授课(理论讲授+上机实践)课时2学时(90分钟)周次第二周课次第二课授课时间年月日授课班级授课地点多媒体机房(或多媒体教室)授课教师一、教材与内容分析本课是项目2“成绩的计算”的第2次课,围绕2.3“运算符与表达式”和2.4“数据类型转换”展开。教材通过例2.5(复合赋值)、例2.6(逗号表达式)、例2.7(语句执行结果)、例2.8(求圆的周长)、例2.9(用条件运算符把三个数由大到小排列)等实例,系统介绍了算术、赋值、自增自减、关系、逻辑、条件、逗号、求字节数等运算符及相应表达式,并讲解了自动类型转换与强制类型转换的规则。本课是学生能够把数学公式正确“翻译”成C语言表达式、进而完成成绩计算任务的关键一课。二、学情分析1.学生已掌握数据类型与变量的定义,能把简单公式写成C语句,但对运算符的优先级与结合方向多凭直觉,容易出错。2.自增自减运算符的“前置”与“后置”、复合赋值运算符的展开、逗号表达式的值与求值顺序,是学生最易混淆的难点。3.学生对整型相除的取整问题缺乏警觉,常写出1/2期望得到0.5的错误表达式。4.对策:用“先算括号、再算乘除、后算加减”的口诀帮助记忆优先级;用对比程序和表格辨析前置/后置、自动/强制转换;当堂用错题辨析练习巩固。三、教学目标1.知识目标(1)掌握算术运算符、赋值运算符及复合赋值运算符的使用方法。(2)理解自增自减运算符前置与后置的区别,掌握关系运算符、逻辑运算符、条件运算符与逗号运算符的运算规则。(3)掌握各类数值型数据之间的混合运算规则,理解自动类型转换与强制类型转换。2.能力目标(1)能将常见数学公式正确转化为C语言表达式。(2)能分析混合运算表达式的值与类型,排查整除、溢出、前置后置误用等常见错误。(3)能在VisualC++2010中编写、调试例2.4~例2.9,并正确解释输出结果。3.素质目标(1)在运算符优先级的辨析中培养逻辑严密、条理清晰的思维品质。(2)通过“一步步算清楚”的过程体会运算规则背后的严谨性,养成一丝不苟的工作态度。(3)结合成绩计算等贴近学生生活的案例,引导其用程序思维解决实际问题。四、教学重点1.算术运算符、赋值与复合赋值运算符、自增自减运算符的使用。2.运算符的优先级与结合方向,数学公式到C语言表达式的转化。3.自动类型转换与强制类型转换的规则。五、教学难点1.自增自减运算符前置与后置的区别及其在表达式中的取值。2.逗号表达式的值与求值顺序。3.整型相除的取整、类型转换的方向与副作用。六、教学方法与手段教学方法:讲授法、案例教学法、对比法、演示法、练习法。教学手段:多媒体电子课件(约53页)、VisualC++2010现场演示与单步跟踪、随堂练习与小组讨论。七、教学准备教师:更新后的多媒体课件、VisualC++2010环境、例2.4~例2.9源程序(Li2_4.c~Li2_9.c)、运算符优先级对照表、随堂练习与评价量表。学生:复习教材项目2中2.1、2.2的内容,携带上机记录本。八、教学过程(共90分钟)(一)组织教学与复习导入(5分钟)1.师生问好、考勤,检查机房设备与VisualC++2010环境是否正常。2.复习提问:C语言有哪些基本数据类型?字符常量与字符串常量有什么区别?3.导入:知道了数据“装在哪里”,本课继续解决“怎么算”的问题——运算符与表达式。(二)任务导入,明确目标(10分钟)1.给出任务:某学生三门课成绩分别为语文88.5分、数学92分、英语79分,求总分与平均分。请学生先写出数学表达式,再翻译成C语言表达式。2.教师现场运行下面这段程序,请学生观察输出结果是否与预期一致:/*源文件名:Li2_x.c功能:观察整型相除的结果*/#include<stdio.h>intmain(){inta=79,b=3;printf("%f\n",a/b);printf("%f\n",(float)a/b);return0;}3.提出问题:为什么两次输出的结果不同?由此引出运算符与类型转换的学习目标。(三)新课讲授与任务实施(60分钟)1.2.3运算符与表达式(40分钟)(1)算术运算符和算术表达式(8分钟):讲解+、-、*、/、%的用法,重点说明两个整数相除结果仍为整数(如5/2等于2),求余运算符%要求操作数均为整型;讲解运算符的优先级与结合方向。(2)赋值运算符和赋值表达式(8分钟):赋值号左边必须是变量;结合例2.5讲解+=、-=、*=、/=、%=等复合赋值运算符及其展开形式。(3)自增、自减运算符(8分钟):讲解++、--的前置与后置区别——++i是先自增再参与运算,i++是先参与运算再自增;用同一程序中连续的两次输出对比演示,提醒学生不要在同一表达式中对同一变量多次自增自减。(4)关系运算符与逻辑运算符(8分钟):讲解>、>=、<、<=、==、!=与&&、||、!的用法,强调关系表达式的值只有“真”(1)和“假”(0);提醒==与=的区别,说明逻辑运算的短路特性。(5)条件运算符与逗号运算符(8分钟):讲解条件表达式“表达式1?表达式2:表达式3”的求值规则,结合例2.9实现三个数由大到小排列;结合例2.6讲解逗号表达式“从左到右依次求值,整个表达式的值为最后一个表达式的值”;简要介绍sizeof运算符。2.2.4数据类型转换(12分钟)(1)自动类型转换:不同类型数据混合运算时,按“低精度向高精度”的方向转换(char→int→float→double);结合例2.7分析各语句的执行结果。(2)强制类型转换:格式为“(类型名)表达式”,如(float)a/b;结合例2.4观察强制类型转换中的溢出情况,说明强制转换可能丢失数据、需谨慎使用。(3)结合例2.8(已知圆周长公式c=2*π*r,求r=5时的周长)示范:如何把数学公式写成C表达式,如何选择数据类型以避免精度损失。3.课堂辨析练习(8分钟)(1)判断下列表达式的值:5/2、5.0/2、5%2、(int)3.9、3>2&&1>2。(2)错题辨析:把平均分的表达式写成sum/3(其中sum为int)会有什么问题?如何修改?(3)学生独立完成,教师巡回答疑,随机抽查并点评。(四)课程思政(5分钟)1.以“1/2=0”这一常见错误为例,说明“毫厘之差、结果全非”,引导学生理解严谨求实的科学态度。2.结合我国在超级计算机、芯片设计等领域的自主攻关历程,说明精确的数值计算能力是国家科技实力的重要支撑,引导学生立志以扎实的专业本领服务国家需求。3.强调运算符优先级如同规则,遵守规则才能得到正确结果,培养学生的规则意识与责任意识。(五)课堂小结(5分钟)1.算术运算符中两个整数相除结果为整数,求余运算符要求操作数为整型。2.复合赋值运算符是“运算符+赋值号”的组合,自增自减有前置与后置之分。3.关系与逻辑表达式的值为1(真)或0(假);条件运算符可用于简化分支选择。4.混合运算时低精度向高精度自动转换,强制类型转换可能丢失数据。(六)作业布置(5分钟)1.必做题:教材项目2习题一选择题、习题二填空题中与运算符、表达式有关的题目。2.程序设计题:教材项目2习题三相应题目(求圆的面积与周长、求平均分并保留两位小数、判断闰年等)。3.上机题:在VisualC++2010中完成例2.4~例2.9的录入、编译与运行,记录并解释输出结果。4.预习:位运算符及其表达式。九、授课后记(课后填写:教学目标达成情况、学生在运算符优先级与类型转换上的常见错误、改进措施。)《C语言程序设计案例教程》教案项目2成绩的计算(第三课)课题项目2成绩的计算课型新授课(理论讲授+上机实践)课时2学时(90分钟)周次第三周课次第一课授课时间年月日授课班级授课地点多媒体机房(或多媒体教室)授课教师一、教材与内容分析本课是项目2“成绩的计算”的第3次课,主要学习位运算符及其表达式,并对本项目的数据类型、运算符与表达式、类型转换等内容进行综合应用与复习巩固。教材在2.3“运算符与表达式”中介绍了位运算符,并在复合赋值运算符部分给出了<<=、>>=、&=、^=、|=这五种复合位运算符。位运算是直接对二进制位进行操作的一类运算,在状态标志、数据加密、底层开发中有广泛的应用。本课还通过综合案例把本项目零散的知识点串成一条线,帮助学生形成完整的知识结构。二、学情分析1.学生已掌握算术、赋值、关系、逻辑等常用运算符,对表达式的书写有了一定经验。2.学生对二进制与十进制之间的转换不够熟练,容易在位运算的计算过程中出错。3.位运算在后续课程中还会用到,但学生不易体会它的实用价值,学习动力不足。4.对策:先用“灯控开关”等形象类比引入,再结合具体的二进制计算过程逐步演示;通过实验让学生亲手验证位运算的效果,并说明其在底层开发中的实际用途。三、教学目标1.知识目标(1)理解位运算的概念,了解位运算在底层开发中的应用价值。(2)掌握按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移(<<)、右移(>>)六种位运算符的运算规则。(3)掌握位运算复合赋值运算符的使用,初步掌握“取某几位、置1、清0、翻转”等常用位操作方法。2.能力目标(1)能正确计算简单的位运算表达式的值,能读写二进制与十进制之间的转换。(2)能使用位运算完成特定位操作的常见任务。(3)能综合运用本项目的数据类型、运算符与表达式知识,独立完成成绩计算类小程序的设计与调试。3.素质目标(1)在二进制计算的反复推演中培养细致、耐心的学习品质。(2)通过位运算在硬件控制、信息安全中的应用,体会基础知识的实用价值,激发探索热情。(3)通过项目2知识的梳理归纳,培养系统化学习的意识和能力。四、教学重点1.六种位运算符的运算规则。2.位运算复合赋值运算符的使用。3.项目2数据类型、运算符与表达式知识的综合运用。五、教学难点1.按位取反与按位异或的运算结果(含负数在计算机中的补码表示)。2.左移、右移与乘除2的幂次之间的关系。3.在具体任务中灵活选用位运算实现特定位操作。六、教学方法与手段教学方法:类比教学法、讲授法、演示法、对比法、练习法。教学手段:多媒体电子课件(约53页)、VisualC++2010现场演示与上机验证、随堂练习与小组讨论。七、教学准备教师:更新后的多媒体课件、VisualC++2010环境、位运算演示源程序、二进制与十进制转换对照表、综合练习与评价量表。学生:复习教材项目2中2.3、2.4的内容,预习位运算部分,携带上机记录本。八、教学过程(共90分钟)(一)组织教学与复习导入(5分钟)1.师生问好、考勤,检查机房设备与VisualC++2010环境是否正常。2.复习提问:复合赋值运算符有哪几种?两个整数相除的结果是什么类型?3.导入:房间的灯可以用一个开关的开与关来表示两种状态,计算机中的每一位也只有0和1两种状态。本课学习直接对“位”进行运算的位运算符。(二)任务导入,明确目标(8分钟)1.给出任务:一个系统中用一个字节记录8个传感器的状态,0表示正常、1表示报警,如何快速地判断某一个传感器是否报警?2.教师现场演示:把一个数的第3位取出、把第5位置1、把第7位清0,请学生观察运算前后的二进制变化。3.交代本课学习目标:六种位运算符→位运算复合赋值→常用位操作方法→项目2综合应用。(三)新课讲授与任务实施(55分钟)1.位运算的基本概念(5分钟)(1)说明位运算是对整型数据按二进制位进行的运算,参与运算的数据必须是整型或字符型。(2)复习二进制与十进制的转换方法,以8位二进制为例进行演示。2.六种位运算符(30分钟)(1)按位与(&):两位同时为1时结果为1,否则为0。常用于“取出某几位”和“清零某几位”。示例:12&10的运算过程。(2)按位或(|):两位中只要有一位为1结果即为1。常用于把某些位置1。示例:12|10的运算过程。(3)按位异或(^):两位相同时结果为0,不同时为1。常用于使特定位翻转。示例:12^10的运算过程。(4)按位取反(~):把每一个二进制位取反,包括符号位,运算结果与补码表示有关,需结合实例说明。(5)左移(<<):左移1位相当于乘以2,右端补0;常用来快速完成乘2的幂运算。(6)右移(>>):右移1位相当于除以2取整;对无符号数左端补0,对有符号数按符号位补充。(7)小结并对比:位运算符与逻辑运算符的区别(&与&&、|与||),提示学生注意区分。3.位运算复合赋值运算符(8分钟)(1)介绍<<=、>>=、&=、^=、|=五种复合位运算符及其等价展开形式,如a<<=2等价于a=a<<2。(2)当堂练习:写出下列表达式的值:a=5,a&=3;b=5,b|=3;c=5,c^=3;d=1,d<<=4。4.常用位操作方法(7分钟)(1)取某几位:与上相应的掩码,如取低4位用number&0x0F。(2)置1:或上相应的掩码,如把第3位置1用number|0x04。(3)清0:与上掩码的取反,如把第3位清0用number&~0x04。(4)翻转:异或上相应的掩码,如翻转第3位用number^0x04。5.项目2综合应用(5分钟)(1)以“录入学生两门课成绩、计算总分与平均分并按要求格式化输出”为例,串联数据类型、运算符、表达式与类型转换知识。(2)提醒易错点:平均分计算中的整除问题、格式字符与数据类型的匹配问题。(四)课程思政(5分钟)1.以“灯控开关、状态标志”作比,说明“一位之分、功能迥异”,引导学生体会细节决定成败。2.结合我国在集成电路、操作系统等底层技术领域自主攻关的历程,说明位运算等基础知识是核心技术的基石,激励学生夯实基础、志存高远。3.通过二进制“0与1”的简洁之美,激发学生对计算机科学的兴趣与探索欲望。(五)课堂小结(7分钟)1.位运算是对二进制位进行的运算,共六种:&、|、^、~、<<、>>。2.左移1位相当于乘2,右移1位相当于除以2取整;复合位运算符可简化书写。3.常用位操作方法:与运算取位、或运算置1、与取反清0、异或翻转。4.项目2的知识主线:数据类型→常量与变量→运算符与表达式→类型转换。(六)作业布置(10分钟)1.必做题:教材项目2习题一选择题、习题二填空题中与位运算有关的题目。2.程序设计题:教材项目2习题三相应题目(实现两个数的位运算并输出结果;编写程序完成成绩的输入、计算与输出)。3.上机题:在VisualC++2010中验证本课各示例的位运算结果,记录二进制与十进制的对应关系。4.复习与预习:整理项目2知识结构图;预习教材项目3“输入学生成绩转化为等级”。九、授课后记(课后填写:教学目标达成情况、学生在位运算中的常见错误、存在的问题与改进措施。)《C语言程序设计案例教程》教案项目3输入学生成绩转化为等级(第一课)课题项目3输入学生成绩转化为等级课型新授课(理论讲授+上机实践)课时2学时(90分钟)周次第三周课次第二课授课时间年月日授课班级授课地点多媒体机房(或多媒体教室)授课教师一、教材与内容分析本课是项目3“输入学生成绩转化为等级”的第1次课,主要学习算法及其描述与顺序结构程序设计。教材在项目3开头以“输入学生成绩,判断其合法性并将其转化为等级”这一任务为驱动,把三种控制结构串成一条主线;本课先讲清算法的概念与描述方法,再进入3.1“顺序结构引例”、3.2“顺序结构”,为后续选择结构、循环结构的学习打好基础。顺序结构是最简单、最基本的结构,程序自上而下依次执行,是理解其他两种结构的前提。本课知识点包括:算法的概念、特征与常用表示方法(自然语言、流程图、N-S图、伪代码),顺序结构的含义与执行流程,以及【例3.1】一个简单的顺序结构C程序、【例3.2】由键盘输入半径求圆的直径和周长、【例3.3】鸡兔同笼问题三道例题。通过例题,学生要学会用“输入—计算—输出”的顺序结构解决实际问题,并初步养成先画流程图、再写代码的习惯。二、学情分析1.学生已能在VisualC++2010中编写、编译、运行简单的C程序,掌握了数据类型、运算符、输入输出函数等基本知识。2.学生对“算法”比较陌生,习惯拿到题目就直接写代码,缺少先分析、先画流程图的意识。3.流程图与N-S图的图形符号较多,学生容易把判断框、处理框混用,图形的规范性有待加强。4.对策:先用“炒菜先洗菜、再切菜、最后下锅”等生活类比讲清顺序思想;把流程图符号做成卡片反复认读;要求每道例题先画流程图、再写代码、最后上机验证,逐步养成先设计后编码的习惯。三、教学目标1.知识目标(1)理解算法的概念与特征,了解自然语言、流程图、N-S图、伪代码等常用描述方法。(2)理解顺序结构的含义,掌握顺序结构的执行流程,能读懂常见的流程图与N-S图。(3)掌握顺序结构程序的书写方法,理解“输入—计算—输出”三部曲的编程思路。2.能力目标(1)能针对简单问题用流程图或N-S图描述算法,并据此编写顺序结构程序。(2)能利用顺序结构完成圆的直径与周长、鸡兔同笼等实际问题的求解程序。(3)能在VisualC++2010中正确编译、运行并调试顺序结构程序,能分析常见的运行错误。3.素质目标(1)在“先分析、后编码”的过程中培养严谨细致、按部就班的做事习惯。(2)通过把生活问题抽象为算法与程序,体会计算思维的价值,激发学习兴趣。(3)在反复调试中培养耐心与坚持,树立精益求精的工匠精神。四、教学重点1.算法的概念、特征与常用表示方法。2.顺序结构的含义、执行流程及“输入—计算—输出”的编程思路。3.用顺序结构解决圆的直径与周长、鸡兔同笼等实际问题。五、教学难点1.用流程图、N-S图规范地描述算法,正确区分处理框与判断框。2.把“交换两个变量”“鸡兔同笼”等问题的求解思路转化为顺序结构的语句。3.按照先定义、后输入、再计算、最后输出的次序组织语句,避免次序颠倒导致结果错误。六、教学方法与手段教学方法:类比教学法、任务驱动法、讲授法、演示法、练习法。教学手段:多媒体电子课件(约53页)、VisualC++2010现场演示与上机验证、流程图符号卡片、随堂练习与小组讨论。七、教学准备教师:更新后的多媒体课件、VisualC++2010环境、算法描述与顺序结构演示源程序、流程图与N-S图对照挂图、随堂练习与评价量表。学生:复习教材项目2中的数据类型、运算符与输入输出函数,预习项目3的3.1、3.2,携带上机记录本。八、教学过程(共90分钟)(一)组织教学与情境导入(5分钟)1.师生问好、考勤,检查机房设备与VisualC++2010环境是否正常。2.情境导入:提问“洗衣机洗衣服为什么要按步骤做”,引导学生说出做事的先后次序。3.引出:计算机做事也要按步骤、有次序,这个步骤就是算法,本课学习算法及其描述与顺序结构。(二)任务导入,明确目标(5分钟)1.给出任务:小王要帮张老师把输入的学生成绩转化为等级,程序该从哪一步写起?2.教师说明:任何程序都离不开顺序执行,先把顺序结构学扎实,才能学好后面的选择与循环。3.交代本课学习目标:算法及其描述→顺序结构→例3.1、例3.2、例3.3。(三)新课讲授与任务实施(60分钟)1.算法及其描述(12分钟)(1)算法是解决问题的步骤和方法,是程序设计的“施工图”;举例说明同一问题可以有多种算法。(2)算法应具备有穷性、确定性、可行性、输入和输出五个特征,结合“求圆的周长”逐条对照讲解。(3)常用描述方法:自然语言、流程图、N-S图、伪代码;比较各种方法的优缺点。(4)流程图符号:圆角矩形表示起止、矩形表示处理、平行四边形表示输入输出、菱形表示判断、箭头表示流向。(5)以“输入半径R,计算d=2R、c=2×3.14159×R,输出d、c”为例,画出顺序结构的流程图。(6)N-S图用矩形框嵌套表示结构,不使用箭头,同样适合表示顺序、选择、循环三种结构。2.3.1顺序结构引例与例3.1(12分钟)(1)引例:a=3、b=5,如何交换两数的值?好比交换两个杯子中的水,需要借助第三个空杯子。(2)正确写法:c=a;a=b;b=c;结果为a=5、b=3;若写成a=b;c=a;b=c;,则三数同为5,达不到目的。(3)【例3.1】一个简单的顺序结构C程序,程序自上而下依次执行两条输出语句。#include<stdio.h>intmain(){printf("好好学习,\n");printf("天天向上。\n");return0;}(4)用单步执行观察流程:先输出“好好学习,”,再输出“天天向上。”,整个执行过程可用流程图表示,这就是顺序的执行过程。3.3.2顺序结构(8分钟)(1)顺序结构的程序设计最简单,只要按解决问题的次序写出相应语句,执行顺序自上而下、依次执行。(2)顺序结构可独立构成一个完整程序,常见的“输入—计算—输出”三部曲程序就是顺序结构。(3)顺序结构也常作为程序的一部分,与选择、循环结构一起构成复杂程序,如复合语句、循环体。4.例3.2由键盘输入半径求圆的直径与周长(14分钟)(1)分析:先定义半径R及所用变量,再输入半径,然后计算直径d=2R、周长c=2×3.14159×R,最后输出。(2)注意:半径R定义为整型,周长c因含小数定义为实型;变量的定义与使用次序不能颠倒。#include<stdio.h>intmain(){intR,d;floatc;printf("请输入圆的半径:");scanf("%d",&R);d=2*R;c=2*3.14159*R;printf("d=%d,c=%f\n",d,c);return0;}(3)运行:输入3,输出d=6,c=18.849540;提醒学生观察整型与实型输出格式的差别。5.例3.3鸡兔同笼(14分钟)(1)问题:已知鸡兔总头数H、总脚数F,求鸡x只、兔y只。(2)分析:由x+y=H、2x+4y=F解得x=(4×H−F)/2、y=(F−2×H)/2,属“输入—计算—输出”顺序结构。#include<stdio.h>intmain(){intH,F,x,y;printf("请输入鸡兔的总头数H,总脚数F:");scanf("%d,%d",&H,&F);x=(4*H-F)/2;y=(F-2*H)/2;printf("笼中有鸡%d只,有兔%d只。\n",x,y);return0;}(3)运行:输入10,30,输出“笼中有鸡5只,有兔5只。”;要求学生先画流程图再写代码,教师巡视指导上机。(四)课程思政(5分钟)1.以“做事要讲次序、成事要守规矩”作比,说明顺序结构的价值,引导学生养成按步骤办事的习惯。2.结合“先分析、后编码”的过程,说明基础扎实才能行稳致远,鼓励学生夯实基本功。3.通过把生活问题变成算法的过程,激发学生用计算思维解决问题的兴趣。(五)课堂小结(7分钟)1.算法是解决问题的步骤;流程图与N-S图是描述算法的常用工具。2.顺序结构的语句自上而下依次执行,是“输入—计算—输出”的常见形式。3.例3.1、例3.2、例3.3都用顺序结构完成,关键是理清次序、选对数据类型。4.本课知识主线:算法及其描述→3.1顺序结构引例→3.2顺序结构。(六)作业布置(8分钟)1.必做题:教材项目3习题中与顺序结构、流程图有关的题目。2.程序设计题:由键盘输入长和宽,计算并输出矩形的周长和面积。3.上机题:在VisualC++2010中录入并运行例3.1、例3.2、例3.3,记录运行结果与出错情况。4.复习与预习:整理顺序结构的流程图;预习教材项目3的3.3、3.4选择结构。九、授课后记(课后填写:教学目标达成情况、学生在流程图与顺序结构中的常见错误、存在的问题与改进措施。)《C语言程序设计案例教程》教案项目3输入学生成绩转化为等级(第二课)课题项目3输入学生成绩转化为等级课型新授课(理论讲授+上机实践)课时2学时(90分钟)周次第四周课次第一课授课时间年月日授课班级授课地点多媒体机房(或多媒体教室)授课教师一、教材与内容分析本课是项目3“输入学生成绩转化为等级”的第2次课,主要学习选择结构程序设计。教材在3.3“选择结构引例”中用分段计算电费的问题引出分支,在3.4“选择结构”中系统介绍单分支(if语句)、双分支(if…else语句)、多分支(elseif语句、if语句嵌套、switch语句)三种结构。选择结构是继顺序结构之后的第二种基本结构,也是把学生成绩转化为等级这一任务的核心。本课知识点包括:关系运算与逻辑运算、if语句的三种形式、if语句的嵌套与else的配对规则、switch语句与break语句。通过【例3.4】分段计算电费、【例3.5】求绝对值、【例3.6】输出较大的数、【例3.7】体型判断、【例3.8】求三个数中的最大者、【例3.9】分段函数求值、【例3.10】自动售货机等多道例题,引导学生按分支数量灵活选用语句,并能编写成绩等级判断程序。二、学情分析1.学生已掌握顺序结构,能按次序编写语句,但对“根据条件选择执行”还缺少体会。2.关系运算符“==”与赋值号“=”容易混用,逻辑运算符的短路求值规则理解不清。3.对分支的类别判断不准,常把双分支写成两个单分支,switch语句中漏写break而出现“贯穿”。4.对策:用“下雨带伞”等生活例子区分各种分支;用表格对比if的三种形式与switch;安排当堂上机,通过调试感受break缺失的后果。三、教学目标1.知识目标(1)理解关系运算符与逻辑运算符的功能,掌握其运算结果与短路求值规则。(2)掌握if语句的三种形式(简单if、if…else、elseif)及switch语句的一般格式与执行流程。(3)理解if语句的嵌套,掌握else与if的配对规则。2.能力目标(1)能根据实际问题的分支数量,正确选用单分支、双分支或多分支选择结构。(2)能用if语句和switch语句编写程序,解决求绝对值、比较大数、分段判断、菜单选择等问题。(3)能读懂并绘制选择结构的流程图,能在VisualC++2010中调试含分支的程序。3.素质目标(1)在条件判断的严谨推演中培养缜密、审慎的思维品质。(2)通过完成“把成绩转化为等级”的任务,体会用程序服务他人的价值。(3)通过规范的书写与缩进,养成遵守规则、讲究秩序的职业素养。四、教学重点1.关系运算符与逻辑运算符及其表达式。2.if语句的三种形式与switch语句的格式与执行流程。3.根据分支数量选择合适的选择结构解决实际问题。五、教学难点1.多重条件表达式的书写与运算符优先级、短路求值规则。2.if语句嵌套中else与if的配对,以及复合语句中花括号的使用。3.switch语句中break的作用与缺失时“贯穿执行”的分析。六、教学方法与手段教学方法:类比教学法、讲授法、演示法、对比法、案例教学法。教学手段:多媒体电子课件(约53页)、VisualC++2010现场演示与上机验证、if与switch语句对照表。七、教学准备教师:更新后的多媒体课件、VisualC++2010环境、选择结构演示源程序、if与switch对照表。学生:复习教材项目3的3.1、3.2及关系运算与逻辑运算,预习3.3、3.4,携带上机记录本。八、教学过程(共90分钟)(一)组织教学与情境导入(5分钟)1.师生问好、考勤,检查机房设备与VisualC++2010环境是否正常。2.复习提问:顺序结构的执行特点是什么?关系运算的结果有哪两个值?3.情境导入:生活中“如果下雨就带伞,否则不带伞”,程序也要会“做判断”,本课学习选择结构。(二)任务导入,明确目标(5分钟)1.给出任务:输入一个学生成绩,如何按规则输出它对应的等级?2.教师演示:先用单分支、双分支、多分支的做法各写一段,比较哪种写法最合适。3.交代本课学习目标:关系与逻辑运算→if的三种形式→if嵌套→switch→成绩等级程序。(三)新课讲授与任务实施(60分钟)1.关系运算与逻辑运算(8分钟)(1)关系运算符>、<、>=、<=、==、!=,结果为1(真)或0(假);提醒“==”不是“=”。(2)逻辑运算符&&、||、!,说明非0为真、0为假,以及逻辑表达式的短路求值特点。(3)举例:判断成绩是否合法可用“yuwen<0||yuwen>100”,为真时提示重新输入。2.3.3选择结构引例与例3.4(8分钟)(1)引例:为提倡节约用电,电费按用电量分段收取,属于典型的多分支选择。(2)【例3.4】分段计算电费:x=0时免费,0<x≤15时按0.5元/度,x>15时超过部分按0.8元/度。(3)用流程图表示:判断框分别判断x是否为0、是否不超过15,据此走向不同分支。(4)选择结构按分支数分为单分支、双分支、多分支,由if、if…else、switch等语句实现。3.3.4.1单分支选择结构(例3.5)(8分钟)(1)格式:if(表达式)语句;小括号不能省略且其后无分号;表达式可为关系、逻辑或数值表达式。(2)语句可为单语句或复合语句;复合语句用花括号括起来,花括号外不再加分号。(3)【例3.5】求一个整数的绝对值:只有负数才需要改号,其余无动作,故选用单分支。#include<stdio.h>intmain(){intshu;printf("请输入一个整数:\n");scanf("%d",&shu);if(shu<0)shu=-shu;printf("该数的绝对值为:%d。\n",shu);return0;}4.3.4.2双分支选择结构(例3.6)(8分钟)(1)格式:if(表达式)语句1;else语句2;,else后没有小括号,其条件相当于与if条件相反的所有条件。(2)语句1、语句2可为单语句或复合语句;多条语句组成时须加花括号;else不能单独使用,必须与if配对。(3)【例3.6】输入任意两个不相等的数,输出较大的数,属于“非此即彼”的双分支结构。#include<stdio.h>intmain(){intx,y;printf("请输入两个整数:");scanf("%d%d",&x,&y);if(x>y)printf("x=%d较大\n",x);elseprintf("y=%d较大\n",y);return0;}5.多分支选择结构:elseif与if嵌套(例3.7、例3.8)(14分钟)(1)elseif格式:if(表达式1)语句1;elseif(表达式2)语句2;…else语句n;,判断自上而下依次进行,遇第一个成立的条件即执行,其后分支全部跳过。(2)【例3.7】体型判断:按t=w/h²计算体指数,t<18偏低、18≤t<25正常、25≤t<27偏重、t≥27肥胖。if(t<18)printf("请注意身体,您的体重偏低");elseif(t<25)printf("恭喜您,您的体重正常");elseif(t<27)printf("抱歉,您有些偏重");elseprintf("很抱歉,您处于肥胖状态");(3)要点:区间判断必须从边界小到大逐级进行,否则会被前一个条件提前截获。(4)if的嵌套:在if中又包含一个或多个if;else总与上方最近尚未配对的if配对,要用缩进体现层次,必要时加花括号。(5)【例3.8】输入任意三个整数,找出最大者:先比较a、b,再把较大者与c比较。if(a>=b)if(a>=c)max=a;elsemax=c;elseif(b>=c)max=b;elsemax=c;6.多分支选择结构:switch语句与break(例3.9、例3.10)(14分钟)(1)格式:switch(表达式){case常量1:语句组1;[break;]…default:语句组n;}。(2)表达式须为整型或字符型;各case常量值不能相同;default习惯放最后;case中break按需选用。(3)两种结束方式:遇break跳出结束;没有break时继续执行直到遇到“}”结束。(4)【例3.9】计算分段函数y的值:取x的整数部分m,用switch按m对应各段分别计算y。(5)【例3.10】自动售货机:输入编号1~4显示对应商品的价格,输入0退出,输入其他编号价格显示为0。switch(choice){case1:price=3.0;break;case2:price=2.5;break;case3:price=4.0;break;case4:price=3.5;break;default:price=0;break;}(6)组织上机:把上例改写为“输入成绩,用elseif输出等级A~E”,教师巡视指导。(四)课程思政(5分钟)1.以“规矩是处理一切事情的基础”作比,引导学生遵守规则、讲究规范。2.结合脱贫攻坚的精准施策、乡村振兴的分步推进,说明依据实情选择最优路径的道理。3.通过嵌套判断的严谨、switch分支的规范,培养“一步一考量”的做事态度。(五)课堂小结(7分钟)1.关系运算的结果为1或0,逻辑运算&&、||、!具有短路求值的特点。2.if语句有简单if、if…else、elseif三种形式,可以嵌套,else总与最近尚未配对的if配对。3.switch语句适合按离散值分派,break保证只执行匹配到的分支,可防止“贯穿”。4.选择结构的选用:单分支用if,双分支用if…else,多分支用elseif或switch。(六)作业布置(8分钟)1.必做题:教材项目3习题中与if语句、switch语句有关的题目。2.程序设计题:输入一个百分制成绩,输出相应等级(A~E);用switch实现简单四则运算计算器。3.上机题:在VisualC++2010中录入并运行例3.5至例3.10,观察break缺失时的运行结果。4.复习与预习:整理三种选择结构的语法格式;预习教材项目3的3.5、3.6循环结构。九、授课后记(课后填写:教学目标达成情况、学生在if嵌套与switch中的常见错误、存在的问题与改进措施。)《C语言程序设计案例教程》教案项目3输入学生成绩转化为等级(第三课)课题项目3输入学生成绩转化为等级课型新授课(理论讲授+上机实践)课时2学时(90分钟)周次第四周课次第二课授课时间年月日授课班级授课地点多媒体机房(或多媒体教室)授课教师一、教材与内容分析本课是项目3“输入学生成绩转化为等级”的第3次课,主要学习循环结构程序设计。教材在3.5“循环结构引例”中用求1+2+…+100的问题引出循环,在3.6“循环结构”中系统介绍while语句、do…while语句、for语句三种循环语句,以及循环的嵌套和break、continue跳转语句。循环结构是三种基本结构中的最后一种,能避免重复书写相同语句、大幅提高编程效率,应用十分广泛。本课知识点包括:循环结构的概念与两个要素(循环条件、循环体)、while语句、do…while语句、for语句及其相互转换、循环的嵌套、break与continue语句。通过【例3.11】引例求1+2+…+100、【例3.12】while实现、【例3.13】do…while实现、【例3.14】while与do…while对比、【例3.15】for实现、【例3.16】九九乘法表、【例3.17】圆的面积、【例3.18】求正数个数及平均值等例题,引导学生掌握循环程序的设计方法。二、学情分析1.学生已掌握顺序结构与选择结构,能正确书写条件与分支,具备学习循环的基础。2.学生对循环变量的作用理解不深,容易忘记在循环体内改变循环变量而写出死循环。3.do…while与while的执行次序容易混淆,循环嵌套的层次关系不易理清。4.对策:用“重复抄写100遍”说明循环的价值;用流程图对比两种循环的判断时机;强调“初值、条件、增量、循环体”四要素,并通过上机调试观察死循环。三、教学目标1.知识目标(1)理解循环结构的概念,掌握循环条件与循环体两个要素。(2)掌握while、do…while、for三种循环语句的格式、执行流程与相互转换关系。(3)理解循环的嵌套,掌握break与continue语句的作用与区别。2.能力目标(1)能根据循环次数是否已知,正确选用while、do…while或for语句编写循环程序。(2)能用循环结构完成累加求和、九九乘法表、按条件统计等问题的程序求解。(3)能分析并排除死循环、循环体范围不清等常见错误,能绘制循环的流程图。3.素质目标(1)在发现和排除死循环的过程中培养耐心调试、锲而不舍的品质。(2)通过循环“反复执行、久久为功”的特点,体会坚持与积累的意义。(3)通过规范的循环结构书写,养成条理清晰、注重效率的工作习惯。四、教学重点1.while、do…while、for三种循环语句的格式与执行流程。2.循环变量初值、循环条件、循环变量改变、循环体四要素的设置。3.用循环结构解决累加求和、九九乘法表等实际问题。五、教学难点1.while与do…while的判断时机不同导致执行次数的差异。2.循环体加花括号的问题及死循环的成因与排查。3.循环嵌套时内外层变量的变化规律与break、continue的作用范围。六、教学方法与手段教学方法:类比教学法、任务驱动法、讲授法、演示法、对比法、练习法。教学手段:多媒体电子课件(约53页)、VisualC++2010单步跟踪演示、三种循环语句对照表。七、教学准备教师:更新后的多媒体课件、VisualC++2010环境、三种循环演示源程序、循环执行跟踪记录表。学生:复习教材项目3的3.3、3.4选择结构,预习3.5、3.6循环结构,携带上机记录本。八、教学过程(共90分钟)(一)组织教学与情境导入(5分钟)1.师生问好、考勤,检查机房设备与VisualC++2010环境是否正常。2.复习提问:if…else与elseif有什么不同?switch语句中break起什么作用?3.情境导入:若要求输出1到100,写100条语句显然不现实,有没有更聪明的办法?本课学习循环。(二)任务导入,明确目标(5分钟)1.给出任务:要让程序对一批学生的成绩逐个转化等级,如何避免把同样的语句重复写很多遍?2.教师说明:把“重复做同样的事”交给循环,程序就会又短又快。3.交代本课学习目标:循环引例→while→do…while→for→循环嵌套→break与continue。(三)新课讲授与任务实施(60分钟)1.3.5循环结构引例
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中生物2026教资面试答辩试卷及解析
- 小学数学2026教资面试试讲经典考题试卷及答案
- 初中英语2026教资面试结构化问答全真模拟题库及答案
- 八年级科学生态系统素养提升教案
- 房产技能大赛课件
- 中国家电市场2026年8月市场概览
- 6-Methyl-8-prenylnaringenin-生命科学试剂-MCE
- 2026-2027学年初中心理健康七年级下册北京版第二节 友谊魅力星课时同步卷
- 第1课 学习伴我成长 第1课时 教学设计 2026-2027学年道德与法治三年级上册统编版
- 核心素养背景下初中化学实验教学研究
- T∕CCEAS008-2026 建设工程造价咨询成果文件质量标准
- T/CCMA 0164-2023工程机械电气线路布局规范
- 水利安全风险防控“六项机制”与安全生产培训
- QGDW12505-2025电化学储能电站安全风险评估规范
- 亚通电子新材料(湖州)有限公司先进连接材料智能制造产业化基地及技术创新中心建设项目报告
- 航空服务礼仪与沟通技巧题库
- (一模)贵阳市2025年高三年级适应性考试(一)物理试卷(含答案)
- 《健康档案管理》课件
- 顶管工程施工顶进力估算、后背墙设计计算
- DL-T626-2015劣化悬式绝缘子检测规程
- 华住会酒店员工手册
评论
0/150
提交评论