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

付费下载

下载本文档

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

文档简介

《C语言程序设计》课程标准【课程名称】C语言程序设计【课程编码】【课程类别】专业基础课【适用专业】计算机相关专业【授课单位】【总学时】36【编写执笔人】【编写日期】一、课程定位和课程设计1.1课程性质与作用C语言是目前世界上应用得较广泛的程序设计语言之一,它具有功能强大、使用灵活、可移植性好等特点,同时兼备高级语言和低级语言的优点,因此被广泛应用于系统软件和应用软件的开发中。《C语言程序设计》课程是计算机应用技术、软件技术、计算机网络技术、电子应用技术等计算机相关专业的必修基础课程,也是一门实践性很强的课程。通过本课程的学习,可以为后续学习Java程序设计、Python程序设计、数据库技术等程序设计语言打好基础。本课程打破传统学科课程模式,转变为以任务或项目为中心组织课程教学内容,通过讲练结合,使学生全面掌握C语言的基本理论、基本编程方法、基本内容和主要应用领域。同时,课程以程序设计思想为主线,介绍了C语言的基本概念和程序设计的思想和方法,旨在使学生掌握程序设计的基本方法及思维,形成程序设计基本思想,掌握程序调试的基本方法,使学生初步具备程序设计能力,为学生进一步学习其他程序设计课程和今后从事软件开发工作打下坚实的基础。1.2课程设计思路本课程是学生第一次接触到计算机的程序设计语言,因此在教学方法上宜采用课堂讲授、上机实践相结合的方式,以能力培养为出发点,以具备程序设计能力为教学目标。本课程采用任务为驱动的项目教学方式,将每个项目分为多个任务,以单个任务为单位组织教学,并将内容分为课前、课中和课后三个模块,引导学生自主学习。每个任务在讲解相关知识的基础上,设置了任务描述、任务准备和任务实施三个部分。课前,学生通过任务描述了解本任务的主要内容,并通过查找资料和预习教材中的相关知识完成任务准备中的引导问题;课中,学生首先学习本任务涉及的理论知识,并在老师带领下完成任务实施中的任务;课后,学生首先通过完成“项目实训”练习所学编程技能,然后通过“项目总结”提炼和总结本项目所学的知识和技能,再通过“项目考核”进一步巩固所学知识,最后通过“项目评价”评价学生整个项目的学习情况。本课程实践性很强,在实践教学中以培养学生的独立思考能力与动手能力为主导原则,由教师布置实践内容和要求并展示项目的参考作品,然后由学生独立上机编写并调试程序,解决实际问题,在学生实践过程中教师给予必要的辅导。此外,要求学生通过上机训练巩固、验证、扩充或综合运用课堂进授内容,从而进一步加深对知识的理解与掌握,培养构思解决问题的思路和良好的编程能力。在学习方法上要求学生要“弄清概念、注重实践、由浅入深、循序渐进”。二、课程目标2.1知识目标(1)了解C程序的开发步骤,算法的概念、特点及其描述方法;(2)熟悉C程序的开发环境,C程序的结构及格式特点,C语句的概念与类型;(3)掌握标识符和关键字的概念,常量和变量的使用方法,基本的数据类型,运算符和表达式的基本使用方法,格式输入/输出函数和字符输入/输出函数的使用方法;(4)掌握使用关系运算符、逻辑运算符和条件运算符进行运算的方法,以及if语句和switch语句的使用方法;(5)掌握while、do-while和for循环语句的使用方法,循环嵌套的执行过程及用法,break语句和continue语句的使用方法;(6)了解变量的存储类别,理解函数的概念;(7)掌握函数的定义和调用方法,函数的嵌套调用和递归调用方法,局部变量和全局变量的区别和典型用法;(8)理解数组的相关概念,掌握一维数组的定义、引用和初始化方法,掌握二维数组的定义、引用和初始化方法;(9)掌握字符数组的定义、引用和初始化方法,字符串处理函数的使用方法,数组作为函数参数的使用方法;(10)理解指针的相关概念,掌握指针变量的定义、初始化和引用方法,掌握空指针和void指针的使用方法;(11)掌握指针在数组和字符串中的使用方法,以及指针在函数中的使用方法;(12)掌握定义、初始化和引用结构体变量、结构体数组和结构体指针的方法;(13)掌握打开和关闭文件的方法,读/写文件的基本操作方法;(14)理解文件及文件类型指针的概念,记忆文件操作的顺序。2.2能力目标(1)能在VisualC++2010中创建、运行C程序;(2)能根据编译器给出的常见错误信息,分析并修改程序;(3)能查找并改正标识符、数据类型和常见表达式的语法错误;(4)能利用输入/输出函数进行简单的程序设计;(5)能读懂较为复杂的选择结构程序,根据实际问题选择合适的分支语句编写程序;(6)能读懂较复杂的循环结构程序,根据实际问题选择合适的循环语句编写程序;(7)能利用函数编写程序,逐步建立模块化的程序设计思想;(8)能够使用数组编写程序,使用数组处理相同类型的数据;(9)能利用指针编写程序;(10)能够使用结构体变量编写程序;(11)能够编写顺序、随机读/写文件的程序。2.3素质目标(1)养成脚踏实地、开拓进取的工作作风,提升自己的职业素养和职业技能;(2)发扬服务集体、团结协作的团队精神;(3)增强遵守规则的意识,养成按规矩行事的习惯;(4)树立软件开发团队合作意识;(5)提升总结规律和将事物化繁为简的能力;(6)发扬精益求精的工匠精神,养成严谨认真的工作态度;(7)增强创新意识。三、课程内容与教学要求本课程共分为8个项目,主要内容包括:C语言概述、顺序结构程序设计、选择结构程序设计、循环结构程序没计、函数的使用、数组的使用、指针的使用、结构体的使用与文件操作,共36学时。具体安排如下表所示.所用教材课程内容教学建议与说明学时分配《C语言程序设计》项目一C语言概述任务一熟悉C程序开发环境问答法、讨论法、讲授法、项目式教学法24任务二编写第一个C程序问答法、讨论法、讲授法、项目式教学法2项目二顺序结构程序设计任务一计算三角形的面积问答法、讨论法、讲授法、项目式教学法24任务二简单模拟ATM机取款操作问答法、讨论法、讲授法、项目式教学法2项目三选择结构程序设计任务一制作简易评教系统问答法、讨论法、讲授法、项目式教学法24任务二输出车辆限行提示问答法、讨论法、讲授法、项目式教学法2项目四循环结构程序设计任务一计算等比数列之和问答法、讨论法、讲授法、项目式教学法24任务二打印九九乘法表问答法、讨论法、讲授法、项目式教学法2项目五函数的使用任务一计算圆的周长和面积问答法、讨论法、讲授法、项目式教学法24任务二输出100以内的素数问答法、讨论法、讲授法、项目式教学法2项目六数组的使用任务一使用冒泡法对数据进行排序问答法、讨论法、讲授法、项目式教学法26任务二判断是否为回文对联问答法、讨论法、讲授法、项目式教学法2任务三统计国内生产总值问答法、讨论法、讲授法、项目式教学法2项目七指针的使用任务一猜数字游戏问答法、讨论法、讲授法、项目式教学法26任务二字符串纠错问答法、讨论法、讲授法、项目式教学法2任务三多角度统计人口增长率问答法、讨论法、讲授法、项目式教学法2项目八结构体的使用与文件操作任务一统计某公司员工信息问答法、讨论法、讲授法、项目式教学法24任务二凯撒密码加密问答法、讨论法、讲授法、项目式教学法2合计36四、课程实施4.1教学条件(1)教师能力担任本课程的主讲教师需具有丰富的计算机软件系统编程经验,熟练掌握C语言的结构及编程规范,具备一定的网络应用能力,同时应具备较为丰富的教学经验。在教学组织能力方面,本课程的主讲教师应具备基本的操作应用能力,即根据本课程标准制定详细的授课计划,对每一堂课的教学过程精心设计,做出详细、具体的安排;还应该具备较强的施教能力,即掌握扎实的教学基本功并能够因材施教,在教学过程中还应具备一定的课堂控制能力和应变能力。(2)多媒体教室多媒体教学可以使授课方式变得方便、快捷,使一些抽象难懂的知识直观而形象,使课堂教学活动变得活泼生动有趣,同时节省了教师授课时的板书时间,提高了教学效率。(3)计算机实训室上机操作是学生对课堂理论学习内容的再深造,可以直接体现学生对所学知识掌握程度,对提高学生的动脑、动手和实践创新能力起着决定的作用。4.2教学方法建议在教学时,教师可根据实际情况选择合适的教学模式。教师可先行开展相关理论知识的教学,让学生积累足够的知识,再让学生进行任务实施,达到学以致用的教学目的。教师在讲授过程中,可以结合企业对C语言开发的实际要求,选用与实际应用紧密相关的案例,将重心落在职业需要和岗位的实际应用上,充分发挥学校和企业在人才培养方面各自的优势,帮助学生实现从校园到企业的平稳过渡。本课程可采用问答法、讨论法、讲授法、项目式教学法等多种方法,努力让学生掌握所学知识,并达到熟练运用,所有任务都能亲自动手完成。(1)问答法:将教材的知识点以问题的形式呈现在学生的面前,让学生在寻求、探索解决问题的思维活动中,掌握知识、发展智力、培养技能,进而培养学生自己发现问题解决问题的能力。(2)讨论法:通过预先设计与组织一些课堂讨论,启发学生就特定问题发表自己的见解,充分调动学生的主观能动性,培养学生的独立思考水平和创新精神。(3)讲授法:主要应用于学生学习基础理论知识的初级阶段,让学生学习基本理论和方法,增强学生的学习兴趣和意识。(4)项目式教学法:以任务需求来带动教学,每次课都有相应的任务和问题,让学生来完成,培养学生分析问题、解决问题和思考问题的习惯,增强学生实践操作能力。(5)迭代教学法:把重要的知识、思想、经验在课程中反复涉及到,但每次涉及到这些内容时又不是简单地重复,而是在回顾原有的内容的基础上做进一步地深入和升华,既强化了记忆和理解,又拓展了新的视野,深化了理解。4.3教学评价与考核要求课程的教学评价由形成性测评(40%)和终结性测评(60%)组成,其考核要求如下:4.3.1形成性测评形成性测评考核学生在学习本课程过程中的学习情况和实际应用能力的发展情况,包括违纪考核(20%)、知识掌握情况考核(30%)、工作任务完成情况考核(50%)等。(1)违纪考核本项考核通过课前点名、上课纪律考核学生的课堂出勤率。上课迟到扣5分,上课吃东西扣5分,上课玩手机扣5分,其他扰乱课堂秩序的行为扣5分。(2)知识掌握情况考核本项考核主要通过在课堂上对学生学习态度,课堂发言,课堂参与度,问题分析和解决能力,所学知识点,项目实施过程。每次考核划分为优秀(30分)、良好(25分)、中等(15分)、及格(10分)和不及格(5分)五个档次。最后考核成绩为学生每次任务成绩的平均数。(3)工作任务完成情况考核本项考核主要通过学生对任务的解读能力、软件使用的能力、排查错误的能力、任务完成情况等,来检测其知识掌握情况、自主学习能力、团队协作能力,动手操作能力。每次工作任务完成情况按照相应标准而定,划分为优秀(50分)、良好(40分)、中等(30分)、及格(15分)和不及格(5分)五个档次。最后考核成绩为学生每次任务成绩的平均数。4.3.2终结性测评终结性测评主要考核学生在学完本课程后所达到的水平,通过期末考试进行考核。期末考试由上机考核(60%)组成,主要评估学生对本门课程基本知识的掌握情况与综合运用能力。五、课程资源开发与利用5.1建议使用教材5.2网络资源

