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

下载本文档

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

文档简介

《C语言案例教程(第2版)》教学指南

一本书的定位和任务

本书是中学生学习c语言程序设计的入门教材。它的主要任务是:培养学生关于程序

设计的学习兴趣与逻辑思维和人文素养,使学生基本掌握c语言程序设计的基本知识和基

本方法,为他们计算机程序设计的进一步学习和终身学习打下基础。

二本书的教学目标

木书的教学目标是:牢固掌握c语言中各种变量、各种数组的定义和使用;牢固掌握C

程序中数据的输入和输出;熟练使用顺序结构、选择结构、循环结构和函数模块建构程序;

了解指针和结构体的简单应用;能阅读和调试一般的C语言程序。

三本书的特色

本书的主要特色是把C语言编程的基础知识以案例形式进行组织和展开。案例设计中

尽可能地考虑了教材面向中学生应该具备的趣味性、实训性和思想性。案例实训以学生的学

习兴趣为源动力,借此逐步推进学习进程的深入浅出。本书做到了案例大而不难,语法精而

不漏,这对提高学生程序设计的兴趣和综合素质有重要作用。

四本书源程序的调试与运行环境:

1操作系统:dos6.0/windows98//2000//xp

2编译平台:UCDOS98+TC2.0

五教学课时安排

章序内容讲授课时上机课时合计课时

1编程拉练:移动的金字塔6511

2C语言基础459

3运算符与表达式459

4顺序结构程序设计213

5选择结构6410

6循环结构8412

7数组6612

8函数639

9编程实训:俵罗斯方块41418

10C语言的高级特性7411

11编程阅读:演玩汉诺塔000

合计5151102

说明:第11章作为学生阅读内容,不讲授。

六各章节内容和建议

第1章编程拉练:移动的金字塔

教学内容:

仅输出一个点的C语言程序

主函数main。的专用名及基本结构,主函数的特点和性质

字符输出函数putchar。的使用格式和功能

UCDOS的启动、TC2.0的启动

TC集成环境下C程序的编辑、保存、运行和观察结果

清屏函数clrscr。的使用格式和功能

for语句的基本格式和作用

光标定位函数goloxy()的使用格式和作用

双重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、CH+F9、Alt+F5等快捷键操作;从例

题例1.01的运行结果来掌握字符输出函数putchar()使用格式和作用。

本节要点:

(1)C程序的基本样式

#include,,stdio.hn

main()

{

语句组

)

(2)大括号中的“语句组”系伪代码,只能用来分析讨论,不能作为C语句;

(3)主函数的一般形式

main。

(

语句组

}

(4)3种键盘字符的作用:

#预处理命令的标志

O函数的标记

;语句的结束标志

