版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
教案Xx学年第xx学期课程名称:程序设计基础教学模式:线上□线下□混合实践□授课班级:xx专业xx年级xx班授课教师:xx职称:xx授课教材:C语言程序设计(第二版)
编写说明1.教案是教学过程的实施方案,是根据课程教学大纲规定的教学内容和教学基本要求,结合授课对象的实际情况,对教学活动的全程设计。2.建议理论授课每次课(2小节)编写一个教案,实践课根据实践内容编写教案;每门课程的教案按学期用一个封面左侧装订,A4纸双面打印,手写亦可。3.本表的每项内容都要认真填写,“教学过程”部分要详细填写;要求格式整齐,段落清晰,注重思想性、科学性、逻辑性和艺术性。4.每门课程的授课教案在每次授课时应及时更新。~~第1讲授课时间11月9日,第10周周一第5-6节课次1授课类型理论课讨论课□习题课□实验课□其他:课时安排2授课题目课程介绍教学目标知识:了解C语言的发展历史和特点了解程序与程序语言的概念了解计算机实现问题求解的过程了解C程序的上机步骤能力:掌握C程序格式和结构特点素养:认识工具对编程的重要性教学重点和难点难点:计算机实现问题求解的过程教学方式板书□多媒体音视频□演示□操作□参访□其他:教学过程教学内容师生互动设计教学方法和时间安排课前准备授课内容内容简介教学须达到的目的教学方式、学习方法、考核方式及评分标准;授课基本内容介绍;CB工具安装介绍;微信注册雨课堂;OJ系统注册课堂调查:选择专业的目的;C语言的了解程度示例程序介绍;C语言的发展过程C语言的特点程序与程序设计语言程序的编译与编译环境C程序的格式和结构特点实现问题求解的过程C程序的上机步骤学习本门课程的方法雨课堂问卷提问:第一台电子计算机是如何产生的?提问:计算机硬件的发展经历了哪几个阶段?提问:对一个具体的题目如求梯形面积,我们是如何求解的呢?讲授,5m讲授,5m讲授,5m讲授,5m讲授,演示,5m实习,5m实习,5m调查讨论,10m演示,5m5m讲授,5m讲授,5m讲授,5m讲授,5m讲授,5m讲授,5m讲授,5m课后活动OJ系统注册并至少完成其中的1道题。第2讲授课时间11月11日,第10周周三第3-4节课次1授课类型理论课讨论课□习题课□实验课□其他:课时安排2授课题目用C语言编写程序教学目标知识:掌握基本数据类型掌握基本输入输入函数用法能力:能够定义变量能够给变量赋值能够打印变量的值素养:变量定义的可读性,团队合作基础教学重点和难点重点难点:变量类型和定义;输入输出的理解教学方式板书□多媒体音视频□演示□操作□参访□其他:教学过程教学内容师生互动设计教学方法和时间安排课前准备课本18-28页或翁恺MOOC第一章(45m)授课内容讲授与指导内容讲课、互动内容设计课时分配数据类型本次课的讲授内容:提出了解、熟悉、掌握的内容C的数据类型数据为什么要区分数据类型?不同类型的数据代表不同的①数据表示形式②合法的取值范围③占用内存空间大小④可参与的运算种类这四点是本章的根基所在,即本章要讲清楚的就是这四点内容。C的数据类型基本数据类型中的(整型、字符型、浮点型)是本次课要掌握的,其他的类型将在后面的章节学习。常量与变量理解:常量与变量是程序中对数据的表现形式。(一)标识符概念命名规则(二)常量1、符号常量使用规则使用优点2、直接常量整型常量实型常量字符常量字符串常量(三)变量概念定义形式1、变量赋初值赋值规则2、类型修饰符3、整型变量4、实型变量5、字符变量类型转换1、隐式类型转换2、显式类型转换(强制类型转换)转换的形式提问:上节讲过程序设计语言的一个功能是什么?就是对数据的描述,在C中是用数据类型来表达的。启发:数据为什么要区分类型?内容见教材6.1内容见教材6.2启发:文件或文件夹是如何命名的?通过实例说明使用符号常量的优点整型常量、实型常量与通常的计算用的数字进行对比字符常量、字符串常量是C特有的,掌握它们的特点,这里需要注意的是转义字符注意区分变量与常量的概念,变量不能直接使用,必须先定义。理解:变量名代表内存中的一个存储单元,用于存放该变量的值,而该存储单元的大小由变量的类型决定。举例强调C语言没有字符串变量内容见教材6.41分钟10分钟10分钟5分钟10分钟10分钟4分钟3分钟2分钟2分钟2分钟3分钟10分钟课后活动完成OJ系统18道顺序结构的题目中的10道。第3讲授课时间11月16日,第11周周一第5-6节课次1授课类型理论课讨论课□习题课□实验课□其他:课时安排2授课题目C语言中的运算符教学目标知识:掌握C常用运算符和表达式(算术、关系、逻辑)的使用了解其它运算符和表达式(条件、逗号)的使用能力:能够正确使用运算符和表达式素养:表达式的可读性对团队合作的重要性教学重点和难点重点难点:自增,自减教学方式板书□多媒体音视频□演示□操作□参访□其他:教学过程教学内容师生互动设计教学方法和时间安排课前准备课本30-35页或翁恺MOOC第二章(45m)授课内容讲授与指导内容讲课、互动内容设计课时分配运算符与表达式本次课的讲授内容:提出了解、熟悉、掌握的内容运算符与表达式(OperatorsandExpressions)运算符的分类学习运算符应注意:①运算符功能②与运算量关系(要求运算量的个数和类型)③运算符优先级别(precedence)(不同的运算符先算谁,后算谁)④结合方向(相同的优先级是从左向右算还是从右向左算)⑤结果的类型(结果是哪种类型的数据)(二)表达式的概念算术运算符与表达式(ArithmeticOperator)1.基本的算术运算符+(加法运算符)addition-(减法运算符)subtraction*(乘法运算符)multiplication/(除法运算符)division%(模运算符)remainder2.增量与减量运算(++与--)IncrementandDecrementoperators作用:使变量的值增1或减1。赋值运算符与表达式(Assignmentoperator)1.赋值运算符2.赋值表达式赋值表达式的运算过程关系运算符与表达式(Relationaloperators)关系运算即比较运算(比大小)1.关系运算符关系运算符的优先级2.关系表达式关系表达式的的结果是个逻辑值,即“真”或“假”。C语言以“0”代表假,“1”代表真。逻辑运算符与表达式(Logicaloperator)逻辑运算符有3种:&&逻辑与(双目运算符)||逻辑或(双目运算符)!逻辑非(单目运算符)逻辑运算符的优先级求解逻辑运算符的过程(&&和||)条件运算符与表达式条件表达式的一般格式为:<表达式1>?<表达式2>:<表达式3>条件表达式的运算过程逗号运算符运算符格式优先级其他运算符1.长度运算符(Lengthoperator)2.特殊运算符运算符的优先级与结合性提问:数据为什么要区分类型?这次课就是要讲清楚数据类型中第4点内容讲清楚优先级和结合性的概念内容见教材6.5注意讲清楚除法运算和取模运算的特点,与我们熟悉的四则运算作比较启发:算术运算符的优先级是怎样的?注意对比前置与后置的区别,举例说明注意讲清楚与通常意义的等号(=)的区别注意结合上一次课变量赋初值的内容注意关系等(==)与赋值等(=)的区别举例说明逻辑运算符的真值表举例说明举例说明5分钟5分钟5分钟10分钟5分钟5分钟10分钟10分钟10分钟5分钟5分钟15分钟第二节课完课后活动完成OJ系统18道顺序结构的5道题目。第4讲授课时间11月18日,第11周周三第5-6节课次1授课类型理论课讨论课□习题课□实验课□其他:课时安排2授课题目分支结构(1)教学目标知识:了解C语句的分类了解程序的三种基本结构能力:掌握分支(选择)结构的使用方法素养:分支语句的可达性,团队合作基础教学重点和难点难点重点:嵌套语句教学方式板书□多媒体音视频□演示□操作□参访□其他:教学过程教学内容师生互动设计教学方法和时间安排课前准备课本38-51页或翁恺MOOC第三章判断(45m)授课内容讲授与指导内容讲课、互动内容设计课时分配流程控制之分支结构本次课的讲授内容:提出了解、熟悉、掌握的内容问题提出程序设计语言最基本的功能是数据的描述和数据处理,数据处理在高级语言中又称为流程控制。流程控制就是表达数据处理过程的一种手段,是程序的控制过程。C语句分类程序的三种基本结构1、流程图流程图是用来描述算法的工具,它使用符号形象直观地表达算法。2、三种基本结构顺序选择(分支)循环分支结构(一)二分支结构形式一:(Single-selectionstatement)流程图执行过程源程序节选形式二:(Double-selectionstatement)流程图执行过程源程序节选(二)多分支结构(Multiple-selectionstatement)形式流程图执行过程源程序节选举例1、求一个数的绝对值(例3-8)2、输入两个数并判断两数是否相等3、判断输入字符种类(三)嵌套的if语句形式举例比较两个数的大小(四)switch语句形式流程图执行过程举例编写一个程序任意输入一个年份和月份,显示该月份的天数。提问:在绪论中我们讲过程序设计语言最基本的功能是什么?教材P8中部的内容流程图课标和教材中均未作要求,只是在讲流程控制时使用了,所以这里简单介绍每一种结构用流程图展示,说明程序流程给出每种分支结构形式,用流程图说明,注意结合流程图讲解每种结构的执行过程每个例题让同学先分析为什么要用分支结构、如何选择合适的分支结构形式,进行互动。最后由教师进行总结。程序的执行过程用流程图说明讲清楚为什么需要嵌套if语句给出四种嵌套的形式重点讲授if与else的配对原则通过实例讲清楚嵌套的if语句流程让同学先行分析,进行互动。最后教师通过流程图讲清楚switch语句的执行过程通过例题分析为何要用分支结构,如何用switch结构编写程序。1分钟1分钟4分钟2分钟5分钟5分钟5分钟5分钟4分钟4分钟4分钟第一节课完10分钟10分钟8分钟12分钟第二节课完课后活动【课后要求】完成OJ系统21道分支结构的10道题目。第5讲授课时间11月23日,第12周周一第5-6节课次1授课类型理论课讨论课□习题课□实验课□其他:课时安排2授课题目分支结构(2)教学目标知识:了解C语句的分类了解程序的三种基本结构能力:掌握分支(选择)结构的使用方法switch结构中case语句的用法素养:程序所有语句均可达,程序完备性,团队合作基础教学重点和难点难点重点:switch语句条件课程思政:软件漏洞和分支不完备覆盖带来的危害教学方式板书□多媒体音视频□演示□操作□参访□其他:教学过程教学内容师生互动设计教学方法和时间安排课前准备【课前要求】课本51-62页或翁恺MOOC第三章分支(45m)授课内容讲授与指导内容讲课、互动内容设计课时分配流程控制之分支结构本次课的讲授内容:提出了解、熟悉、掌握的内容问题提出程序设计语言最基本的功能是数据的描述和数据处理,数据处理在高级语言中又称为流程控制。流程控制就是表达数据处理过程的一种手段,是程序的控制过程。C语句分类程序的三种基本结构1、流程图流程图是用来描述算法的工具,它使用符号形象直观地表达算法。2、三种基本结构顺序选择(分支)循环分支结构(一)二分支结构形式一:(Single-selectionstatement)流程图执行过程源程序节选形式二:(Double-selectionstatement)流程图执行过程源程序节选(二)多分支结构(Multiple-selectionstatement)形式流程图执行过程源程序节选举例1、求一个数的绝对值(例3-8)2、输入两个数并判断两数是否相等3、判断输入字符种类(三)嵌套的if语句形式举例比较两个数的大小(四)switch语句形式流程图执行过程举例编写一个程序任意输入一个年份和月份,显示该月份的天数。提问:在绪论中我们讲过程序设计语言最基本的功能是什么?教材P8中部的内容流程图课标和教材中均未作要求,只是在讲流程控制时使用了,所以这里简单介绍每一种结构用流程图展示,说明程序流程给出每种分支结构形式,用流程图说明,注意结合流程图讲解每种结构的执行过程每个例题让同学先分析为什么要用分支结构、如何选择合适的分支结构形式,进行互动。最后由教师进行总结。程序的执行过程用流程图说明讲清楚为什么需要嵌套if语句给出四种嵌套的形式重点讲授if与else的配对原则通过实例讲清楚嵌套的if语句流程让同学先行分析,进行互动。最后教师通过流程图讲清楚switch语句的执行过程通过例题分析为何要用分支结构,如何用switch结构编写程序。1分钟1分钟4分钟2分钟5分钟5分钟5分钟5分钟4分钟4分钟4分钟第一节课完10分钟10分钟8分钟12分钟第二节课完课后活动【课后要求】完成OJ系统21道分支结构的5道题目。第6讲授课时间11月25日,第12周周三第3-4节课次1授课类型理论课讨论课□习题课□实验课□其他:课时安排2授课题目循环结构(1)教学目标知识:掌握for循环,while循环的用法能力:能够正确写出for循环,while循环语句能够正确写出循环条件表达式素养:避免死循环,增强程序可读性教学重点和难点课堂讨论:循环的边界控制难点重点:循环的执行时机教学方式板书□多媒体音视频□演示□操作□参访□其他:教学过程教学内容师生互动设计教学方法和时间安排课前准备【课前要求】课本65-74页或翁恺MOOC第四章循环(30m)授课内容讲授与指导内容互动设计课时分配流程控制之循环结构本次课的讲授内容:提出了解、熟悉、掌握的内容问题提出在程序设计中循环的概念:在程序中,循环:就是反复做。循环控制结构是指对某些语句反复执行。While语句语句形式:while(条件表达式)循环体流程图执行过程注意事项结合程序讲清楚与循环相关的几个概念:循环变量、循环条件、循环体do-while语句语句形式:do循环体while(条件表达式);流程图执行过程do-while语句与while语句比较for语句语句形式:for(表达式1;表达式2;表达式3)语句(循环体)流程图执行过程循环语句的选择if(循环次数已知) 使用for语句else /*循环次数未知*/ if(循环条件在进入循环时明确) 使用while语句 else/*循环条件需要在循环体中明确*/ 使用do-while语句循环结构的嵌套(多重循环)概念嵌套形式执行顺序举例1+2+3+…+100注意事项提问:在程序设计中为什么要使用循环?互动环节:给大家举一个例子:1-100自然数求和,将算式展开,1+2+3+4+5+6+…..+100,让大家找找规律,总结循环的概念三种循环语句均从语句形式、流程图和执行过程三方面讲解,最后完成1~100自然数之和的程序。设问:三种循环结构在实际中应该如何选择呢?三种循环结构选择的基本原则首先讲清楚什么是多重循环,其次讲明白什么时候需要用到多重循环通过实例讲清楚多重循环的执行过程与顺序以及多重循环设计时的要点这两个辅助循环控制语句从四方面介绍,重点讲清楚什么时候用,怎么用在举例中设问:如果没有break或continue语句,程序的结果会如何?1分钟1分钟4分钟12分钟8分钟12分钟2分钟15分钟20分钟10分钟第二节课完课后活动【课后要求】完成OJ系统39道循环结构的10道题目。第7讲授课时间11月30日,第13周周一第5-6节课次1授课类型理论课讨论课□习题课□实验课□其他:课时安排2授课题目循环结构(2)教学目标知识:掌握三种循环结构(whiledo-whilefor)的使用方法掌握多重循环结构的使用方法掌握辅助循环控制语句(breakcontinue)的使用方法能力:能够正确使用三种循环语句素养:循环条件的可读性和可到达性,团队合作基础教学重点和难点授课内容:结合示例讲解循环使用的技巧和注意事项难点重点:三种循环语句的条件教学方式板书□多媒体音视频□演示□操作□参访□其他:教学过程教学内容师生互动设计教学方法和时间安排课前准备【课前要求】课本76-92页或翁恺MOOC第四章循环应用(45m)授课内容讲授与指导内容互动设计课时分配计数控制的循环【例1】数列求和:1+2+3+……+n【例2】数列求和:1+1/2+1/3+……+1/n【例3】数列求和:1+1/3+1/5+1/7……(前n项)【例4】数列求和:1-1/3+1/5-1/7+1/9……(前n项)【例5】求数列和a+aa+aaa+…(前n项)条件控制的循环【例6】从键盘输入一批学生的成绩,计算总成绩。【例7】字符的分类统计【例8】求π的近似值【例9】计算整数n的位数。C语言解决问题的“局限性”讨论5m5m10m10m10m10m10m10m10m10m课后活动【课后要求】完成OJ系统39道循环结构的5道题目。第8讲授课时间12月2日,第13周周三第3-4节课次1授课类型理论课讨论课□习题课□实验课□其他:课时安排2授课题目循环结构(3)教学目标知识:掌握Break在循环中的使用掌握多重循环能力:能够根据需要终止循环能够判断多种循环的循环次数素养:循环对程序执行效率的影响教学重点和难点授课内容:结合示例循环中break和continue的使用难点重点:break和continue的使用技巧课程思政:死循环、死机和编程效率教学方式板书□多媒体音视频□演示□操作□参访□其他:教学过程教学内容师生互动设计教学方法和时间安排课前准备【课前要求】课本93-102页或翁恺MOOC第四章循环控制和应用(45m)授课内容讲授与指导内容讲课、互动内容设计课时分配流程控制之循环结构本次课的讲授内容:复习上节重点知识判断素数简单的过7游戏嵌套循环练习1练习2练习3练习4百钱买百鸡n钱买n鸡测验补充内容:多实例输入雨课堂测验雨课堂5m10m10m5m5m5m5m15m5m5m20m课后活动【课后要求】完成OJ系统39道循环结构的5道题目。第9讲授课时间12月7日,第14周周一第5-6节课次1授课类型理论课讨论课□习题课□实验课□其他:课时安排2授课题目函数(1)教学目标知识:了解函数的概念掌握函数的定义和调用方法了解变量生命周期、作用域的概念能力:掌握函数调用中参数传递的两种方式掌握全局变量与局部变量的使用方法素养:模块化编程,团队合作基础教学重点和难点授课内容:函数使用的由来;函数定义,实现和调用难点重点:函数的值传递过程教学方式板书□多媒体音视频□演示□操作□参访□其他:教学过程教学内容师生互动设计教学方法和时间安排课前准备【课前要求】课本109-117页或翁恺MOOC第七章函数的定义和使用(40m)授课内容讲授与指导内容讲课、互动内容设计课时分配函数本次课的讲授内容:提出了解、熟悉、掌握的内容函数概述函数是程序的一种组织方式,是C的基本模块。模块化程序设计思想函数的分类函数的定义(FunctionDefinitions)函数定义的一般形式函数返回值类型函数名([形式参数表]){说明部分执行部分}举例编写一个函数,完成比较两个整数并返回大者函数返回值函数声明(FunctionDeclarations)函数的调用(CallingFunctions)主调函数被调函数函数调用的形式实际参数形式参数函数调用的过程举例函数参数的传递方式(一)值传递方式(Callbyvalue)方式:函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值。特点:①形参与实参占用不同的内存单元②单向传递(实参®形参)(二)地址传递方式(callbyreference)方式:函数调用时,将数据的存储地址作为参数传递给形参特点:①形参与实参占用同一存储单元,形参的改变会影响实参②“双向”传递③实参和形参必须是地址常量或变量大家想一想为什么要用这样的组织方式呢?从实际中举两三个实例,总结其中的共同点:分工协作,所以函数正是为了达到分工协作的目的而实行的一种机制这次课简单介绍,随着课程学习的深入,同学们需要认真体会略讲后面重点要讲授自定义函数总结出函数定义四要素:①函数返回值(有还是无;若有,是什么类型)②函数名③函数参数列表(函数需要处理的数据来源)④函数体(函数功能的实现)依据函数定义的四要素来进行讲解,启发同学思考,采用教师设问,同学回答的方式,形成热烈的互动讨论,加深同学的理解,学会函数的定义方法通过例题总结出函数返回值使用时注意的问题首先讲明白为什么要进行函数声明?其次,函数声明的形式函数调用涉及的内容多,通过实例进行讲解,帮助大家理解通过一个实例的讲解使同学理解函数调用结束后,形参消失,它所占的内存释放这个概念,通过另一个实例的讲解,使同学理解值传递的方式不能实现交换数据的功能通过实例讲明白形参的改变会影响实参,数组作函数参数时的使用规则1分钟6分钟3分钟5分钟6分钟5分钟9分钟5分钟5分钟10分钟5分钟10分钟20分钟课后活动【课后要求】完成OJ系统函数部分的5道题目。第10讲授课时间12月9日,第14周周三第3-4节课次1授课类型理论课讨论课□习题课□实验课□其他:课时安排2授课题目函数(2)教学目标知识:了解变量生命周期、作用域的概念掌握函数嵌套调用的方法掌握函数递归调用的使用方法能力:掌握函数调用中参数传递的两种方式掌握全局变量与局部变量的使用方法素养:模块化编程,团队合作基础教学重点和难点授课内容:变量的范围;全局和局部变量;递归调用难点重点:递归函数课程思政:团队合作的意义教学方式板书□多媒体音视频□演示□操作□参访□其他:教学过程教学内容师生互动设计教学方法和时间安排课前准备【课前要求】课本118-129页或翁恺MOOC第七章函数的参数和变量(40m)授课内容讲授与指导内容讲课、互动内容设计课时分配函数本次课的讲授内容:提出了解、熟悉、掌握的内容复习函数的调用过程变量的存储属性(StorageClasses)作用域生命周期变量的存储属性局部变量与全局变量举例动态变量与静态变量举例内部函数与外部函数函数的嵌套调用嵌套调用指在调用一个函数的过程中又调用了另一个函数。C语言规定:函数不可以嵌套定义,但可以嵌套调用函数函数的递归调用(Recursion)定义:函数直接或间接的调用自身叫函数的递归调用函数与程序结构(多文件结构)需要同学掌握的是三文件结构三个文件结构:即在一个工程文件中包含三个文件:文件一:函数的声明文件(如:a.h)文件二:函数实现文件(如:a.cpp)必须含有#include"a.h"文件三:主文件(包含main函数的文件,一般调用其它函数)必须含有#include"a.h"这部分内容概念很多,通过画内存示意图和举例进行讲解,帮助同学理解通过举例讲明白函数的嵌套调用过程举例讲明白函数递归调用的过程,总结函数递归调用的步骤通过实例教会同学如何建立三文件结构及每个文件应如何设计1分钟4分钟10分钟10分钟10分钟10分钟10分钟10分钟25分钟课后活动【课后要求】完成OJ系统函数部分的5道题目。第11讲授课时间12月14日,第15周周一第5-6节课次2授课类型理论课讨论课□习题课□实验课□其他:课时安排2授课题目数组(1)教学目标知识:了解数组的概念掌握数组的定义方法能力:掌握一维数组的使用方法素养:避免数据越界,团队合作基础教学重点和难点授课内容:示例讲解一维数组;函数作为参数的示例讲解难点重点:函数作为参数教学方式板书□多媒体音视频□演示□操作□参访□其他:教学过程教学内容师生互动设计教学方法和时间安排课前准备【课前要求】课本132-150页或翁恺MOOC第八章数组(25m)授课内容讲授与指导内容讲课、互动内容设计课时分配数组之一维、二维数组本次课的讲授内容:提出了解、熟悉、掌握的内容问题提出如何完成100个数按从大到小的顺序排列?如何实现下列数之和?78+89+82+90+66+85+76+62+80数组的概念一维数组(Onedimensionarrays)(一)一维数组的定义定义形式注意事项总结:定义数组的三要素:数据类型、数组名、数组长度(二)数组的初始化(三)一维数组的引用举例1.有10个整数,找出其中最大值2.已知某班20人的英语成绩,求该班英语平均成绩3.冒泡排序(bubblesortorsinkingsort)排序的概念冒泡排序的过程4.选择排序(Selectionsort)选择排序过程二维数组(Twodimensionarrays)(一)二维数组的定义定义形式如何理解二维数组(二)二维数组的初始化(三)二维数组的引用举例将数据存入二维表格中,求各行各列及所有数据之和。提这两个问题启发学生思考,总结出用现有的手段无法达到目的,怎么办?通过列举实例来引出数组的概念数组这部分要画出内存示意图,帮助同学理解连续分配内存空间的概念先讲明白为什么要用数组来组织数据,再介绍这类求最值常用的技巧。这道题实际上是回应引言中的第二个问题,让大家进一步体会为什么要用数组来组织数据以及如何来访问数据这是本次课的一个难点内容,也是要求同学掌握的一个算法。这也是同学必须掌握的一个算法,与冒泡排序算法进行比对二维数组实际就是一张表格,所以存在行列的概念,但内存是一维的,二维数组中的数据是按行存放的,画出内存示意图,帮助同学理解二维数组数据的存放启发同学分析如何组织数据以及如何访问数据,让同学归纳出在二维数组中各行、各列、所有数据的访问方法。1分钟4分钟3分钟8分钟3分钟3分钟4分钟3分钟11分钟第一节课完14分钟8分钟4分钟4分钟10分钟第二节课完课后活动【课后要求】完成OJ系统函数部分的5道题目。第12讲授课时间12月16日,第15周周三第3-4节课次2授课类型理论课讨论课□习题课□实验课□其他:课时安排2授课题目数组(2)教学目标知识:掌握二维数组定义掌握二维数组的存储方式了解多维数组的定义能力:能够定义二维数组能够遍历二维数组素养:变量定义的可读性,团队合作基础教学重点和难点授课内容:二维数组;二维数组示例;矩阵和二维数组难点重点:二维数组的存储格式教学方式板书□多媒体音视频□演示□操作□参访□其他:教学过程教学内容师生互动设计教学方法和时间安排课前准备【课前要求】课本151-159页或翁恺MOOC第八章数组运算(40m)授课内容讲授与指导内容讲课、互动内容设计课时分配数组之一维、二维数组本次课的讲授内容:提出了解、熟悉、掌握的内容一维数组回顾二维数组(Twodimensionarrays)(一)二维数组的定义来源定义形式(二)二维数组的初始化(三)二维数组的引用举例将数据存入二维表格中,求各行各列及所有数据之和。二维数组数据的保存二维数组数据的遍历二维数组数据的打印矩阵和二维数组的操作的举例矩阵转置二维数组实际就是一张表格,所以存在行列的概念,但内存是一维的,二维数组中的数据是按行存放的,画出内存示意图,帮助同学理解二维数组数据的存放启发同学分析如何组织数据以及如何访问数据,让同学归纳出在二维数组中各行、各列、所有数据的访问方法。5分钟5分钟5分钟5分钟10分钟10分钟5分钟5分钟5分钟5分钟10分钟10分钟课后活动【课后要求】完成OJ系统数组部分的5道题目。第13讲授课时间12月21日,第16周周一第5-6节课次1授课类型理论课讨论课□习题课□实验课□其他:课时安排2授课题目字符数组与字符串教学目标知识:了解字符串数组的用途掌握字符数组的定义与使用方法能力:能够定义字符串变量能够区分字符和字符串素养:避免使用字符数据边界越界造成的程序崩溃教学重点和难点授课内容:字符串的定义和使用;常用字符串函数课堂讨论:字符串函数定义的必要性难点重点:字符串和字符的区别;字符串的常用函数功能教学方式板书□多媒体音视频□演示□操作□参访□其他:教学过程教学内容师生互动设计教学方法和时间安排课前准备【课前要求】课本163-184页或翁恺MOOC第十章字符串(40m)授课内容讲授与指导内容讲课、互动内容设计课时分配数组之字符数组本次课的讲授内容:提出了解、熟悉、掌握的内容问题提出为什么专门要讲字符数组?它有什么特别之处吗?字符数组(一)字符数组的定义、初始化、引用(二)字符串举例字符串处理函数1、字符串输出函数puts格式:puts(字符数组)功能:向显示器输出字符串2、字符串输入函数gets格式:gets(字符数组)功能:从键盘输入一个以回车结束的字符串放入字符数组中,并自动加‘\0’3、字符串连接函数strcat格式:strcat(字符数组1,字符数组2)功能:把字符数组2连到字符数组1后面4、字符串拷贝函数strcpy格式:strcpy(字符数组1,字符串2)功能:将字符串2,拷贝到字符数组1中去举例5、字符串比较函数strcmp格式:strcmp(字符串1,字符串2)功能:比较两个字符串比较规则:对两串从左向右逐个字符比较(ASCII码),到遇到不同字符或‘\0’为止返值:返回int型整数,a.若字符串1<字符串2,返回负整数b.若字符串1>字符串2,返回正整数c.若字符串1==字符串2,返回零说明:字符串比较不能用“==”,必须用strcmp6、字符串长度函数strlen格式:strlen(字符数组)功能:计算字符串长度返值:返回字符串实际长度,不包括‘\0’在内举例提这两个问题启发学生思考,产生联想。讲出与一维、二维数组的异同这是一类特殊的数据,讲出它的特殊性还要讲出字符串输入/输出的特点由同学进行讨论,最后给出结果对于函数的学习需要把握函数功能、函数调用的形式、函数参数这几个方面,以下均按这种方式进行介绍,反复强调函数的参数是数组名,数组中存放的是字符串而不是字符通过实例让同学体会在实际中如何使用字符串处理函数注意分析程序设计过程、结果这个函数是重点和难点,演示字符串比较的过程,解释比较结果的含义1分钟5分钟10分钟15分钟9分钟第一节课完3分钟4分钟5分钟5分钟5分钟8分钟2分钟8分钟第二节课完课后活动【课后要求】完成OJ系统字符串部分的5道题目。第14讲授课时间12月23日,第16周周三第3-4节课次1授课类型理论课讨论课□习题课□实验课□其他:课时安排2授课题目指针(1)教学目标知识:了解变量、单元内容、内存地址的概念能力:掌握指针变量的定义与使用方法掌握指针作函数参数的用法素养:避免内存非法访问遇到困难要迎难而上教学重点和难点授课内容:指针的定义和使用;基本运算;指针作为参数使用难点重点:指针变量和内存的关系课堂讨论:指针变量的必要性课程思政:指针和软件破解教学方式板书□多媒体音视频□演示□操作□参访□其他:教学过程教学内容师生互动设计教学方法和时间安排课前准备【课前要求】课本187-192页或翁恺MOOC第九章指针(50m)授课内容讲授与指导内容讲课、互动内容设计课时分配指针本次课的讲授内容:提出了解、熟悉、掌握的内容指针的概念(PointerConcepts)变量与地址(VariableanditsAddress)指针与指针变量(PointerandPointerVariable)指针:是指一个变量的地址。指针变量:专门存放变量地址的变量叫指针变量。直接访问与间接访问(DirectionandIndirection)直接访问:通过引用变量来存取变量值间接访问:通过引用变量的地址来访问变量值指针变量的定义(Pointervariabledefinitions)一般形式:[存储类型]数据类型*指针名;指针变量的初始化(PointervariableInitializtion)一般形式:[存储类型]数据类型*指针名=初始地址值;指针运算符(PointerOperators)*&指针赋值运算零指针与空指针指针变量作函数参数(CallingFunctionsbyReference)指针变量作为函数参数——地址传递特点:共享内存,“双向”传递引用调用中,在函数定义时,将指针作为函数的参数,在函数调用时,把变量的地址作为实参。例将数从大到小输出通过指针实现函数调用返回多个值例输入年和天数,输出对应的年、月、日。例如:输入2000和61,输出2000-3-1。指针这章的概念比较抽象,画出内存示意图,讲清楚变量和地址的概念,让同学理解以前对数据的访问是通过变量而现在是通过地址间接访问注意指针变量的定义与普通变量定义的区别讲清楚指针初始化的注意事项,一定赋的是地址,通过实例来进一步说明举例说明和解释讲清楚这两种指针的概念和用途这部分是本次课的重点与难点,先讲明白指针作函数参数的规则,再通过实例帮助大家分析指针作函数参数的过程,加强同学的理解用几种类型的数据分别对函数进行调用,查看运行结果,体会其中的不同点,引导学生进行分析与思考复习函数定义的四要素和返回值的约定,引导同学对问题进行分析,找到求解的方法1分钟4分钟6分钟5分钟5分钟8分钟10分钟5分钟第一节课完5分钟20分钟15分钟第二节课完课后活动【课后要求】完成OJ系统指针部分的4道题目。第15讲授课时间12月28日,第17周周一第5-6节课次1授课类型理论课讨论课□习题课□实验课□其他:课时安排2授课题目指针(2)教学目标知识:了解指针与数组的关系了解动态分配内存的方法能力:掌握数组名作函数参数的实质掌握字符指针的使用方法素养:指针访问效率与编程难度的矛盾和解决办法学习指针,克服困难的决心和意志教学重点和难点授课内容:指针和数组的关系和相互操作;指针作为函数参数传递的意义和注意事项难点重点:指针和数组的相互操作;指针作为参数传递的内涵教学方式板书□多媒体音视频□演示□操作□参访□其他:教学过程教学内容师生互动设计教学方法和时间安排课前准备【课前要求】课本193-206页或翁恺MOOC第九章指针运算(45m)授课内容讲授与指导内容讲课、互动内容设计课时分配指针本次课的讲授内容:提出了解、熟悉、掌握的内容指针与数组(PointerandArray)数组名是表示数组首地址的地址常量,在访问内存方面,指针和数组几乎是相同的。数组元素表示方法下标法:数组名[下标]②指针法举例指针变量的算术运算指针变量的关系运算指针的前置与后置运算指针运算举例数组名作为函数的参数(一)数组元素作函数参数数组元素作为函数实参时,函数形参为变量与变量作为函数实参相同,值传递(二)数组名作函数参数由于数组名是指针常量,相当于指针作为函数的参数是地址传递例将数组a中的n个整数按相反顺序存放冒泡排序:指针与字符串(PointerandString)(一)字符串常量用一对双引号括起来的字符序列,被看做一个特殊的一维字符数组,在内存中连续存放,实质上是一个指向该字符串首字符的指针常量。(二)字符指针变量与字符数组(三)字符指针作函数参数用指针实现内存动态分配讲清楚指针和数组的关系,引出数组元素的另一种引用方法:指针法画出内存示意图进行讲解指针只能作加减运算,讲清楚指针算术运算的含义指针可以进行比较运算,讲清楚指针关系运算的含义与变量的前置后置运算进行比较学习,注意区分地址的增减与地址中所放内容的增减通过举例阐述数组元素作函数参数的实质是值传递通过实例阐述数组名作函数参数是地址传递,由此总结出实参与形参分别是数组名或指针的四种组合方式,并列举实例进行说明,加强同学理解这是复习前面学过的冒泡排序算法,只不过交换数据的功能写成函数这是第三次提到字符串常量,而且一次比一次深入,这次从指针的角度来考查字符串字符串与字符数组、指针与数组、字符指针与字符数组这些概念相互关联,需要联系以前学过的内容,对比着学习。完全和指针作函数参数的使用方法一致,可以联系字符数组作函数参数的内容对比学习,举例中便是将这两种方式对比学习的主要介绍三个动态分配内存的函数,大家会调用即可1分钟3分钟3分钟3分钟5分钟5分钟8分钟6分钟6分钟第一节课完3分钟10分钟8分钟2分钟4分钟6分钟7分钟第二节课完课后活动【课后要求】完成OJ系统指针部分的3道题目。第16讲授课时间12月30日,第17周周三第3-4节课次1授课类型理论课讨论课□习题课□实验课□其他:课时安排2授课题目指针(2)教学目标知识:了解指针数组的概念了解命令行参数能力:掌握指针的指针的定义与使用方法掌握指针的指针的用法素养:体会指向指针的指针的意义和目的教学重点和难点授课内容:指针与字符串;内存的动态分配;常用的字符串函数和指针的关联难点重点:字符串和指针的关联教学方式板书□多媒体音视频□演示□操作□参访□其他:教学过程教学内容师生互动设计教学方法和时间安排课前准备【课前要求】课本207-215页或翁恺MOOC第十章字符串函数(45m)授课内容讲授与指导内容讲课、互动内容设计课时分配结构本次课的讲授内容:提出了解、熟悉、掌握的内容指针数组(ArraysofPointers)(一)指针数组的概念(二)指针数组的定义(三)指针数组赋值与初始化(四)指针数组的操作例已知一个不透明的布袋里装有红、蓝、黄、绿、紫同样大小的圆球各一个,现从中一次抓出两个,问可能抓到的是什么颜色的球?指向指针的指针用指针数组处理多个字符串(一)二维数组与指针数组区别(二)处理多个字符串(三)指针数组作为函数参数——地址传递(四)用动态分配内存的方法处理多个字符串的输入(五)二级指针与指针数组的关系命令行参数这是本次课的重点和难点内容首先讲清楚什么是指针数组,它有什么用途其次,讲明白如何使用重点讲授如何使用指针数组处理字符串通过综合举例启发大家分析如何解题。首先,我们拿到这个题目,人是如何解的,把人的解题过程转换成计算机解题,用C语言的形式如何实现,在课堂上展开讨论,激发大家的兴趣,活跃课堂气氛这就是所谓的二级指针,首先回顾一级指针,再介绍二级指针,对比学习,最后举例说明第一节课的例题是一次小热身,这节课就指针数组处理字符串从四个方面作深入讨论,最后总结二级指针与指针数组的关系结合实例进行讲授,与大家讨论,形成互动局面讲清楚命令行参数的含义,使用方法1分钟4分钟3分钟4分钟6分钟10分钟12分钟第一节课完2分钟8分钟12分钟10分钟3分钟5分钟第二节课完课后活动【课后要求】完成OJ系统指针部分的3道题目。第17讲授课时间1月4日,第18周周一第5-6节课次1授课类型理论课讨论课□习题课□实验课□其他:课时安排2授课题目结构(1)教学目标知识:了解结构类型的声明方式能力:掌握结构变量和结构数组的定义与使用方法掌握结构作函数参数的用法素养:编程技巧和能力累积效应教学重点和难点授课内容:结构体的定义;结构体变量的定义和使用;结构体数组的定义和使用难点重点:结构体的内存表达;结构体和数组的区别教学方式板书□多媒体音视频□演示□操作□参访□其他:教学过程教学内容师生互动设计教学方法和时间安排课前准备【课前要求】课本219-235页或翁恺MOOC第十一章结构(40m)授课内容讲授与指导内容讲课、互动内容设计课时分配结构本次课的讲授内容:提出了解、熟悉、掌握的内容问题提出结构类型的声明(StructuresDeclaration)声明形式:struct[结构名]{类型标识符成员名;类型标识符成员名;…………….};定义结构变量(StructuresDefinition)结构变量的引用结构变量的初始化结构数组(一)结构数组的定义(二)结构数组的初始化(三)结构数组的引用例:有若干名学生信息(包括学号、姓名、成绩),请按成绩由高到低排序。指向结构变量的指针定义形式:struct结构名*结构指针名;引用方式结构作函数参数①结构成员作函数参数将一个结构变量的成员传递给一个函数,实质上是将这个成员的值传递给该函数。举例②结构变量作函数参数当结构为参数传递给函数时,将整个结构的副本传递给函数,实质上也是传递值,但要注意:形参的类型必须与实参类型一致,即形参结构与实参结构来源于同一结构类型。举例③结构指针作函数参数传递结构是将整个结构值都复制到形参中去,增加了传递时间和存储空间的开销。传递结构指针,实参和形参指向同一内存空间,而不是值的复制。举例综合实例输入10个学生的学号、姓名和成绩,输出学生的成绩等级和不及格人数。每个学生的记录包括学号、姓名、成绩和等级。要求定义和调用函数set_grade根据学生成绩设置等级,并统计不及格人数等级设置:A:85-100;B:70-84;C:60-69;D:0-59用typedef定义类型通过实例引出为什么要使用结构类型结构类型的使用过程是先声明结构类型再定义结构变量,定义的形式有三种,分别讲授需要强调的是声明结构类型不分配内存空间,只有定义结构变量时才分配内存空间先讲结构变量的引用规则再举实例结合结构变量定义的三种形式进行讲授按照结构变量定义的三种形式进行教授分分行初始化和顺序初始化两个方面讲授参照结构变量的引用方式通过这个例子将前面学到的知识贯穿起来,用结构数组来组织数据,用冒泡或选择排序法,交换的是结构数组中的某个元素(即整个结构)而不是结构中的某个成员,也就是前面讲过的结构相互赋值的问题注重问题的分析过程,启发大家体会结构的用法结构作函数参数是难点内容,需要联系前面函数一章的知识,又要用到指针的知识、结构的知识。分三个方面来介绍,先介绍每种情况传递参数的过程,再通过实例进行解释。启发大家运用学过的知识来完成1分钟4分钟5分钟8分钟10分钟6分钟6分钟第一节课完3分钟2分钟8分钟4分钟2分钟3分钟2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度智能Excel合同管理模板许可使用合同3篇
- 快递市场调研租赁合同
- 团购合作合同范本
- 矿山测量全站仪租用合同
- 节庆用品租赁终止合同
- 2025年度网络安全等级保护体系建设总承包合同3篇
- 跨境电商项目投资承诺书范文
- 员工餐厅食品采购标准
- 电子产品质量管理办法
- 股权收购承诺书
- 高考语文模拟试题及参考答案
- 水利工程中的堤防与护岸工程考核试卷
- 培训班与幼儿园合作方案
- 皮肤管理培训资料
- 全国职业院校技能大赛赛项规程(中职)电子电路装调与应用
- 企业安全生产风险管控与隐患治理双重预防机制效能评估规范DB41-T 2292-2022
- 公交公司春运春节安全生产方案
- 2024年大学生就业创业知识竞赛题库及答案(共200题)
- GB/T 15822.2-2024无损检测磁粉检测第2部分:检测介质
- 四川省泸州市(2024年-2025年小学四年级语文)人教版期末考试(上学期)试卷及答案
- 换床位(2023年四川自贡中考语文试卷记叙文阅读题及答案)
评论
0/150
提交评论