《C语言程序设计》

教案课时分配表章序课程内容课时备注1C语言概述42顺序结构程序设计43选择结构程序设计44循环结构程序设计45函数的使用46数组的使用67指针的使用68结构体的使用与文件操作4合计36

课题熟悉C程序开发环境课时2课时(90min)教学目标知识目标:(1)了解C程序的开发步骤(2)熟悉C程序的开发环境能力目标:能在VisualC++2010中创建、运行C程序素质目标:通过新的编程语言的学习,培养学生脚踏实地、开拓进取的工作作风教学重难点教学重点:C程序的开发步骤,C程序的开发环境教学难点:VisualC++2010开发环境的使用教学方法问答法、讨论法、讲授法、实践法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或其他学习软件,完成课前任务请同学们上网查找,现在有哪些主流的编程语言,及其主要应用领域。【学生】完成课前任务考勤【教师】使用APP进行签到【学生】班干部报请假人员及原因新课预热【教师】自我介绍,与学生简单互动,介绍课程内容、考核标准等【学生】聆听、互动【教师】讲解计算机编程语言在航空中的应用,增强学生学习兴趣2021年5月15日,我国第一颗火星卫星“天问一号”实现了首次地外行星着陆;2021年5月29日,我国又成功发射了“天舟二号”货运飞船,为天和核心舱进行物资输送和燃料补给。是什么样的“大脑”实现了如此精准着陆和对接呢?是计算机编程语言编写的程序与硬件系统的完美配合。计算机编程语言有很多,而C语言是目前世界上使用得较广泛的高级程序设计语言之一。它具有数据处理能力强、运行效率高的特点,故广泛应用于操作系统、嵌入式系统等底层应用的开发中。同时,它也是学习C#、C++、Java等面向对象程序设计语言的基础。【学生】聆听、记录、理解问题导入【教师】请同学们扫码观看“计算机语言的发展历程”视频(详见教材),讨论并回答以下问题:请同学们思考,按计算机语言的发展历程,可将计算机语言分为哪几类?传授新知【教师】讲解C程序的开发步骤,C程序的开发环境一、C程序的开发步骤✈【教师】多媒体播放“C程序的开发步骤”视频(详见教材),让学生了解C语言开发的整个流程C程序的开发从确定任务到得到结果一般要经历以下几个步骤。(一)需求分析需求分析就是对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,得到这个结果需要什么条件等。这个过程类似于考试中的审题过程,一定要领会题目的要求,否则解题过程再漂亮也无济于事。(二)算法设计算法设计就是设计出解决问题的方法和具体步骤。例如,要求解从1到100的累加和问题,首先要选择用什么方法求解(直接累加计算、用速算公式计算还是用等差数列的求和公式计算),然后把求解的每个步骤清晰地描述出来。【课堂问答】✈【教师】随机邀请学生回答以下问题请同学们思考,上述求解从1到100的累加和问题时,采用直接累加计算、用速算公式计算还是用等差数列的求和公式计算,哪种方式在数学运算上最为简便,是否算法实现上也最为简便?✈【学生】聆听、思考、回答✈【教师】总结学生的回答(三)编写程序编写程序就是把算法设计的结果变成一行行代码,输入程序编辑器中,然后将此程序(即源程序)以文件形式保存到指定的文件夹中。(四)编译程序编译程序就是利用编译器把输入的源程序翻译成机器语言,即编译器对源程序进行语法检查并将符合语法规则的源程序翻译成计算机能识别的语言。如果经编译器检查,发现有语法错误,则必须修改源程序中的语法错误,然后再编译,直至没有语法错误。此时会在源程序所在目录中自动生成一个目标文件。✈提示编译程序时显示的错误信息是寻找错误原因的重要信息来源,读者要学会看这些错误信息。每次碰到并且最终解决了错误时,要记录错误信息及相应的解决方法,以便日后能够熟练排查同类型的错误,从而提高程序调试效率。(五)连接程序经过编译得到的目标文件还不能供计算机直接执行,需要经过连接阶段,即与函数库进行连接,才能生成可执行文件。✈提示在连接过程中,一般不会出现连接错误,如果出现了连接错误,说明源程序中存在子程序调用混乱或参数传递错误等问题。此时需要对源程序进行修改,再进行编译和连接,如此反复进行,直至没有连接错误。(六)运行程序运行可执行文件,并查看和分析运行结果。能得到运行结果并不能说明程序是正确的,要对运行结果进行分析,分析其是否合理。分析时需要多设计几组数据,检查程序对不同数据的运行情况。只要发现一组运行结果与预期结果不同,就表明编写的源程序存在逻辑错误,此时就需要重新修改源程序直至没有逻辑错误。✈知识库查找逻辑错误时,如果程序不大,可以用人工方法模拟计算机对源程序的执行过程,分析出逻辑错误,并对错误进行修改处理;如果程序较大,人工模拟工程量太大或无法进行时,可通过逐语句执行程序,一步步跟踪程序的运行。一旦找到问题所在,修改源程序并重新编译、连接和运行,直至程序运行结果与预期结果完全一致。(七)编写程序说明书如同正式的产品都有产品说明书一样,正式提供给用户使用的程序,也必须向用户提供程序说明书。程序说明书也称“用户文档”,一般应包含程序名称、程序功能、运行环境、程序的载入和启动、需要输入的数据,以及使用注意事项等内容。【课堂讨论】✈【教师】请学生分组讨论以下问题请同学们以小组为单位,根据C程序的开发步骤,讨论上述的开发步骤中哪个步骤最为重要?原因是什么?✈【学生】讨论、总结、回答✈【教师】总结学生的回答二、C程序的开发环境✈【教师】介绍C程序的多个开发环境,讲解VisualC++2010的使用方法C程序的开发环境有很多。例如,Linux操作系统下的GCC,Windows操作系统下的TurboC2.0、TurboC++3.0、Dev-C++、C-Free、VisualC++6.0和VisualC++2010等。【课堂讨论】✈【教师】请学生分组讨论以下问题请同学们以小组为单位,讨论主流的C程序开发环境Dev-C++、VisualC++6.0和VisualC++2010,在下载、安装、软件大小、软件界面、使用便捷度、易用度等方面,其各自的优势是什么?✈【学生】讨论、总结、回答✈【教师】总结学生的回答VisualC++2010是集成在VisualStudio2010开发环境中的,该开发环境包括专业版、高级版、旗舰版和学习版四个不同的版本,其中学习版是免费的。开发人员可在MicrosoftDreamSpark上获得(必须有微软的DreamSpark),也可以通过邮箱方式验证学生身份来获得。✈提示VisualStudio2010是一个多语言集成开发环境,支持VisualC++、VisualBasic和C#等编程语言。对于学习C及C++程序设计的人来说,可以只安装VisualC++2010组件。下面来看一下VisualC++2010的主界面,以学习版为例。选择“开始”→“MicrosoftVisualStudio2010Express”→“MicrosoftVisualC++2010Express”菜单项,便可打开VisualC++2010,进入默认起始页,如图1-1所示。在起始页中可以新建或打开项目,也可以学习软件使用方法,或者浏览最新新闻。若想以后加载项目时关闭此页,可取消勾选“启动时显示此页”复选框。此后,若要访问起始页,可在“视图”菜单中选择“起始页”菜单项。三、任务实施✈【教师】多媒体播放“熟悉C程序开发环境”视频(详见教材),并进行讲解与演示,让学生了解VisualC++2010的具体使用方法(一)新建项目步骤1在VisualC++2010主窗口中选择“文件”→“新建”→“项目”菜单项。步骤2在打开的“新建项目”对话框中,选择“Win32控制台应用程序”选项,并在“名称”编辑框中输入项目的名称,单击“位置”右侧的“浏览”按钮,选择项目保存路径(也可在“位置”编辑框中输入路径),然后单击“确定”按钮。✈提示解决方案名称一般与项目名相同,如果要在一个方案中包含几个项目,则可使解决方案名称与项目名不同。勾选右侧的“为解决方案创建目录”复选框,便会在指定位置的目录下创建一个解决方案文件夹。步骤3打开“Win32应用程序向导”对话框,在欢迎界面中单击“下一步”按钮。步骤4打开“应用程序设置”界面,在“附加选项”组中勾选“空项目”复选框后,单击“完成”按钮。步骤5返回主窗口,新建项目完成。✈高手点拨主窗口的左侧为“解决方案资源管理器”窗格,若此窗格关闭,可选择“窗口”→“重置窗口布局”菜单项将其恢复。(二)新建源程序当创建好项目后,就可以新建源程序文件了。步骤1右击项目名称“1-1”,在打开的快捷菜单中选择“添加”→“新建项”菜单项。步骤2在打开的“添加新项”对话框中,选择“C++文件(.cpp)”选项,在“名称”编辑框中输入“1-1.c”,然后单击“添加(A)”按钮。【课堂问答】✈【教师】随机邀请学生回答以下问题请同学们思考,我们选择的是“C++文件(.cpp)”选项,而我们建立的是“.c”文件,是否可以直接建立“.cpp”文件?✈【学生】聆听、思考、回答✈【教师】总结学生的回答步骤3进入“1-1.c”编程界面,在源程序编写区域输入C程序代码。(三)编译和连接程序源程序编写完成后,选择“生成”→“生成解决方案(B)”菜单项,即可对程序进行编译,编译结果将显示在“输出”窗口。(四)运行程序当编译成功后,选择“调试”→“开始执行(不调试)(H)”菜单项,此时会弹出运行结果窗口显示程序运行结果。在该窗口下,可按任意键结束程序运行并关闭窗口。【课堂问答】✈【教师】随机邀请学生回答以下问题请同学们观察项目所在路径下的文件夹,我们新建项目、建立“.c”文件、编译程序、连接程序、运行程序的过程中,该文件夹下都生成了哪些文件及其后缀名?✈【学生】聆听、思考、回答✈【教师】总结学生的回答✈高手点拨初次安装VisualC++2010学习版后,在默认情况下,菜单可能是简化的。例如,“调试”菜单下没有“开始执行(不调试)(H)”等菜单项,此时可通过选择“工具(T)”→“设置(S)”→“专家设置”菜单项将菜单设置为专家模式。【学生】聆听、思考、理解、记录课堂实训【教师】介绍课堂实训要求,以及实训内容,要求学生按照实训要求完成实训任务请同学们按照任务实施中4个步骤:新建项目、新建源程序、编译和连接程序、运行程序,新建Win32控制台应用程序,建立名称为helloworld.c文件,编写源程序,编译和连接程序,遇到问题做相应的修改,最后运行程序,查看程序运行结果。【学生】按照要求进行操作,完成后总结自己哪些地方做得很好,还有哪些地方需要改进课堂小结【教师】简要总结本节课的要点本次课讲解了C程序的开发步骤,包括需求分析、算法设计、编写程序、编译程序、连接程序、运行程序、编写程序说明书。介绍了VisualC++2010的界面。详细讲解了使用VisualC++2010编写C程序的方法,包括新建项目、新建源程序、编译和连接程序、运行程序。最后通过课堂实训,让学生们对VisualC++2010编写C程序的方法加以练习,熟练掌握VisualC++2010的使用,达到学以致用的目的。【学生】总结回顾知识点作业布置【教师】布置课后作业请根据本课内容,完成课后习题中的相关习题。【学生】完成课后任务教学反思

