C语言案例教程教学指南.doc_第1页
C语言案例教程教学指南.doc_第2页
C语言案例教程教学指南.doc_第3页
C语言案例教程教学指南.doc_第4页
C语言案例教程教学指南.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

C语言案例教程(第2版)教学指南一 本书的定位和任务 本书是中学生学习C语言程序设计的入门教材。它的主要任务是:培养学生关于程序设计的学习兴趣与逻辑思维和人文素养,使学生基本掌握C语言程序设计的基本知识和基本方法,为他们计算机程序设计的进一步学习和终身学习打下基础。二 本书的教学目标 本书的教学目标是:牢固掌握C语言中各种变量、各种数组的定义和使用;牢固掌握C程序中数据的输入和输出;熟练使用顺序结构、选择结构、循环结构和函数模块建构程序;了解指针和结构体的简单应用;能阅读和调试一般的C语言程序。三 本书的特色本书的主要特色是把C语言编程的基础知识以案例形式进行组织和展开。案例设计中尽可能地考虑了教材面向中学生应该具备的趣味性、实训性和思想性。案例实训以学生的学习兴趣为源动力,借此逐步推进学习进程的深入浅出。本书做到了案例大而不难,语法精而不漏,这对提高学生程序设计的兴趣和综合素质有重要作用。四 本书源程序的调试与运行环境:1 操作系统:dos6.0/windows 98/2000/xp2 编译平台:UCDOS98+TC2.0五 教学课时安排章序内容讲授课时上机课时合计课时1编程拉练:移动的金字塔65112C语言基础4593运算符与表达式4594顺序结构程序设计2135选择结构64106循环结构84127数组66128函数6399编程实训:俄罗斯方块4141810C语言的高级特性741111编程阅读:演玩汉诺塔000合计5151102说明:第11章作为学生阅读内容,不讲授。六 各章节内容和建议第1章 编程拉练:移动的金字塔教学内容:仅输出一个点的C语言程序主函数main()的专用名及基本结构,主函数的特点和性质 字符输出函数putchar()的使用格式和功能UCDOS的启动、TC2.0的启动TC集成环境下C程序的编辑、保存、运行和观察结果清屏函数clrscr()的使用格式和功能for语句的基本格式和作用光标定位函数gotoxy()的使用格式和作用双重for循环的构成要领三重for循环的构成要领延时函数delay()的使用格式和功能快捷键(F2、F3、Ctrl+F9、Alt+F5、F8、Alt+X )的使用教学重点:C语言程序的基本结构 C语言程序的上机运行步骤教学难点:for语句的一般格式和执行流程 双重循环的构成 三重循环的构成教学建议:本章的开场白安排为学生自学; 1.1 从画一个*号起步本小节共用2课时。内容主要是有2个例题和2个说明。有条件的可先用一节课在投影室边讲边演示,第二节课学生再在机房上机验证。要求学生必须掌握UCDOS的启动和TC2.0的启动,了解TC2.0中的菜单操作;掌握F2、Ctrl+F9、Alt+F5等快捷键操作;从例题例1.01的运行结果来掌握字符输出函数putchar()使用格式和作用。本节要点: (1)C程序的基本样式 #include”stdio.h” main() 语句组 (2)大括号中的“语句组”系伪代码,只能用来分析讨论,不能作为C语句; (3)主函数的一般形式 main() 语句组 (4) 3种键盘字符的作用: # 预处理命令的标志 ()函数的标记 ; 语句的结束标志 (4)字符输出函数putchar()的使用格式和功能;(5)UCDOS的启动、TC2.0的启动;(6)进入编辑窗口:F10(激活主菜单)“File”“New”;(6)TC集成环境下C程序的编辑、保存、运行和结果观察; (7)快捷键(F2、F3、Ctrl+F9、Alt+F5、F8、 Alt+X)的使用。1.2画点成线1.3画线成形这两个案例共用2课时先用1课时上机验证例1.02、例1.03,然后再用1课时讲解两源程序,重点是一重循环,并要要求学生通过看书尽可能了解for语句的执行过程。本节要点: (1)循环变量的定义和使用;(2)for语句的组成: 循环头 for(式子1;式子2;式子3) 循环体 语句组 (3) 上面式子1、式子2、式子3也都是伪代码,编程时必须换为真代码;(4)for循环(语句)的循环规则: A:执行式子1(一般是给循环变量赋初值); B:测试式子2,式子2成立转C,否则转E; C:执行循环体中的语句组; D:返回循环头先执行式子3(一般是循环变量增1),再转B; E:退出整个循环结构。 (4)借题发挥:让学生把例1.03循环中的“x=7”,改为“x=30000”,然后运行程序并观察运行结果,以此欣赏循环的威力。 (5)双重循环的嵌套规则: for(式子1;式子2;式子3) for(式子1;式子2;式子3) 1.4学会定位光标1.5画出金字塔这两个案例共用2课时,也是先用1课时上机验证相应的的两个案例例题例1.05、例1.06,然后再用1课时讲解两源程序,重点是光标定位函数的作用,难点是gotoxy()函数中的列参数的运算形式和效能。本节要点: (1)光标定位函数的格式和作用; (2)外循环控制变量的三个作用: A:控制了外循环的循环次数; B:实现了行列参数的有控变化; C:间接控制了每轮内循环的循环次数。1.6让金字塔匀速向右移动1.7让金字塔沿方圈移动这两个案例同样先用1课时上机验证例1.07、例1.08,然后再用1课时讲解两源程序,重点讲向右移动的源程序,其难点仍是gotoxy()函数中的列参数表达式,要向学生分别说明变量y和u的不同作用,掌握延时函数delay()的作用。这两节要点: (1)三重循环的嵌套规则: for() for() for() (2) 外层、中层、内层各循环变量的控制作用: A:外层循环变量的作用是使金字塔产生移动的效果; B:中层、内层两循环变量的作用是产生金字塔,其中中层循环变量是控制金字塔的行数,内层循环变量是控制每行星号的个数。 1.8探究程序的执行流程本节2课时。第1课时先由教师在投影室演示例1.09案例并按行号写出执行流程,然后第2课时由学生上机完成例1.10案例。本节要点: 把循环头拆分成三行,用单步运行时的待执行行亮条,来指示程序的执行流程,从而分析循环的执行规则。 本章要点:把画点程序扩充成移动的金字塔程序的三大步骤:(1) 用一循环把画点的字符输出语句扩充成画线(成为一重循环);(2) 又用一循环把画线的循环扩充成画塔(成为二重循环);(3) 再用一循环把画塔的二重循环扩充成移动的金字塔(成为三重循环)。第2章 C语言基础教学内容:C语言的元字符集、标识符的作用和组成规则 关键字和语句的概念 C程序的组成、C函数的基本结构 C语言的数据类型展开图 常量和变量的概念 整型常量的三种表现形式 变量定义的一般形式int变量、 unsigned变量的存贮字节数和数的表示范围实型常量的两种表示形式 float变量、double变量的存贮字节数和数的表示范围 字符常量的表示形式、转义字符的表示形式 字符变量的存贮字节数 字符串常量的表示形式、存贮形式 自动数据类型转换的一般规则、强制类型转换的一般形式 格式输出函数print()的一般形式、作用 常用格式符的含义 格式输入函数scanf()的一般形式、作用 变量的地址运算符 常用转义字符的作用 字符输出函数putchar()的一般形式、作用 字符输入函数getchar()的一般形式、作用 无回显的字符输入函数getch()的一般形式、作用 快捷键F7与F8的异同点教学重点:标识符的组成规则和作用C函数的一般形式 变量定义语句的一般形式 整型变量的定义和引用 格式输出函数printf()和格式输入函数scanf() 常用格式符的含义 常用的转义字符教学难点:常用格式符的含义 格式输入函数scanf()的正确使用教学建议:2.1 C语言的元字符和标识符2.2 C语言的关键字和语句2.3 C源程序结构这3小节用2课时完成。要安排学生在上课前预习好前两小节的内容。第1课时先将2.3节中的例2.01上机验证结果,且分别用F7、F8功能键将例2.01源程序跟踪运行一周、单步运行一周,对比两功能键的异同点;然后再用第2课时讲述这3节的理论知识。这三节中的要点: (1)标识符的组成规则; (2)C程序的组成: C程序主要由C函数组成,其中必须有一个且仅能有一个名为main的主函数; (3)C函数的组成: C函数由函数头和函数体组成; (4)函数体的组成:函数体由作为其起止标志的大括号对和这对大括号中的C语句组组成。 2.4 C语言的基本数据类型2.5 常量和变量2.6 整型数据这3小节也用2课时完成。要安排学生在上课前预习好前两小节的内容。第1课时先将2.6节中的例2.02和例2.03上机验证结果;然后再用第2课时讲述这3小节的理论知识,重点讲运行结果分析。这三节中的要点: (1)常量和变量的概念; (2)整型常量的三种表示方法; (3)变量定义的一般格式; (4)变量必须“先定义后使用”; (5)整型变量占2个字节,数的表示范围为-3276832767。2.7实型数据本节用1课时,可在机房上机完成例2.04的验证。本节中的要点: (1)实型常量的两种表示形式; (2)两种实型变量的存贮字节数和数的表示范围。2.8 字符型数据本小节用2课时完成:先用1课时上机验证例2.05、例2.06、例2.07这3个例题,第2课时再分析三个例题的运行结果和相关知识。本节中的要点: (1)字符常量的表示方法; (2)转义字符n和 t的含义; (3)字符变量的定义和使用; (4)字符串常量的表示和存贮格式。2.9 数据类型转换这一小节安排为自学内容,不计课时。2.10 数据的输入和输出这一小节用3课时。第1课时上机验证例2.08和例2.09。第2课时重点讲述格式输出函数的一般形式和作用,常用格式符(d、f、c、s、u)的作用;格式输入函数的一般形式和作用;变量地址的表示方法。第3课时上机验证例2.10、例2.11、例2.12,对比分析getchar()和getch()这两个字符输入函数的异同点。 本节中的要点: (1)常用格式符(d、f、c、s、u)的含义; (2)格式输出函数printf()的一般形式; (3)格式输入函数scanf()的一般形式; (4)变量的取地址运算符&。第3章 运算符与表达式教学内容:六种算术运算符和相应的运算法则 基本赋值运算的作用、赋值表达式值的规定 各复合赋值运算符的含义、自增运算符、自减运算符 赋值表达式的运算 自增表达式的运算(含前缀、后缀)自减表达式的运算(含前缀、后缀) 6个关系运算符及其优先级、关系运算的结果表示 3个逻辑运算符及其对应运算法则、逻辑运算的结果表示逻辑表达式、逻辑运算符的优先级数字字符的表达式英文大写字符的表达式、英文小写字符的表达式、英文字符的表达式闰年的表达式 逗号运算符与逗号表达式 运算符的优先级和结合性教学重点:赋值运算符和复合赋值运算符 关系运算 逻辑运算 逗号运算 运算符的优先级和结合性本章难点:自增自减的后缀形式运算符的结合性教学建议:3.1 算术运算符与算术表达式本节用1课时,即上机验证例3.01、例3.02,对例3.02要结合运行结果理解教材对该运行结果的相应分析。本节要点: (1)整数除法运算的商为整数,小数部分全部舍弃; (2)进行模运算的两数都应为整数。3.2 赋值运算符与赋值表达式本节用2课时,学生上课前完成预习,第1课时用教学课件来演示例3.03、例3.04、例3.05,并通过教学课件来实现师生的互动。第2课时学生再上机重新验证这三个例题。本节要点: (1)赋值运算符的左边只能是一个变量名; (2)赋值号右边表达式的数据类型,与赋值号左边的变量的数据类型不一致时,将自动转化成左边的类型予以赋值。3.3 关系运算符与关系表达式本节用1课时,学生在上机前完成预习,用这1课时来上机验证例3.06、例3.07本节要点: (1)6个关系运算符按优先级分为了两组 较高组:、= 较低组:=、!= (2)关系运算符的优先级低于算术运算符; (3)关系运算所得到的逻辑值“真”或“假”分别用数值1或0来表示; (4)在C语言中,对字符串不能进行关系运算,字符串的大小比较是用库函数来完成。3.4 逻辑运算符与逻辑表达式本小节用4课时。课前学生应完成关于逻辑运算符的运算规则预习。第1 课时用课件演示例3.08、例3.09的运行过程,可在师生互动中探讨和答疑,第2课时学生再上机验证;第3课时用课件演示例3.10、例3.11、例3.12的运行过程,第4课时学生上机验证。本节要点: (1)三种逻辑运算的运算规则; (2)逻辑运算所得逻辑值“真”或“假”分别用数值1或0来表示; (3)逻辑运算符的优先级: “非”高于“与”,“与”高于“或”; “非”高于算术运算,“与”和“或”低于关系运算; (4)数字字符的表达式; (5)英文字符的表达式; (6)闰年的表达式。3.5 逗号运算符与逗号表达式3.6 运算符的优先级和结合性这两节共用1课时。讲授,结合性是难点。这两节中的要点: (1)逗号运算符的优先级(最低);(2)逗号表达式值的规定; (3)讨论结合性的时机: 仅当一个运算量两侧的运算符优先级相同时,才可谈结合性; (4)左结合的运算规则: 先用两个运算符中左边的那一个对对象进行运算; (5)右结合的运算规则:先用两个运算符中右边的那一个对对象进行运算;第4章 顺序结构程序设计教学内容:C语句的分类 算法的概念 算法的流程图表示 程序的三种基本结构 交换两个变量值的算法教学重点:算法的概念教学难点:算法的流程图表教学建议: 4.1 C语句的分类 安排学生自学,不占课时。 本节要点: 说明语句、空语句、复合语句的概念。 4.2 算法的概念 4.3 算法的流程图表示 这两小节共用1课时。讲授。 这两节中的要点: (1)算法的概念; (2)流程图的有关符号; 4.4 程序的三种基本结构 本节安排学生自学,不占课时。 本节中的要点:三种基本结构的流程图表示。 4.5 顺序结构程序设计示例 本节用2课时。第1课时用课件演示例4.05、例4.06的运行过程,第2 课时再上机验证。 本节中的要点: (1)借助中间变量,交换两个变量值的算法; (2)借助平方根函数,写出一元二次方程求根公式的C语言表达式; (3)针对求根公式的C语言表达式,归纳把数学表达式改写成C语言表达式的注意事项。第5章 选择结构教学内容:if语句 if else语句if else if语句 else与if的配对规则带break的switch语句 不带break的switch语句 选择结构的嵌套 教学重点:If语句的执行规则if else语句的执行规则if else if 语句的执行流程switch 语句的执行流程break语句的作用教学难点:else与if的配对规则 if else if的执行流程教学建议: 5.1 if语句 本节用2课时,第1课时要先对学生讲解关于if语句的一般形式、流程图和执行规则,再用课件演示例5.01和例5.02,第2课时学生上机验证这两例题。 本节要点: if语句的一般形式、流程图和执行规则。 5.2 if else语句 本节用2课时。第1课时要先对学生讲解关于if else语句的一般形式、流程图和执行规则,再用课件演示例5.03,第2课时学生除上机验证和分析例5.03外,还要上机运行例5.04,即为下一节课作上机预习。本节要点: if else语句的一般形式、流程图和执行规则。5.3 if else if语句本小节用2课时。第1课时要先对学生讲解关于if else if语句的一般形式、流程图和执行规则,再用课件演示例5.04和例5.05,第2课时上机验证这两个例题。本节中的要点:if else if语句的一般形式、流程图和执行规则。5.4 switch语句本节用2课时。第1课时要先对学生讲解关于switch语句的一般形式、两种形式的流程图和执行规则,再用课件演示例5.06,第2课时学生上机验证和分析例5.06和例5.07。本节中的要点: switch语句的执行规则:从多个case常量表达式中找出与switch表达式相匹配的一个来作为入口,无一匹配者时以default为入口。没有入口就结束整个switch结构。有入口就从入口进入而执行其后的语句。若其后的语句中含有break,则一执行break流程就转出switch结构。否则,就依次执行到switch结构的闭括号“”为止的所有语句。5.5 选择结构的嵌套本节用2课时。第1课时要先对学生讲解关于选择结构嵌套的几种形式及else与if的配对规则,再用课件演示例5.08,第2课时学生上机验证和分析例5.08。本节中的要点: 嵌套的if else if结构(例5.08)的流程图及其执行流程分析。第6章 循环结构教学内容: for语句 while语句 do while语句 break语句contuine语句教学重点: for语句的执行规则 while语句的执行规则 do while语句的执行规则教学难点: for语句的执行规则 while语句的执行规则 do while语句的执行规则教学建议:6.1 for语句本节共用5课时。安排学生课前先(复)预习关于for语句的一般形式、流程图和执行规则。第1课时教师一上课就板书例6.01源程序和画出其流程图,然后用表格填写法来分析这个源程序中for循环的执行过程。这是第1次使用表格法来分析程序的执行流程,要特别注意教给学生这种方法,并以此培养学生的严谨精神,例如可请学生仿老师的做法在板上重新分析一次。第2课时由学生独自或在教师指导下完成对例6.02的源程序板书、流程图绘制,并结合源程序中的for循环,按其执行流程相应地在表格中作记录,注意要执行一步填写一格。以此形式来培养学生对C源程序的阅读和分析能力。第3课时用课件分别演示例6.02、例6.03源程序的执行过程。第4课时学生上机验证例6.01、例6.02、例6.03、例6.04。第5课时讲解for语句的4种变通形式。本节中的要点: (1)for语句的一般形式、流程图和执行规则; (2)用表格法来分析一个具体的for循环的执行过程。6.2 while语句6.3 do while语句这两小节共用3课时。安排学生课前先预习关于while和do while这两个语句的一般形式、流程图和执行规则。第1课时先安排一个学生上讲台板书while语句的一般形式及其流程图,再安排一个学生板书该例源程序,画出其流程图,然后用课件演示例6.06的执行过程,最后再请一个学生,结合源程序中的for循环,把循环过程的执行步骤,一步一格地填写在表中。第2课时先请一个学生上讲台板书do while语句的一般形式和流程图,再请另一个学生上讲台板书while语句的一般形式和流程图,教师指导学生对比这两种循环的异同点。然后再请一个学生上前板书例6.06的源程序和流程图,最后用教学课件演示例6.06的执行过程。第3课时上机验证例6.05、例6.06、例6.07,对比while语句和do while语句的异同点。这两节中的要点: (1)while语句的一般形式、流程图、执行规则; (2)do while语句的一般形式、流程图和执行规则; (3)while和do while这两个语句的异同点; (4)for、while、do while 三种语句中,仅do while语句才要至少执行一次循环体。6.4循环结构的三个专用术语本节用1课时。讲授。本节中的要点: (1)循环变量、循环条件、循环体这三个概念; (2)循环变量赋初值、循环变量更新这两个赋值操作。6.5 循环结构应用实例:飞雪迎春本节1课时,学生上机验证例6.08。本节中的要点: (1)文本动画的基本技法:利用光标定位来输出文本,从而形成基于文本的简易动画; (2)文本动画的实现方法:使用循环,即用循环变量去参与光标定位函数中列行参数的运算,从而使输出文本不断移动; (3)文本动画的注意之点:要用与动画文本相同字符数的空格文本去覆盖动画文本; (4)文本动画的一个技巧:循环体中,输出空格文本的语句在前,输出动画文本的语句在后,以保证退出循环后,动画文本不被空格文本覆盖。6.6 循环的嵌套6.7 break语句和continue语句这两节共用2课时。第1课时用教学课件演示例6.09、例6.10、例6.11、例6.12这4个例题;第2课时学生上机验证这4个例题。这两节中的要点: (1)break语句 的作用是退出整个循环结构,即执行break语句后,执行流程已转到整个循环结构之外; (2) continue语句的作用只是提前结束本次循环体操作,即执行continue语句后,就放弃这次循环体中的后续操作,直接进行新的下一次循环,当然执行流程就仍在循环结构之中。第7章 数组教学内容: 一维数组的定义和引用 一维数组的初始化 一维数组元素的赋值 基于一维数组的数据统计 基于一维数组的数据排序 二维数组的定义和引用 一维字符数组的应用 二维字符数组的应用教学重点: 一维数组的定义和引用 对数组元素求和的循环结构设计 求数组中最大值和最小值的循环结构设计 冒泡法排序 二维数组的定义和引用 一维字符数组的应用 字符串输入函数和字符串输出函数 二维字符数组的应用教学难点:冒泡法排序二维字符数组的应用教学建议7.1 从排序谈数组本节安排自学内容,不占课时。本节中的要点: 认识用数组来对数据排序的高效性。7.2 一维数组的定义和引用本节用1课时。讲授。本节中的要点: (1)一维数组定义的一般形式; (2)引用数组元素用下标法,即用数组名的下标运算来表示数组元素; (3)一维数组的初始化。7.3 一维数组应用本节共用4课时。第1课时讲授成绩统计;第2课时讲授冒泡法排序;第3课时讲授选择法排序;第4课时学生上机验证例7.04、例7.05、例7.06。本节中的要点: (1)对数组的操作离不开循环,要有意识地用循环变量去表示数组元素的下标; (2)对数组元素求和的循环结构设计; (3)求数组中最大值和最小值的循环结构设计; (4)求数组中最值时将第一个数据既作为初始最大值又作为初始最小值; (5)冒泡法排序的基本思想:将相邻两数比较,把小的调到前头(排成由小到大时); (6)冒泡法排序的程序组成:用双重循环;外循环处理“趟数”,每趟排出一个相对最大数;内循环处理“两两比较”的次数,实现冒泡。7.4 二维数组7.5 二维数组应用示例这两节共用2课时,安排学生课前预习7.4节,第1课时讲解二维数组的定义、引用及例7.08有关算法和源程序;第2课时学生上机验证例7.08,程序运行所需的成绩数据由学生自己设计,且由学生自己估算相应结果以检查运行结果。这两节中的要点: (1)二维数组定义的一般形式; (2)二维数组元素的引用方法:数组名后加上行下标和列下标; (3)二维数组元素的按行引用要领:外循环变量作行下标,内循环变量作列下标; (4)二维数组元素的按列引用要领:外循环变量作列下标,内循环变量作行下标。7.6一维字符数组本节用2课时,安排学生课前预习7.6节,第1课时讲授一维字符数组和字符串的基础知识,并用教学课件演示例7.12;第2课时学生上机验证这节的例7.09、例7.10、例7.11、例7.12这4个例题。本节中的要点: (1)一维字符数组的定义; (2)用字符串常量初始化字符数组; (3)用scanf函数以%s格式输入字符串时的主要缺陷:字符串中不能有空格符; (4)单词统计例题中变量word的作用。7.7二维字符数组本节用1课时,即安排学生上机验证例7.13和例7.14本节中的要点: (1)用一维字符数组来实现“字符串变量”的功能; (2)用二维字符数组来实现“字符串数组”的功能; (3)案例五大名山循环显示的基本要领:用循环变量作行下标且按一维数组名引用。7.8“嫦娥探月”本小节用2课时,即上机验证例715、例716、例717和例718本节中的要点:(1) 把“嫦娥探月”中的每一汉字作为一字符串;(2)用内层循环变量去影响文本颜色设置函数和光标定位函数的参数及二维字符数组的行下标,从而产生文字转动加移动且颜色随字同步转动的效果;(3)用中层循环来控制移动方向;(4)用外层循环来控制移动的圈数及移动向中心的收缩;(5)模运算所起的对下标范围和颜色范围的限定作用。第8章 函数教学内容: 函数的基本概念和分类 函数定义的一般形式 函数的形式参数和函数的值 函数调用的两种方式 函数调用时的参数传递 局部变量和全局变量 函数的嵌套调用和递归调用教学重点: 函数的定义和调用 函数定义时的参数传递教学难点: 函数调用时的参数传递 全局变量的引用教学建议:8.1 函数的基本概念本节安排为学生自习,不占课时。本节中的要点: (1)C函数分为C库函数和自定义函数; (2)程序中调用库函数时,要在程序开头用预处理命令include包含所需的头文件; 8.2函数的定义本节用1课时。讲授。本节中的要点: (1)无参数函数定义的一般形式; (2)有参数函数定义的一般形式; (3)函数体中,所有定义语句和说明语句必须位于执行语句前面的语法规定。8.3形式参数和函数的值8.4 函数的调用这两节用1课时。讲授。这两节中的要点: (1)函数定义中的形参必须分别说明其类型; (2)函数的返回值由函数体末尾的return语句指定; (3)函数调用的一般形式:函数名(实参列表); (4)函数调用时的实参应与该函数定义时的形参个数相等,类型相同,实参与形参按顺序对应,一一传递数据。 (5)函数调用的两种方式:函数语句方式和函数表达式方式; (6)当非整型的被调函数位于主调函数的后面时,主调函数中必须有对被调函数 的声明。8.5 函数调用的参数传递本节用2课时,第1课时用教学课件演示例8.05、例8.06、例8.07的执行过程,第2课时学生上机验证这三个例题。本节中的要点: (1)用变量名作函数调用的实参时,实参变量与形参变量各自占有不同的内存空间,参数传递是实参变量值到形参的单向传递,形参的改变不影响实参; (2)用数组元素作函数调用的实参时,数组元素与形参变量各自占有不同的内层空间,参数传递是数组元素值到形参的单向传递,形参的改变不影响数组元素的值; (3)如果函数在定义时的形参是数组,则调用时必须用数组名作实参,且实参到形参的传递是地址传递。此时,实参数组与形参数组是同一实体,即实参和形参占据的是同一内存段。对形参数组的操作就是对实参数组的操作,形参数组的改变就是实参数组的改变。8.6局部变量和全局变量本节用2课时,第1课时用教学课件演示例8.08、例8.09、例8.10的执行过程,第2课时学生上机验证这三个例题。本节中的要点: (1)局部变量是指定义在函数内部,只能在该函数内部使用的变量; (2)主函数中定义的变量也只在主函数中有效,不能被其它函数引用;同时主函数也不能使用其它函数中定义的变量; (3)不同函数中可以定义和使用相同的变量名,互不干扰; (4)形参也是局部变量,因此函数调用时的实参可以与函数定义时的形参同名; (5)全局变量是在所有函数的外部定义,它的作用范围是从该变量定义开始到程序的结束。全局变量的特点是:它可被在它的定义语句后的所有函数引用。另外,全局变量和局部变量可以同名,在局部变量作用范围内,同名的全局变量不起作用。8.7函数的嵌套调用和递归调用本节用1课时,用教学课件演示例8.11的执行过程。本节中的要点: (1)C语言不支持函数间的嵌套定义,但支持函数间的嵌套调用; (2)主函数可以调用任何函数,但任何函数都不可以调用主函数;8.8“抗震求灾众志成城”主题动画程序设计本节用2课时。第1课时讲解汉字的点阵字模,字模数组,xz函数的功能,程序执行概要;第2课时学生上机验证例8.12效果,由于数组数据较大,可二人一组协同完成。本节中的要点: (1)汉字的点阵形式字模; (2)字模的二进制表示; (3)基于字模的汉字点阵输出函数要用双重循环来实现。 第9章 编程实训:俄罗斯方块教学内容: 俄罗斯方块游戏简介 44网格图及各方块在网格图中的相对坐标 相对坐标的变量存取方式 相对坐标的数组存取方式 画块函数的设计 产生随机新方块函数的设计 移动方块函数的设计 按键信息的获取方法 按键信息的分类处理 俄罗斯方块游戏整体结构方框图 方块可移性检查函数的设计 游戏区域初始化函数的设计 方块落底处理函数的设计 消满行后更新显示函数的设计 场景数组与游戏区域同屏显示函数的设计 完整的俄罗斯方块游戏源程序教学重点: 俄罗斯方块游戏整体结构方框图 按键信息的分类处理 方块落底处理函数的设计教学难点: 按键信息的分类处理 方块落底处理函数的设计教学建议:9.1俄罗斯方块游戏中各方块的坐标表示本节用1课时。讲授。重点是19种方块在44网格中的相对坐标的确定,要使学生理解和掌握,用4对坐标来完全确定一个具体方块的解题(编程)思路。本节中的要点: 19种方块的坐标表示。9.2 方块坐标的变量存取方式本节用1课时。安排学生上机验证例9.01、例9.02,通过上机验证,要使学生进一步认识到,只有用变量来形成坐标,方块的变化才灵活。本节中的要点: 用坐标来确定画出的方块;9.3方块坐标的数组存取方式本节用1课时,通过上机验证例9.03,要使学生再进一步认识到,只有用数组来形成坐标,该画出方块的程序段,才有通用性。本节中的要点: 用二维数组来存放19种方块的相对坐标;9.4把画块操作设计为专用函数本节用1课时,通过上机验证例9.04,要使学生进一步认识到,只有把画块操作独立门户(作为专职函数)才有效率,即要掌握draw()函数的定义和功能本节中的要点: 画块函数draw()的程序设计。9.5增强画块函数的适应性本节用1课时,通过上机验证例9.05,要使学生进一步认识到,只有在画块函数draw()中使用相应参数,方块的位置和颜色才能灵活变化,也就是要掌握draw()函数的功能提升。本节中的要点: 在画块函数draw()中,要使用全局变量xc与yc,还要使用颜色形参c。9.6在约定位置随机产生新方块本节用1课时,通过上机验证例9.06,要使学生掌握和理解产生随机新方块的具体方法(即用随机函数产生一个06之间的随机数来作方块号),即要掌握fk_new函数的定义和功能。本节中的要点: 使用随机函数来产生随机方块。9.7方块的预设移动本节用1课时,通过上机验证例9.07,要使学生掌握和理解控制方块移动的具体方法(即用改变方块的网块坐标xc、yc来实现),也就是要掌握move()函数的定义和调用。本节中的要点: 移动方块函数move()的程序设计。9.8方块的键控移动本节用1课时,通过上机验证例9.08,要使学生掌握和理解用键盘移动方块的主要思路,也就是要掌握主函数中关于while循环及其中的switch语句、bioskey()库函数的作用。本节中的要点: (1)用库函数bioskey()获取按键信息; (2)用switch结构分析按键信息,并作出相应处理。9.9俄罗斯方块游戏的整体结构设计9.10俄罗斯方块游戏的整体框架程序这两节共用4课时。第1课时主要讲解建立框架的思路和整个程序的模块结构图及阅读整体框架程序,要向学生说明在框架程序中,空函数所起的建构框架时不可缺少的作用。第2课时主要引导学生阅读关于主函数、画方块函数、产生随机新方块函数和方块移动函数的功能说明和简要分析相应的流程图,这节课的重难点都是主函数的流程图。第3、4课时连堂安排学生上机,运行整体框架程序,指导学生思考这个程序缺少哪些功能。这两节中的要点: (1)掌握俄罗斯方块游戏的整体结构; (2)划分俄罗斯方块游戏的程序构成。9.11完善框架程序中的可移性检测功能本节用1课时,即安排学生上机,在前次上机完成程序的基础上把空的mov_test()函数,按照后面完整的俄罗斯方块游戏源程序的相应函数,补齐各语句后运行测试,了解现在该程序的功能和缺陷。本节中的要点: move() 函数的程序设计。9.12完善框架程序中的初始化功能本节用1课时,即安排学生上机,在前次上机完成程序的基础上把空的init()函数,按照后面完整的俄罗斯方块游戏源程序的相应函数,补齐各语句后运行测试,了解现在该程序的功能和缺陷。本节中的要点: init()函数的程序设计。9.13完善框架程序中的方块落底处理功能本节用1课时,即安排学生上机,在前次上机完成程序的基础上把空的fk_bott()函数,按照后面完整的俄罗斯方块游戏源程序的相应函数,补齐各语句后运行测试,了解现在该程序的功能和缺陷。本节中的要点: fk_bott()函数的程序设计。9.14完善框架程序中的更新显示功能本节用1课时,即安排学生上机,在前次上机完成程序的基础上把空的disp()函数,按照后面完整的俄罗斯方块游戏源程序的相应函

温馨提示

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

评论

0/150

提交评论