(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,然后再用I课时讲解两

源程序,重点是一重循环,并要要求学生通过看书尽可能了解f。「语句的执行过程。

本节要点:

(I)循环变量的定义和使用;

(2)for语句的组成:

循环头for(式子1;式子2;式子3)

循环体{

语句组

(3)上面式子1、式子2、式子3也都是伪代码,编程时必须换为真代码;

(4)for循环(涪句)的循环规则:

A:执行式子I(一般是给循环变量赋初值);

B:测试式子2,式子2成立转C,否则转E;

C:执行循环体中的语句组;

D:返I可循环头先执行式子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课时先由教师在投影室演示例109案例并按行号写出执行流程,然

后第2课时由学生上机完成例1.10案例。

本节要点:

把循环头拆分成三行,用单步运行时的待执行行亮条,来指示程序的执行流

程,从而分析循环的执行规则。

本章要点:

把画点程序扩充成移动的金字塔程序的三大步骤:

(1)用一循环把画点的字符输出语句扩充成

画线(成为一重循环);

(2)又用一循环把画线的循环扩充成画塔

(成为二重循环);

(3)再用一循环把画塔的二重循环扩充成移

动的金字塔(成为三重循环)。

第2章C语言基础

教学内容:

C语言的元字符集、标识符的作用和组成规贝!

关键字和语句的概念

C程序的组成、C函数的基本结构

C语言的数据类型展开图

常量和变量的概念

整型常量的三种表现形式

变量定义的一般形式

int变量、unsigned变量的存贮字节数和数的表示范围

实型常量的两种表示形式

float变量、double变量的存贮字节数和数的表示范围

字符常量的表示形式、转义字符的表示形式

字符变量的存贮字节数

字符串常量的表示形式、存贮形式

自动数据类型转换的一般规则、强制类型转换的一般形式

格式输出函数print。的一般形式、作用

常用格式符的含义

格式输入函数scanf()的一般形式、作用

变量的地址运算符

常用转义字符的作用

字符输出函数putchar。的一般形式、作用

字符输入函数getchar。的一般形式、作用

无回显的字符输入函数gctch。的一般形式、作用

快捷键F7与F8的异同点

教学重点:

标识符的组成规则和作用

C函数的一般形式

变量定义语句的•般形式

整型变量的定义和引用

格式输出函数printf。和格式;输入函数scanf()

常用格式符的含义

常用的转义字符

教学难点:

常用格式符的含义

格式输入函数scanf()的正确使用

教学建议:

2.1C语言的元字符和标识符

2.2C语言的关键字和语句

2.3C源程序结构

这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.4C语言的基本数据类型

2.5常量和变量

2.6整型数据

这3小节也用2课时完成。要安排学生在上课前预习好前两小节的内容。第1课时先

将2.6节中的例2.02和例2.03上机验证结果;然后再用第2课时讲述这3小节的理论知识,

重点讲运行结果分析。

这三节中的要点:

(1)常量和变量的概念;

(2)整型常量的三种表示方法;

(3)变量定义的一般格式;

(4)变量必须“先定义后使用”;

(5)整型变量占2个字节,数的表示范围为-32768〜32767。

2.7实型数据

本节用I课时,可在机房上机完成例2.04的验证。

本节中的要点:

(1)实型常量的两种表示形式;

(2)两种实型变量的存贮字节数和数的表示范围。

2.8字符型数据

本小节用2课时完成:先用1课时上机验证例2.05、例2.06.例2.07这3个例题,

第2课时再分析三个例题的运行结果和相关知识。

本节中的要点:

(1)字符常量的表示方法;

(2)转义字符和‘M'的含义;

(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个关系运算符按优先级分为了两组

较高组:<、V=、>、>=

较低组:==、!=

(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或。来表示;

(3)逻辑运算符的优先级:

“非”高于“与”,“与”高于“或”;

“非”高于算术运算,“与”和“或”低于关系运算;

(4)数字字符的表达式;

(5)英文字符的表达式;

(6)闰年的表达式。

3.5逗号运算符与逗号表达式

3.6运算符的优先级却结合性

这两节共用1课时。讲授,结合性是难点。

这两节中的要点:

(I)逗号运算符的优先级(最低);

(2)逗号表达式值的规定;

(3)讨论结合性的时机:

仅当一个运算量两侧的运算符'优先级相同时,才可谈结合性;

(4)左结合的运算规则:

先用两个运算符中左边的那一个对对象进行运算;

(5)右结合的运算规则:

先用两个运算符中右边的那一个对对象进行运算;

第4章顺序结构程序设计

教学内容:

C语句的分类

算法的概念

算法的流程图表示

程序的三种基本结构

交换两个变量值的算法

教学重点:

算法的概念

教学难点:

算法的流程图表

教学建议:

4.1C语句的分类

安排学生自学,不占课时。

本节要点:

说明语句、空语句、复合语句的概念。

4.2算法的概念

4.3算法的流程图表示

这两小节共用I课时。讲授。

这两节中的要点:

(1)算法的概念;

(2)流程图的有关符号;

4.4程序的三种基本结构

本节安排学生自学,不占课时。

本节中的要点:

二种基本结构的流程图表示。

4.5顺序结构程序设计示例

本节用2课时。第1课时用课件演示例4.05.例4.06的运行过程,第2课时再上机验证。

本节中的要点:

(1)借助中间变量,交换两个变量值的算法;

(2)借助平方根函数,写出一元二次方程求根公式的C语言表达式;

(3)针对求根公式的C语言表达式,归纳把数学表达式改写成C语言表达式的注意

事项。

第5章选择结构

教学内容:

if语句

ifelse语句

ifelseif语句

else与if的配对规则

带break的switch语句

不带break的switch语句

选择结构的嵌套

教学重点:

If语句的执行规则

ifelse语句的执行规则

ifelseif语句的执行流程

switch语句的执行流程

break语句的作用

教学难点:else与if的配对规则

ifelseif的执行流程

教学建议:

5.1if语句

本节用2课时,第1课时要先对学生讲解关于if语句的一般形式、流程图和执行规则,

再用课件演示例5.01和例5.02,第2课时学生上机验证这两例题。

本节要点:

if语句的一般形式、流程图和执行规则。

5.2ifelse语句

本节用2课时。第1课时要先对学生讲解关于ifelse语句的一般形式、流程图和执行规

则,再用课件演示例5.03,第2课时学生除上机验证和分析例5.03外,还要上机运行例5.04,

即为下一节课作上机预习,

本节要点:

ifelse语句的一般形式、流程图和执行规则。

5.3ifelseif语句

本小节用2课时。第I课时要先对学生讲解关于ifelseif语句的一般形式、流程图和执

行规则,再用课件演示例5.04和例5.05,笫2课时上机验证这两个例题。

本节中的要点:

ifelseif语句的一般形式、流程图和执行规则。

5.4switch语句

本节用2课时。第1课时要先对学生讲解关于switch语句的一般形式、两种形式的流

程图和执行规则,再用课件演示例5.06,第2课时学生上机验证和分析例5.06和例J5.07。

本节中的要点:

switch语句的执行规则:从多个case常最表达式中找出与switch表达式相匹配的

一个来作为入口,无一匹配者时以default为入口。没有入口就结束整个swilch结构。

有入口就从入口进入而执行其后的语句。若其后的语句中含有break,则一执行break

流程就转出switch结构。否则,就依次执行到switch结构的闭括号“}”为止的所有

语句。

5.5选择结构的嵌套

本节用2课时。第1课时要先对学生讲解关于选择结构嵌套的几种形式及else与if的

配对规则,再用课件演示例5.08,第2课时学生上机验证和分析例5.08。

本节中的要点:

嵌套的ifelseif结构(例5.08)的流程图及其执行流程分析。

第6章徜环结构

教学内容:

for语句

while语句

dowhile语句

break语句contuine语句

教学重点:

for语句的执行规则

while语句的执行规则

dowhile语句的执行规则

教学难点:

for语句的执行规则

while语句的执行规则

dowhile语句的执行规则

教学建议:

6.1for语句

本节共用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.2while语句

6.3dowhile语句

这两小节共用3课时。安排学生课前先预习关于while和dowhile这两个语句的一般形

式、流程图和执行规则。

第1课时先安排一个学生上讲台板书while语句的〜般形式及其流程图,再安排一个学

生板书该例源程序,画出其流程图,然后用课件演示例6.06的执行过程,最后再请一个学

生,结合源程序中的for循环,把循环过程的执行步骤,一步一格地填写在表中。

第2课时先请一个学生上讲台板书dowhile语句的一般形式和流程图,再请另一个学生

上讲台板书while语句的一般形式和流程图,教师指导学生对比这两种循环的异同点。然后

再请一个学生上前板书例6.06的源程序和流程图,最后用教学课件演示例6.06的执行过程。

第3课时上机验证例6.05、例6.06、例6.07,对比while语句和dowhile语句的异同点.

这两节中的要点:

(1)while语句的一股形式、流程图、执行规则;

(2)dowhile语句的一般形式、流程图和执行规则:

(3)while和dowhile这两个语句的异同点;

(4)for、while%dowhile三种语句中,仅dowhile语句才要至少执行一次循环体。

6.4循环结构的三个专用术语

本节用1课时。讲授。

本节中的要点:

(1)循环变量、循环条件、循环体这三个概念:

(2)循环变量赋初值、循环变量更新这两个赋直操作。

6.5循环结构应用实例:飞雪迎春

本节1课时,学生上机验证例6.08。

本节中的要点:

(I)文本动画的基本技法:利用光标定位来输出文本,从而形成基于文本的简易

动画;

(2)文本动画的实现方法:使用循环,即用循环变量去参与光标定位函数中列行

参数的运算,从而使输出文本不断移动;

(3)文本动画的注意之点:要用与动画文本相同字符数的空格文本去覆盖动画文

本;

(4)文本动画的•个技巧:循环体中,输出空格文本的语句在前,输出动画文本

的语句在后,以保证退出循环后,动画文本不被空格文本覆盖。

6.6循环的嵌套

6.7brccik语句和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课时。

第I课时讲授成绩统计;第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』3和例7.14

本节中的要点:

(1)用一维字符数组来实现“字符串变量”的功能:

(2)用二维字符数组来实现“字符串数组”的功能;

(3)案例五大名山循环显示的基本要领:用循环变量作行下标且按一维数蛆名引

用O

7.8“嫦娥探月”

本小节用2课时,即上机验证例715、例716、例717和例718

本节中的要点:

(I)把“嫦娥探月”中的每一汉字作为一字符串;

(2)川内层循环变量去影响文本颜色设置函数和光标定位函数的参数及二维字符

数组的行下标,从而产生文字转动加移动且颜色随字同步转动的效果;

(3)用中层循环来控制移动方向;

(4)用外层循环来控制移动的圈数及移动向中心的收缩;

(5)模运算所起的对下标范围和颜色范围的限定作用。

第8章函数

教学内容:

函数的基本概念和分类

函数定义的一般形式

函数的形式参数和函数的值

函数调用的两种方式

函数调用时的参数传递

局部变量和全局变量

函数的嵌套调用和递归调用

教学重点:

函数的定义和调用

函数定义时的参数传递

教学难点:

函数调用时的参数传递

全局变量的引用

教学建议:

8.1函数的基本概念

本节安排为学生自习,不占课时。

本节中的要点:

(1)C函数分为C库函数和自定义函数;

(2)程序中调用库函数时,要在程序开头用预处理命令include包含所需的头文件;

£2函数的定义

本节用I课时。讲授。

本节中的要点:

(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章编程实训:俄罗斯方块

教学内容;

俄罗斯方块游戏简介

4X4网格图及各方块在网格图中的相对■坐标

相对坐标的变量存取方式

相对坐标的数组存取方式

画块函数的设计

产生随机新方块函数的设计

移动方块函数的设计

按键信息的获取方法

按键信息的分类处理

俄罗斯方块游戏整体结构方框图

方块可移性检查函数的设计

游戏区域初始化函数的设计

方块落底处理函数的设计

消满行后更新显示函数的设计

场景数组与游戏区域同屏显示函数的设计

完整的俄罗斯方块游戏源程序

教学重点:

俄罗斯方块游戏整体结构方框图

按键信息的分类处理

方块落底处理函数的设计

教学难点:

按键信息的分类处理

方块落底处理函数的设计

教学建议:

9.1俄罗斯方块游戏中各方块的坐标表示

本节用1课时。讲授。重点是19种方块在4X4网格中的相对坐标的确定,要使学生

理解和掌握,用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,要使学生掌握和理解产生随机新方块的具体方

法(即用随机函数产生一个0—6之间的随机数来作方块号),即要掌握fk_new函数的定义

和功能。

本节中的要点:

使用随机函数来产生随机方块。

9.7方块的预设移动

本节用1课时,通过上机验证例9.07,要使学生掌握和理解控制方块移动的具体方法

(即用改变方块的网块坐标xc、yc来实现),也就是要掌握move。函数的定义和调用,

本节中的要点:

移动方块函数move。的程序设计。

9.8方块的键控移动

本节用1课时,通过上机验证例9.08,要使学生掌握和理解用键盘移动方块的主要思

路,也就是要掌握主函数中关于while循环及其中的switch语句、bioskey。库函数的作用。

木节中的要点:

(1)用库函数bioskcyO获取按键信息;

(2)用switch结构分析按键信息,并作出相应处理。

9.9俄罗斯方块游戏的整体结构设计

9.10俄罗斯方块游戏的整体框架程序

这两节共用4课时。

第1课时主要讲解建立框架的思路和整个程序的模块结构图及阅读整体框架程序,要

向学生说明在框架程序中,空函数所起的建构框架时不可缺少的作用。

笫2课时主要引导学生阅读关于主函数、画方块函数、产生随机新方块函数和方块移

动函数的功能说明和简要分析相应的流程图,这节课的重难点都是主函数的流程图。

第3、4课时连堂安排学生上机,运行整体框架程序,指导学生思考这个程序缺少哪些

功能。

这两节中的要点:

(1)掌握俄罗斯方块游戏的整体结构:

(2)划分俄罗斯方块游戏的程序构成。

9.11完善框架程序中的可移性检测功能

本节用1课时,即安排学生上机,在的次上机完成程序的基础上把空的mov」est()函数,

按照后面完整的俄罗斯方块游戏源程序的相应函数,补齐各语句后运行测试,了解现在该程

序的功能和缺陷。

本节中的要点:

move()函数的程序设计。

9.12完善框架程序中的初始化功能

本节用1课时,即安排学生上机,在前次上机完成程序的基础上把空的init()函数,

按照后面完整的俄罗斯方块游戏源程序的相应函数,补齐各语句后运行测试,了解现在该程

序的功能和缺陷。

本节中的要点:

init()函数的程序设计。

9.13完善框架程序中的方块落底处理功能

本节用1课时,即安排学生上机,在前次上机完成程序的基础上把空的fl<_bott()函

数,按照后面完整的俄罗斯方块游戏源程序的相应函数,补齐各语句后运行测试,了解现在

该程

温馨提示

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

评论

0/150

提交评论