课题编写第一个C程序课时2课时(90min)教学目标知识目标:(1)了解算法的概念、特点及其描述方法(2)熟悉C程序的结构及格式特点能力目标:能根据编译器给出的常见错误信息,分析并修改程序素质目标:学习新的编程语言,多与身边的同学进行交流,培养学生发扬服务集体、团结协作的团队精神教学重难点教学重点:算法及其描述方法,C程序的基本结构,C程序的格式特点,常见错误分析教学难点:修正编写程序中遇到的常见错误教学方法问答法、讨论法、讲授法、实践法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或其他学习软件,完成课前任务随着人工智能的发展和普及,现在流行着很多算法,请同学们上网查找,有哪些主流的算法,及其主要应用领域。【学生】完成课前任务考勤【教师】使用APP进行签到【学生】班干部报请假人员及原因问题导入【教师】请同学们扫码观看“C语言的特点与标准”视频(详见教材),讨论并回答以下问题:请同学们总结,C语言有哪些特点,C语言的标准有哪几个版本?传授新知【教师】讲解算法及其描述方法,C程序的基本结构、格式特点,常见错误分析一、算法及其描述方法✈【教师】介绍算法的概念、特点、描述方法1.算法算法是为解决某一问题而提出的准确而完整的方案,是解决问题的方法和步骤。在计算机领域,算法是对计算机中执行的运算过程的具体描述,包括数值运算算法和非数值运算算法。数值运算的目的是求数值解,如求三角形面积、方程求解等。非数值运算涉及面比较广,如人事信息管理、成绩管理、图书管理等。2.算法的特点一般来讲,一个有效的算法应具有以下五个特点。(1)有穷性。一个算法必须在执行有限个操作步骤后终止,且每一个步骤都须在有限的时间内完成。(2)确定性。算法中每步操作的含义都必须是明确的,即为要执行的每步操作做出清晰而严格的规定。(3)有效性,也称“可行性”。算法中的每步操作都应该能有效执行,一个不可执行的操作是无效的。(4)有零个或多个输入。这里的输入是指在算法开始之前所需要的初始数据。输入的多少取决于特定的问题。(5)有一个或多个输出。在一个完整的算法中至少会有一个输出。✈高手点拨算法与程序相似,但又有区别。一个程序不一定满足有穷性。例如,一方面,操作系统只要整个系统不遭破坏,它将永远不会停止,即使没有作业需要处理,它仍处于动态等待中;另一方面,程序中的指令必须是计算机可执行的,而算法中的指令则无此限制。算法代表了对问题的求解方法,而程序则是算法在计算机上的特定实现。3.算法的描述方法算法的描述有多种方法,常用的算法描述方法有自然语言、流程图、伪代码等,其中最为常用的是流程图。流程图用一些图框来表示各种操作,用流程线来表示算法的执行方向。用图形表示算法,直观形象,易于理解。(1)流程图符号。美国国家标准协会(Americannationalstandardsinstitute,ANSI)规定了一些常用的流程图符号,其名称及含义见表1-1所列(详见教材)。(2)基本结构。为了提高算法的质量,贝赫拉(Bohra)和贾可皮尼(Jacopini)在1966年提出了三种基本结构,即顺序结构、选择结构和循环结构。这三种结构之间可以并列,也可以相互包含,但不能交叉。✈【教师】展示“顺序结构”“选择结构”图片(详见教材),结合图片进行讲解①顺序结构是简单的线性结构,各操作按照它们出现的先后顺序执行。如顺序结构图片所示,在执行完A框中指定的操作后执行B框中指定的操作。②选择结构,也称“分支结构”。在选择结构中必包含一个判断框,根据判断条件P是否成立而选择执行A框或B框,如选择结构图片所示。✈高手点拨图1-17中,A框和B框中可以有一个是空的,表示不执行任何操作,但不能同时为空。【课堂练习】✈【教师】出示【例1-1】,组织学生答题请用流程图表示算法,输入某同学某门课程的成绩,判断该同学是否通过考试,并输出判断结果。✈【学生】聆听、思考、答题✈【教师】解析例题判断某同学是否通过考试,首先须输入该同学的成绩score,然后判断score是否大于或等于60,若成立,则表示通过,否则表示未通过。其流程图表示如图1-18所示(详见教材)。③循环结构又称“重复结构”,即反复执行某一部分的操作,直到条件不成立时终止循环。按照判定条件出现位置的不同,可将循环结构分为当型循环结构和直到型循环结构。✈【教师】展示“当型循环结构”“直到型循环结构”图片(详见教材),结合图片进行讲解当型循环结构,先判断循环条件P是否成立,如果成立就执行A框中指定的操作,执行完A框后再判断循环条件P是否成立,如果成立,再次执行A框。如此反复,直到循环条件P不成立,结束循环。直到型循环结构,先执行A框中指定的操作,然后判断循环条件P是否成立,如果成立执行A框,然后再判断循环条件P是否成立,如果成立,再次执行A框。如此反复,直到循环条件P不成立,结束循环。【课堂讨论】✈【教师】请学生分组讨论以下问题请同学们以小组为单位,讨论当型循环结构和直到型循环结构区别,哪种循环结构能保证A框至少执行一次?✈【学生】讨论、总结、回答✈【教师】总结学生的回答二、C程序的基本结构✈【教师】介绍一个简单的C程序,讲解各行代码的含义任务一带领大家在VisualC++2010中输入了一个简单的C程序。此程序是一个由预处理命令和主函数组成的简单C程序,下面分别解释各行代码的含义。第1行:预处理命令。#include<stdio.h>include称为文件包含命令,后面尖括号中的内容称为头文件。“stdio.h”是C程序的系统文件,stdio是“standardinput&output(标准输入/输出)”的缩写,“.h”是文件的扩展名。由于程序的第4行使用了库函数printf(),编译系统要求程序提供有关此函数的信息(如对这些输入/输出函数的声明和宏的定义、全局变量的定义等),所以此处需要这条命令。第2行:函数头。intmain()其中,main是函数的名字,表示“主函数”,main前面的int表示函数的返回值是int类型(整型)。每个C程序都必须有一个main()函数。【课堂讨论】✈【教师】请学生分组讨论以下问题上述描述中,C程序都必须有一个main()函数,请同学们以小组为单位,讨论C程序中是否可以有两个或者多个main()函数?✈【学生】讨论、总结、回答✈【教师】总结学生的回答第3行到第6行:函数体。{ return0; /*函数返回值0*/}函数体必须用大括号{}括起来,函数体中每条语句后都要加分号,表示语句结束。在该函数体中,printf()是C编译系统提供的函数库中的输出函数,用于在屏幕输出内容,输出语句中双引号之间可以是字母、符号及中文字符等(其中,“\n”表示换行)。“return0;”的作用是当main()函数执行结束时将整数0作为函数值返回到调用函数处。在程序各行的右侧可以看到关于这行代码的文字描述(用/*和*/括起来),称为代码注释。其作用是对代码进行解释说明,以增加程序的可读性。✈知识库C程序允许用两种注释方式。(1)以“/*”开始,以“*/”结束的块式注释。这种注释可以单独占一行,也可以包含多行。编译系统在发现一个“/*”后,会开始查找注释结束符“*/,”然后把两者间的内容作为注释。(2)以“//”开始的单行注释。这种注释可以单独占一行,也可以出现在一行中其他内容的右侧。此种注释的范围从“//”开始,以换行符结束,即这种注释不能跨行。若注释内容一行内写不下,可以用多个单行注释。通过以上分析可以看出,C程序的结构主要有以下特点。(1)一个C程序由一个或多个源程序文件组成。一个规模较小的程序,往往只包括一个源程序文件(本书中的例子都是基于一个源程序文件的)。(2)C程序是由函数构成的,函数是C程序的基本单位。任何一个C程序必须包含且仅包含一个main()函数,可以包含零个或多个其他函数。(3)一个函数由函数头和函数体两部分组成。函数头用于定义函数名和返回值类型,如“intmain()”;函数体为函数头下面大括号{}内的部分,用于实现函数的具体功能。(4)C程序总是从main()函数开始执行,在main()函数中结束,与main()函数所处的位置无关。(5)C程序中每条语句和数据定义的最后必须有一个分号。分号是C语言语句的必要组成部分,必不可少。(6)一个好的、有使用价值的C程序都应当加上必要的注释,以增加程序的可读性。三、C程序的格式特点✈【教师】介绍C程序的格式特点通过上面的实例可以看出,C程序有一定的格式特点,具体如下。(1)函数体中的大括号用来表示程序的结构层次,左右大括号须成对使用。(2)在程序中,可以使用英文的大写字母,也可以使用小写字母。但要注意的是,C程序是区分字母大小写的,即大写字母和小写字母代表不同的字符。在一般情况下,C程序中使用小写字母较多,但在定义常量时会使用大写字母。(3)在程序中,空格和空行不会影响程序的执行。合理地使用空格和空行,可以使编写的程序更加规范,有助于日后的阅读和整理。(4)C程序书写格式自由,一行内可以写多条语句,一条语句也可以分写在多行。但为了有良好的编程风格,最好将一条语句写在一行。(5)代码缩进统一为4个字符。建议不使用空格,而使用Tab键。【课堂问答】✈【教师】随机邀请学生回答以下问题请同学们思考,上述规范化的代码书写,有哪些益处?✈【学生】聆听、思考、回答✈【教师】总结学生的回答四、常见错误分析✈【教师】介绍C程序的格式特点1.语句后少分号分号是C程序语句的重要组成部分,每条语句及数据定义末尾必须有分号。很多初学者在编写程序时很容易漏写。例如:#include<stdio.h>intmain(){ printf("HelloWorld!\n") /*语句后少分号*/ return0;}编译报错信息如图1-21所示(详见教材)。【错误分析】提示语法错误,第5行“return”前缺少分号。这是因为,程序在编译时,编译器在“printf("HelloWorld!/n")”语句后没有发现分号,会接着检查下一行是否有分号,编译器会认为“return0”也是上一行语句的一部分,直到分号结束。✈高手点拨在调试程序时,如果编译器指出有错的行中找不到错误,应该在该行的上下行中检查。2.语句中出现中文字符C程序的语句只识别英文字符(提示信息和注释信息除外),中文字符无法编译。例如:#include<stdio.h>intmain(){ printf(“HelloWorld!\n”);/*使用了中文双引号*/ return0;}编译报错信息如图1-22所示(详见教材)。【错误分析】此程序之所以出现错误,是因为printf()函数中使用了中文双引号,使得程序在编译时发现了编译器无法处理的字符。3.大括号不成对出现C程序的函数体中,左右大括号要成对使用。初学者在编写程序时很容易忘掉右边的大括号。例如:#include<stdio.h>intmain(){ printf("HelloWorld!\n"); return0; /*少了右大括号*/编译报错信息如图1-23所示(详见教材)。【错误分析】错误提示,在第6行中,与左侧的大括号“{”匹配之前遇到文件结束。出现这类错误时,通常需要核对大括号是否成对出现。4.程序连接出错在一般情况下,程序编译完成后如果没有错误,在连接程序时就很少发生错误了,除非是调用函数出了问题。例如:#include<stdio.h>intmain(){ print("HelloWorld!\n");/*printf()函数名写错了*/ return0;}连接程序时提示错误信息,如图1-24所示(详见教材)。【错误分析】编译没有错误,说明语法没有错。但在连接时出现“无法解析的外部符号_print,该符号在函数_main中被引用”的错误信息,则表示编译器遇到无法解析的外部符号print。一般来说,当遇到这类错误时通常需要检查函数名是否输入错误。✈素养之窗《道德经》中有句话:“天下难事,必作于易;天下大事,必作于细。”即天下所有的难事都是由简单的小事演变而来的,天下所有的大事都是从细微的小事积累起来的。一个人要想成就一番事业,都要从简单的小事做起,从细节入手。如果想成为一个优秀的程序员,就一定要注意方法、知识、经验和技巧的长期积累。五、任务实施✈【教师】多媒体播放“编写第一个C程序”视频(详见教材),让学生熟悉VisualC++2010的使用,了解printf()函数的使用1.任务分析编写第一个属于自己的C程序,要求C程序的输出结果如下:*******************这是我的第一个C程序*******************程序要求输出3行字符串,故需要在主函数中调用3次printf()函数。要调用printf()函数,须使用文件包含命令包含系统文件“stdio.h”。2.参考程序……(详见教材)【课堂问答】✈【教师】随机邀请学生回答以下问题请同学们结合上述代码,分析该程序属于顺序结构、选择结构和循环结构中的哪一种?✈【学生】聆听、思考、回答✈【教师】总结学生的回答3.运行结果运行VisualC++2010,新建项目并在此项目中新建源程序文件。在编辑区输入以上程序,生成解决方案并运行程序。最终的运行结果如图1-25所示(详见教材)。【学生】聆听、思考、理解、记录课堂实训【教师】介绍课堂实训目的、实训内容,要求学生按照实训要求完成实训任务一、实训目的(1)能使用VisualC++2010开发环境编写、调试和运行程序。(2)学会查看编译器给出的错误信息,分析并修改程序。二、实训内容1.阅读程序(1)运行VisualC++2010,新建项目并在此项目中新建源程序文件。(2)进入程序编辑窗口,在编辑区输入以下源程序。……(详见教材)(3)编译、连接源程序,查看编译结果信息。如果出现错误信息,认真检查,找到原因并进行修改,然后再编译、连接,直至没有错误。(4)运行程序,分析运行结果。2.程序设计编写C程序,输出以下信息,要求程序的每行加上注释。***Helloworld!***【学生】按要求完成实训内容,并将实训过程中遇到的问题和解决办法记录在表1-2中(详见教材)课堂小结【教师】简要总结本节课的要点本次课介绍了算法的基本概念,算法的特点:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。讲解了算法的流程图描述方法,包括流程图符号,三种基本结构,即顺序结构、选择结构和循环结构。通过一个简单的C程序,介绍了C程序的基本结构。总结了C程序的格式特点,左右大括号需成对,字母区分大小写,代码书写规范等。并对C程序的常见错误进行了分析,语句后少分号、语句中出现中文字符、大括号不成对出现、程序连接出错。最后通过任务实施,练习了本次课所学知识,实现了预期的输出结果。【学生】总结回顾知识点作业布置【教师】布置课后作业(1)将本项目的思维导图(教材图1-26)填写完整。(2)请根据本课内容,完成课后习题中的相关习题。【学生】完成课后任务教学反思

课题计算三角形的面积课时2课时(90min)教学目标知识目标:(1)掌握标识符和关键字的概念,常量和变量的使用方法(2)掌握基本的数据类型,运算符和表达式的基本使用方法能力目标:能查找并改正标识符、数据类型和常见表达式的语法错误素质目标:根据编写程序需要遵循相应的语法,增强学生遵守规则的意识,养成按规矩行事的习惯教学重难点教学重点:标识符和关键字,常量和变量,基本数据类型,运算符和表达式教学难点:自增与自减表达式教学方法问答法、讨论法、讲授法、实践法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或其他学习软件,完成课前任务学习英语有相应的英语语法,请同学们上网查找,C语言中的语法规则。【学生】完成课前任务考勤【教师】使用APP进行签到【学生】班干部报请假人员及原因问题导入【教师】请同学们扫码观看“C语言的库函数”视频(详见教材),讨论并回答以下问题:请同学们思考,C语言中使用库函数的注意事项有哪些?要使用C语言提供的库函数sqrt(),在程序开头的文件包含命令该如何书写?传授新知【教师】讲解C语言基本语法中饭的标识符和关键字,常量和变量,基本数据类型,运算符和表达式,一、标识符和关键字✈【教师】介绍标识符概念、命名规则,关键字的概念及C语言中包含的关键字1.标识符标识符是指软件开发人员在编写程序时自己规定的具有特定含义的词,用来标明设定的变量名、数组名、函数名等。在C程序中,标识符应遵循以下命名规则。(1)标识符只能由字母、下划线、数字组成,且第一个字符必须是字母或下划线。(2)标识符区分字母大小写。(3)标识符不能是C程序中的关键字。✈提示从理论上讲,C程序中并不限制标识符的长度,但实际上,标识符的长度会受到编译系统和机器系统的限制。为提高程序的可读性,应尽量使标识符可以“见名知义”。2.关键字C程序中规定具有特别意义的字符串称为关键字,也称“保留字”。ANSIC90标准中共有32个关键字,见表2-1所列(详见教材)。二、常量和变量✈【教师】介绍直接常量和符号常量,变量的定义及注意事项C程序中的数据,按其取值是否可改变分为常量和变量。在程序执行过程中,其值不发生改变的量称为常量,其值可变的量称为变量。1.常量常量可分为直接常量和符号常量两种。常见的直接常量又包括整型常量、实型常量和字符常量。符号常量是用标识符来表示一个常量。符号常量在使用之前必须先定义,其一般格式如下。#define标识符常量其中,“#define”是一条预处理命令,称为宏定义命令,其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代表该常量值。宏定义的作用是给常量起“别名”,利用它可以增强程序的可维护性。例如,当需要修改某一常量值时,只需要修改宏定义中的常量值,而不必在程序各处逐一修改。另外,意义明确的“别名”还可以增强程序的可读性。✈提示习惯上符号常量的标识符用大写字母表示。2.变量每个变量都有一个名字,这个名字称为变量名。变量名必须是合法的标识符,它代表了某个存储空间及其所存储的数据,这个空间所存储的数据称为该变量的值。变量在使用之前必须先定义,定义变量的一般格式如下。类型说明符变量名;在定义变量时,应注意以下四点。(1)允许在一个类型说明符后定义多个相同类型的变量,各变量名之间用逗号隔开,具体格式如下。类型说明符变量名1,变量名2,……;(2)类型说明符与变量名之间至少有一个空格。(3)最后一个变量名之后必须以“;”结尾。(4)变量定义必须放在变量使用之前,一般放在函数体的开始部分。用户可在定义变量的同时为变量赋初值,这种形式称为变量的初始化。【课堂讨论】✈【教师】请学生分组讨论以下问题请同学们以小组为单位,讨论定义变量的所有语句是否必须放在程序的最前面,并编写简单的测试程序,验证讨论结果。✈【学生】讨论、验证、总结、回答✈【教师】总结学生的回答三、基本数据类型1.整型整型数据包括整型常量和整型变量两类。(1)整型常量。整型常量的表示形式如下。①十进制整数。②八进制整数。以数字0开头,用0~7这8个数字组合表达。③十六进制整数。以0x或0X开头,用0~9这10个数字及字母A~F(或a~f)组合表达。其中,A代表数值10,B代表数值11,依此类推。✈提示在使用整型常量时,可以在常量的后面加上字符L(l)或者U(u)进行修饰。L表示该常量为长整型,U表示该常量为无符号整型,如1256L、500U等。(2)整型变量。整型变量是用来存储整数的变量,可分为有符号整型和无符号整型两大类。有符号整型指的是数值可以带正负号,所以需要一个符号位;无符号整型指的是数值只有正数,所以可以去掉符号位。在默认情况下,C程序中的整型变量都是有符号的,若要使用无符号整型,需要用关键字unsigned声明。为了适应不同的应用场合,C程序中可以定义多种整数类型,其长度各不相同。其中,最常用的是有符号整型(用关键字int表示),长度为32位(4个字节)。此外,还有长整型(用关键字long表示)和短整型(用关键字short表示)。在编写程序时,除可以指明变量是长整型或短整型、有符号整型或无符号整型,还可以把说明符组合起来。因此,整型变量可以分为有符号基本整型、无符号基本整型、有符号短整型、无符号短整型、有符号长整型和无符号长整型这六种。在C程序中,各种整型变量都有其特定的表示范围,当一个数据超出了其类型所能表示的范围时,称为数据溢出。【课堂练习】✈【教师】出示【例2-1】,组织学生编写代码有符号短整型数据的溢出。……(详见教材)✈【学生】编写程序、运行、对比结果✈【教师】解析例题这里定义的变量a和b是有符号短整型,其取值范围为−32768~32767,所以当a的值加1变成了32768后就会发生“溢出”。但程序运行时并不报错,它好像汽车里程表一样,达到最大值以后,又从最小值开始计数。所以32767加1后得到的结果不是32768,而是−32768。程序运行结果如图2-1所示(详见教材)。✈高手点拨C程序的用法比较灵活,即使程序存在潜在问题,系统也不会给出“出错信息”,此时只能依靠程序员的经验来保证结果的正确。在例2-1中,只需把变量b改成int型或者long型,就可以得到预期的结果了(32768)。2.浮点型浮点型数据也称为“实型数据”,是带有小数点或指数符号的数值数据,包括浮点型常量和浮点型变量两类。(1)浮点型常量。浮点型常量的表示只采用十进制形式,包括直接十进制形式和指数形式两类。①直接十进制形式。②指数形式,通常用来表示一些比较大或者比较小的数值,格式如下:实数部分+字母E或e+正负号+整数部分其中,字母E或e表示十次方,正负号表示指数部分的符号,整数部分为幂的大小。字母E或e之前必须有数字(实数部分),之后的数字必须为整数。✈提示C程序中允许浮点数使用后缀。后缀为f或F即表示该数为浮点数。例如,42.f和42.0是等价的。(2)浮点型变量。根据其精度不同,浮点型变量可以分为单精度类型、双精度类型和长双精度类型。①单精度类型使用关键字float来定义变量,它在内存中占4个字节,提供6位有效数字,取值范围为−3.4×1038~−1.2×10−38、0和1.2×10−38~3.4×1038。②双精度类型使用关键字double来定义变量,它在内存中占8个字节,提供15位有效数字,取值范围为−1.7×10308~−2.3×10−308、0和2.3×10−308~1.7×10308。【课堂练习】✈【教师】出示【例2-2】、【例2-3】,组织学生编写代码单精度型数据的有效位,双精度型数据的有效位。……(详见教材)✈【学生】编写程序、运行、对比结果✈【教师】解析例题由于float型只接受6位有效数字,因此显示的数据中只有前6位是保证正确的,后面显示的数据是编译器随机给出的。为了扩展有效数字范围,可使用双精度类型或长双精度类型。由于double型提供15位有效数字,所以输出的数据数值是正确的。程序运行结果如图2-2、图2-3所示(详见教材)。③长双精度类型使用的关键字是longdouble。不同的编译系统对longdouble型的处理方法不同。例如,TurboC2.0对longdouble型分配16个字节,而VisualC++则对longdouble型和double型一样处理,其有效数字位数和取值范围也与double型一致。3.字符型字符型数据包括字符型常量和字符型变量。(1)字符型常量。字符型常量包括字符常量、字符串常量和转义字符。✈【教师】多媒体播放“常用字符与ASCII代码对照表”视频(详见教材),让学生了解ASCII及对应的值①C程序中的字符常量必须用单撇号(单引号)括起来,且单撇号中只能是单个字符,如'A'、'a'、'8'、'&'。由于字符型数据在C程序中是以ASCII码形式存储的,因此字符常量的值就是其对应的ASCII码值。由于ASCII码值为整型,所以C程序中字符型数据与整型数据是可以互用的。②字符串常量是一对双撇号(双引号)括起来的一个或多个字符。C程序中存储字符串常量时,系统会在字符串的末尾自动加一个'\0'作为字符串的结束标志。③转义字符是C程序中表示字符的一种特殊形式,它以反斜杠“\”作为标志符号,后面跟一个字符(也可以是一个八进制或十六进制数)。转义字符具有特定的含义,不同于字符原有的意义,如转义字符'\0'表示字符串结束。常用转义字符见表2-3所列(详见教材)。(2)字符型变量。字符型变量用来存储单个字符,类型说明符是char。字符型变量定义的格式和书写规则都与整型变量相同。✈高手点拨字符型数据和整型数据可以互用,区别是整型数据占4个字节,字符型数据只占1个字节,故当整型数据按字符型数据处理时,只有低八位参与处理。4.数据类型转换✈【教师】多媒体播放“数据类型转换”视频(详见教材),让学生了解隐式类型转换和强制类型转换,及其转换方法在C程序中,不同类型的数据可以混合运算,但在运算之前应先转换成同一类型。数据类型的转换有自动类型转换和强制类型转换两种方式。(1)自动类型转换。自动类型转换是由编译系统自动进行的,不需要人为干预。自动类型转换要遵循以下三个基本规则。①若参与运算的变量类型不同,须先转换成同一类型(自动转换),然后进行运算。②“低级向高级转换”原则。如果运算中有几种不同类型的操作数,则统一转换为最高级的数据类型后再进行运算。数据类型的转换方向如图2-5所示(详见教材)。③赋值运算两边的数据类型不同时,赋值号右边数据的类型将会转换为左边数据的类型。【课堂练习】✈【教师】出示【例2-4】,组织学生编写代码数据类型转换的应用。……(详见教材)✈【学生】编写程序、运行、对比结果✈【教师】解析例题计算a+b+c时,先将变量a和变量b都转换成double型,然后计算,所以结果为double型。但赋值时,x为int型,故会将计算结果转换成int型赋值给x,x的值为6。程序运行结果如图2-6所示(详见教材)。(2)强制类型转换。强制类型转换也称“显示类型转换”,作用是将表达式的结果强制转换成类型标识符所指定的数据类型,运算格式如下。(类型标识符)(表达式)类型标识符和表达式都应用圆括号括起来(单个操作数时,表达式的圆括号可以省略)。✈提示强制类型转换只作用于表达式的结果,并不改变各个变量本身的数据类型。四、运算符和表达式✈【教师】多媒体观看“算术运算符和算术表达式”(详见教材),让学生了解使用算术运算符运算的方法1.算术运算符和算术表达式算术运算符用于各类数值运算。在C程序中,基本算术运算符有五种,即+(加)、−(减)、*(乘)、/(除)、%(模运算);正负号运算符有两种,即+(正号)和−(负号);自增、自减运算符有两种,即++(自增)和−−(自减)。带有算术运算符的表达式称为算术表达式。基本算术运算符是双目运算符,即要求有两个操作数,如x+y、x−y、x*y、x/y、x%y等,其优先级和数学中一样。自增和自减运算符是在程序设计中使用频率较高的两个运算符,它们的作用是将操作数的值增1(或减1)后,重新写回该操作数所在的存储单元。自增和自减运算符有前置和后置两种形式。当某一运算只包含自增或自减操作时,自增或自减运算符的前置和后置形式的作用相同。但是,当自增、自减运算的结果作为操作数参与其他操作时,前置与后置的情况就有所区别了。例如,设运算前i=3,则以下4个表达式的运算结果见表2-4所列(详见教材)。【课堂问答】✈【教师】随机邀请学生回答以下问题请同学们思考,当自增、自减运算的结果作为操作数参与其他操作时,将其分解成变量加一和赋值运算两个选项,前置与后置时两个选项的前后顺序是怎么样的?✈【学生】聆听、思考、回答✈【教师】总结学生的回答✈提示自增和自减运算符只能用于变量,而不能用于常量和表达式。例如,8++、(a+b)++都是不合法的。此外,自增、自减运算符的优先级要高于基本算术运算符。2.赋值运算符和赋值表达式C程序中,赋值也是一种运算,运算符为“=”,它的作用是将一个表达式的值赋给一个变量,如x=4。需要注意的是,赋值运算符的左边必须是一个变量。赋值运算符的优先级低于算术运算符,结合方向是从右向左。大多数双目运算符都可以与赋值运算符“=”结合起来,构成一个复合的赋值运算符,如+=、−=、*=、/=、%=等。【课堂练习】✈【教师】出示【例2-5】,组织学生编写代码赋值运算符的应用。✈【学生】编写程序、运行、对比结果✈【教师】解析例题3.逗号运算符和逗号表达式C语言中逗号可作为间隔符,如定义变量时用的逗号“inta,b,c;”;亦可作为运算符,用于连接多个表达式,其一般形式如下。表达式1,表达式2,……,表达式n逗号表达式在运算时将从左至右依次求取各个表达式的值(先求表达式1,然后求表达式2……直至求解完表达式n),而整个逗号表达式的值为最后一个表达式的值。逗号运算符在全部运算符里优先级最低,因此最好将整个逗号表达式用圆括号括起来,否则意义可能会不同。逗号运算符的结合方向是从左向右。因此,前后表达式用到相同的变量,则前面表达式中变量值如果发生了变化,将会影响后面的表达式。4.位运算符和位表达式位运算是指进行二进制位的运算,如将一个存储单元中的各二进制位左移或右移一位。位运算符包括按位与(&)、按位或(|)、按位异或(^)、取反(~)、左移(<<)和右移(>>)6个,其中,取反运算是单目运算,其余是双目运算,参与位运算的数据类型只能是整型或字符型。位运算符的功能见表2-5所列(详见教材)。【课堂讨论】✈【教师】请学生分组讨论以下问题请同学们以小组为单位,讨论按位与(&)、按位或(|)的

运算规则,哪个与物理当中的串联电路和并联电路相类似?✈【学生】讨论、总结、回答✈【教师】总结学生的回答左移运算符(<<)。左移运算用来将一个数的二进制位全部左移若干位,高位左移溢出后舍弃,右端低位补0。右移运算符(>>)。右移运算用来将一个数的二进制位全部右移若干位,低位右移舍弃,对无符号数,高位补0。对于有符号数,在右移时,符号位将一同移动,当为正数时,最高位补0;而为负数时,符号位为1,最高位是补0或是补1取决于编译系统,VisualC++规定为补1。位运算符与赋值运算符也可以组成复合赋值运算符,包括&=、|=、>>=、<<=、^=。五、任务实施✈【教师】多媒体播放“计算三角形的面积”视频(详见教材),让学生了解三角形面积的程序设计步骤及代码实现1.任务分析本任务中涉及的变量包括三角形的边长和面积,边长的数据类型通常为浮点型,为了更精确地显示计算结果,面积的数据类型可定义为双精度型。由于计算面积时需要用到平方根函数,须调用math.h头文件。✈知识库math.h头文件中声明了一些常用的数学函数,如三角函数、平方根函数、指数函数、对数函数、绝对值函数等。2.参考程序……(详见教材)3.运行结果通过键盘输入345↙,程序运行结果如图2-8所示(详见教材)。【学生】聆听、思考、理解、记录课堂实训【教师】介绍课堂实训要求,以及实训内容,要求学生按照实训要求完成实训任务请同学们按照任务实施中计算三角形的程序设计思路和步骤进行练习。首先包含math.h头文件,然后定义三个变量代表代表三角形的三条边,定义一个变量代表中间运算结果,定义最终的面积结算结果变量,调用scanf用户输入三角形三条边的值,计算中间变量的值,用平方根函数计算三角形面积,最终调用printf输出运算结果。【学生】按照要求进行操作,完成后总结自己哪些地方做得很好,还有哪些地方需要改进课堂小结【教师】简要总结本节课的要点本次课介绍了标识符的含义、用途、命名规则,关键字的含义,列举了32个关键字。讲解了常量和变量的定义,定义方法、语法格式及注意事项。讲解了基本数据类型,包括整型、浮点型、字符型,以及数据类型的转换,包括自动类型转换和强制类型转换两种方式。介绍了算术运算符和算术表达式,赋值运算符和赋值表达式,逗号运算符和逗号表达式,位运算符和位表达式。最后通过任务实施,利用已学知识,编写计算面积代码,输出计算结果。【学生】总结回顾知识点作业布置【教师】布置课后作业请根据本课内容,完成课后习题中的相关习题。【学生】完成课后任务教学反思

课题简单模拟ATM机取款操作课时2课时(90min)教学目标知识目标:(1)了解C语句的概念与类型(2)掌握格式输入/输出函数和字符输入/输出函数的使用方法能力目标:能利用输入/输出函数进行简单的程序设计素质目标:通过每个章节的项目实训,同学们要提升自己的职业素养和职业技能教学重难点教学重点:C语句概述,格式输入/输出函数,字符输入/输出函数教学难点:格式输入/输出函数中的格式控制教学方法问答法、讨论法、讲授法、实践法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或其他学习软件,完成课前任务请同学们结合自己的ATM取款经历,归纳总结ATM机取款的操作流程。【学生】完成课前任务考勤【教师】使用APP进行签到【学生】班干部报请假人员及原因问题导入【教师】请同学们扫码观看“顺序结构”视频(详见教材),讨论并回答以下问题:请同学们绘制顺序结构的流程图,思考顺序结构、分支结构和循环结构这三种结构,是否可以组成各种复杂程序?传授新知【教师】讲解C语句概述,格式输入/输出函数,字符输入/输出函数一、C语句概述✈【教师】介绍表达式语句、函数调用语句、控制语句、复合语句、空语句C语句用来向计算机系统发出操作指令以完成一定的操作任务。一个程序通常包含若干条语句。这些语句大致可分为以下五类。1.表达式语句表达式语句是由一个表达式加上分号组成的,其一般形式如下。表达式;执行表达式语句就是计算表达式的值。2.函数调用语句函数调用语句是由一个函数调用加上分号组成的,其一般形式如下。函数名(实际参数列表);3.控制语句控制语句用于控制程序的执行流程,它们是由特定的语句定义符组成的。C程序有九种控制语句,可分为以下三类。(1)分支语句(条件判断语句):if-else语句、switch-case语句。(2)循环语句:while语句、do-while语句、for语句。(3)转向语句:break语句、continue语句、goto语句、return语句。4.复合语句用大括号{}将多条语句括起来组成的语句称为复合语句。在C程序中,可以将复合语句看成是单条语句。✈提示复合语句内的各条语句都必须以分号结尾,在右大括号“}”外不能加分号。5.空语句只有分号组成的语句称为空语句,它不执行任何操作。空语句常用作空循环体。【课堂问答】✈【教师】随机邀请学生回答以下问题请同学们思考,空语句不执行任何操作,那么空语句有什么作用?✈【学生】聆听、思考、回答✈【教师】总结学生的回答二、格式输入/输出函数✈【教师】介绍格式输出函数printf(),格式输入函数scanf()C程序本身没有提供输入/输出语句,输入和输出操作由C函数库中的函数来实现。在使用系统库函数时,要使用预编译命令“#include”将有关的“头文件”包含进来。格式输入/输出函数是最常用的输入/输出函数,这些函数包含在“stdio.h”文件中,故在程序开头须添加预编译命令。#include<stdio.h>或#include"stdio.h"1.格式输出函数printf()✈【教师】多媒体播放“格式输出函数”视频(详见教材),让学生了解格式输出函数的使用用法在前面的任务中,多次用到了printf()函数,其功能是将指定内容显示在屏幕上。printf()函数的一般格式如下。printf("格式控制",输出项列表);括号内包括格式控制和输出项列表两部分内容。(1)格式控制是用双撇号括起来的一个字符串,称为格式控制字符串。它包括格式声明和普通字符两部分。格式声明的一般形式如下,其中方括号中的项为可选项。%[标志][0][输出最小宽度][.精度][长度]格式字符①标志:标志字符有“+”和“−”两种,用来指定输出数据的对齐方式。指定“+”时,输出右对齐;指定“−”时,输出左对齐;不指定标志,默认右对齐。②输出最小宽度:用十进制整数来表示输出的最少位数m。若实际位数多于定义的宽度,则按实际位数输出;若实际位数少于定义的宽度,则补空格或0(如果在m前有数字0,则补0)。③精度:精度格式符以“.”开头,后跟十进制整数n。如果输出的是数字,精度表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。④长度:长度格式符有h和l两种,h表示按短整型输出,l表示按长整型输出。⑤格式字符:表示输出数据的类型,常用的格式字符及其功能见表2-6所列(详见教材)。普通字符是指需要原样输出的字符。例如,printf()函数双撇号内的“a=”“b=”及中间的逗号均为普通字符,会原样输出到屏幕上。(2)输出项列表是程序需要输出的一些数据,这些数据可以是常量、变量或表达式。输出项列表中给出了各个输出项,要求格式声明和各输出项在数量和类型上一一对应。例如,“printf("a=%d,b=%f",a,b);”中,“%d”与变量a对应,“%f”与变量b对应。【课堂练习】✈【教师】出示【例2-6】,组织学生编写代码使用格式输出函数printf()输出不同类型变量。✈【学生】编写程序、运行、对比结果✈【教师】解析例题……(代码详见教材)。【运行结果】程序运行结果如图2-9所示(详见教材)【程序说明】在程序中定义了整型变量a、单精度型变量b、双精度型变量c和字符型变量d;输出a时,用了十进制(%d)、八进制(%o)和十六进制(%x)的形式;输出b和c时都用了“%f”,b的宽度最少为5,小数位保留3位。另外,用“%e”输出c的指数形式,用“%c”输出单个字符d,用“%s”输出字符串“IloveC”。2.格式输入函数scanf()✈【教师】多媒体播放“格式输入函数”视频(详见教材),让学生了解格式输入函数的使用用法格式输入函数scanf()的作用是将数据按规定的格式从键盘读入指定变量中,其一般格式如下:scanf("格式控制",输入项地址列表);括号内包括格式控制和输入项地址列表两部分内容。(1)格式控制又包含格式声明与普通字符两部分。格式声明用于规定输入数据的格式,如数据的类型、长度等;普通字符是须按原样输入的字符,如本例中的“a=”“b=”及双引号内的逗号。scanf()函数中的格式声明与printf()函数中的格式声明类似,以“%”开始,以格式字符结束,中间可以插入附加的符号,其形式如下。%[m][l或h]格式字符其中,常用的格式字符及其用法与printf()函数中的用法类似,此处不再赘述。①长度l或h。l表示输入长整型或双精度型数据,h表示输入短整型数据。例如:%ld、%lo、%lx表示输入数据为长整型(十进制、八进制、十六进制);%lf、%le表示输入数据为双精度型(小数形式、指数形式);%hd、%ho、%hx表示输入数据为短整型。②数据宽度m。m为十进制整数,用于指定输入数据的宽度(即数字个数)。【课堂讨论】✈【教师】请学生分组讨论以下问题请同学们以小组为单位,讨论scanf("%4d",&a)语句,在输入123456时a的值,输入123时a的值?✈【学生】讨论、总结、回答✈【教师】总结学生的回答✈提示对于浮点型数据,数据宽度为数据的整体宽度,包括小数点在内,即数据宽度m=整数位数+1(小数点)+小数位数。格式输入函数只能指定数据整体宽度,无法指定小数位数,这与格式输出函数printf()不同。例如:scanf("%3f%3f",&a,&b);若输入:1.23.4↙,则a等于1.200000,b等于3.400000;若输入:1234.5↙,则a等于123.000000,b等于4.500000;若输入:1.234.5↙,则a等于1.200000,b等于34.000000。(2)输入项地址列表,由需要输入变量的地址组成。变量的地址用取地址运算符“&”得到。多个输入项之间用逗号隔开,同样要求格式声明在数量和类型上与各输入项一一对应。✈高手点拨利用scanf()函数从键盘读入数据时,需注意以下几点:(1)多个数据间可用空格键、回车键或Tab键进行分隔,最后以回车键结束输入;(2)输入数据个数与顺序要与scanf()函数规定的一致;(3)如果“格式控制”中有普通字符,就必须按原样输入,否则可能发生严重错误。【课堂练习】✈【教师】出示【例2-7】,组织学生编写代码。✈【学生】编写程序、运行、对比结果✈【教师】解析例题在格式输入/输出函数中,输入/输出字符型数据的格式字符为“%c”;大写字母转换成相应的小写字母时,大写字母与小写字母的ASCII码差值为32,故将大写字母加上32即可得到对应的小写字母。……(参考程序详见教材)【运行结果】程序运行结果如图2-10所示(详见教材)三、字符输入/输出函数✈【教师】介绍字符输出函数putchar(),字符输入函数getchar()除了可以用scanf()函数和printf()函数输入/输出字符外,C函数库还提供了专门用于输入/输出字符的函数,putchar()函数和getchar()函数。1.字符输出函数putchar()字符输出函数putchar()的功能是向输出设备输出一个字符,其一般格式如下。putchar(c);c可以是字符常量或变量,也可以是整型常量或变量(ASCII码)。2.字符输入函数getchar()字符输入函数getchar()的功能是从输入设

温馨提示

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

评论

0/150

提交评论