摘要:针对C#35821;言函数教学的常见问题,提#20986;函数教学的新思路,结合EXCEL、HTML、函#25968;分类和典型小案例,重#28857;阐述如何教授函数的概#24565;和调用,并在实际#25945;学中取得良好效果。
关键字:C语#35328;;函数;教学方法
ABSTRACT: For the usual questions in Function teaching of C-language, new ideas are put forward. Function teaching is developed with EXCEL, HTML, classification of functions and typical minimal examples. Teaching of concept and function call are focused. And the new teaching-method achieved good results actually.
KEYWORDS: C language; Function; Teaching-method
1 引言
在C语言的教学过程#20013;,学生们通常难以理解一些概#24565;和程序流程的控制,比如函数#21644;函数调用。而在C语言中#65292;函数是一个非常重要的部分,所有#31243;序都是由函数组成的,如果#27809;有掌握函数,就不#21487;能掌握C语言。关于这#19968;问题的教学,人们也在实践中做了#24456;多思考。但在分析C#35821;言函数时,大部分教材都是从知识#20256;授的层面来思考的。#26412;文通过分析函数教学#20013;出现的常见问题,提出了函数教#23398;新思路,结合EXCEL、HTML、函数分类和典型小#26696;例,重点阐述如何教授函数的概念#21644;调用。
2 函数教学中的常见#38382;题
C语言中的函#25968;分为库函数与自定义函数。#33258;定义函数学习的主要内#23481;分为函数的定义和调用。大部#20998;学生在学习的时候对这些内容#24863;到困难,他们主要#26159;不知道函数该返回什么,函数#24212;该有多少个参数,这些参数是什么#31867;型。由于这些问题没有清楚,导致#23398;生们基本上不能写出正确的函数#12290;在一般教学中,通常存#22312;如下问题:
(1)简单地罗列语法
语法知识仅仅是从语#27861;角度系统地进行罗#21015;,从函数形式、参数等分别进行#20171;绍。但是仅仅这样简单的罗列语#27861;,学生们不能深刻理解函数的意#20041;。
(2)语法讲解#19982;编程实例的衔接不好
花费大量时间详细介绍函数、#24418;参、实参等概念与语法知识#65292;而后面的函数编程等#23454;用知识的讲授时间不够,学#29983;们难以接受。
(3)模块化编#31243;训练不够
学生对于自始至终#25509;触到的简单编程印#35937;比较深刻,但是模块化编程#24605;想不够。而且,函数的教学章节在C语言教学内容的后面。因此#65292;对于函数的调用、函数#21442;数的传递等,学生们平时训练的强#24230;不大。
由此可见,我们需要设计一#31181;新的教学方案,改善C语言函数#25945;学的效果,着重加深学生们对函数#27010;念的理解和函数调用的掌#25569;。
3 函数教学新思路
3.1 #29992;EXCEL来理解函数概念
EXCEL是一个非常简单且#30028;面友好的软件,一般在学生进入#22823;学的第一个学期就已经学习过了。#21516;时,由于在平时的#29983;活、学习当中都有可能要用到EXCEL,因此学生们对#20110;EXCEL比较熟悉#12290;
函数的概念#21487;以使用EXCEL#20013;的多工作表来解释。通过将一#20123;数据存放在多个工作表中,#28982;后在这些工作表中选择这#20123;数据,可以解释不同“#24037;作区”的概念,或#32773;说是函数调用的一种最基本的#24418;式。例如,在一个工作表中存放了#19968;些数据,却在另一个不#21516;的工作表中使用这些数#25454;进行计算。这个例子可以看成是#22312;“程序”之间传递数据#12290;再比如,在不同工作#34920;中给不同的列命名,就像是#22312;C语言的不同函数中给不#21516;的变量命名。
#12288;3.2 用HTML来理解函数概念
HTML是网页设计的基础。大部#20998;学生愿意花很多时间学习HTML,因为几乎每一个#26032;生都想创建自己的主页。学习HTML不仅能够帮助学生掌握简#21333;的代码编写,还能够帮助学生理解#20989;数的概念。
如果将一个网#39029;转换成一个框架结构,HTML也可以用#26469;解释函数调用。基本上,一个框架#32467;构就相当于一个函数调#29992;,因为索引文件会引起调用很多#20854;他文件。网页的输#20986;不是索引文件产生的结#26524;,而是框架结构调用#33509;干文件的结果。
3.3 根据求解目的归纳不#21516;函数
从语法角度,通常#26159;从参数个数和有无函数#20307;方面将函数分为无参函数、有参#20989;数、空函数三类。根据编写函数#30340;目的、功能或者说用途,函数可#20197;被分为以下三类:
(1)求值类函#25968;:使用这种函数是为了求一个值#12290;
#27714;值类函数的一般定义格式:
函数#20540;类型 函数名(类型 形参1, 类型 形参2, ……)
{
根#25454;形参的值计算所求的值;
return 结果;
}
求值类#20989;数的定义步骤是:
① 编写函数头:根据函数所求#20540;的数据类型确定函数值类型,#20998;析函数要提供的参数及其类型#20174;而确定形参。
② 编写函数体:根#25454;提供的参数 (即形参) ,#27714;出所需的值,最后返回 (return) 该值。
求值类#20989;数在调用时通常作为表达式使#29992;,可用于赋值、输出、#36816;算、或作为另一个函数调#29992;的实参。调用格式:
函数名(#23454;参1,实参2,…#8230;)
(2)判断类函数#65306;使用这种函数是为了检查一#20010;判断是否成立。
判断#31867;函数是一种特殊的求值类函数,#20854;值为1或者0,表示判断成#31435;与不成立。因此判断类#20989;数值的类型固定为int。下面给#20986;判断类函数的一种参考格式:
int 函数名(类型 形参1, 类型 形参2, …#8230;)
{
int f; /* 代表判断结果 */
#26681;据形参的值进行判断,#21028;断成立则令f为1,否则令f为0
return f;/* 将判断结果#36820;回 */
}
判断类函数调用时#36890;常用于在选择结构或循环结构中#20316;为判断条件。如:
if (函数名(实参1, 实参2,......)==1)......
操作类函数不是为了求#20540;,即函数没有值,其函数值的#25968;据类型是void。函数体#20013;不能使用return (值); #35821;句来返回一个值,但可以#20351;用return来结#26463;函数的运行返回到#20027;调函数。
操作类函数一般定#20041;格式:
void 函数名(#31867;型 形#21442;1, 类型 形参2, ……)
{
根据形参的值#36827;行处理
return;/*或者无return */
}
操作类函数调用时#36890;常单独作为语句,其调用格#24335;:
函数名(实#21442;1,实参2,……);
#12288;3.4 典型小案例教#23398;
在教学过程#20013;,尽量选择典型小案例穿#25554;讲解。所谓的典型小案例,是#25351;这个案例集中解释某一个概#24565;,是一个完整的程#24207;,但又尽可能的短小。#20856;型小案例既有利于学#29983;学习,也有利于老师教授#12290;对于学生来说,典#22411;小案例易于自学,他#20204;能够很快地阅读程序#25110;者修改程序,能够更好地理解程#24207;。对于老师来说,典型小案#20363;便于课堂讲解,能够很#24555;修改成另一个程序,并要求学生#32473;出对应的输出。如果学生对#28304;代码没有充分的理解,就不#33021;给出正确的答案。因此#65292;典型小案例教学具有很强的#21551;发性。
典#22411;小案例的选择一般#20855;有以下特点:
(1)#38382;题驱动性。典型小案例的设计围#32469;某一个问题的解答。当逐渐#23558;案例分析清楚,案例#25152;涉及的概念也随之明朗。
(2)编程。每一个典型#23567;案例是一个独立完整的程序。
(3)输出。有明确#30340;程序输出。
(4)可扩展性。典型小#26696;例比较易于修改,可#20197;更好地理解相关概念,或者引出更#21152;深入的概念。
4 结束语
#22312;C语言中,函数一#30452;是学习的重点和难#28857;。本文分析了C语言在函数学习过#31243;中存在的问题,从概念和函#25968;调用两个方面进行探讨,提出#20989;数教学的新思路。通过EXCEL和HTML将函数概念#31616;单具体化,根据求解目的将函数#20998;类总结,穿插讲解启发性强的典#22411;小案例,这些方法的#32467;合使用,在实际教学中#21462;得良好的效果。
参 #32771; 文 献
[1]王涛伟,杨秀金.C 函数的参数传递和返回值问#39064;的教学研讨[J].吉#26519;大学学报(信息科学版),2005,23:70-74.
[2]项响琴.递归问题的教学探讨[J].合#32933;学院学报(自然科#23398;版),2006,16(2):63-65.
[3]周志德.C 函数三步教学法[J].无锡#32844;业技术学院学报,2006,5(3):37-39.
[4]汪明#20809;.C 语言中函数指针的分析#19982;应用[J].巢湖学院#23398;报,2006,8(3):30-34.
[5]谭浩#24378;.C语言程序设计(第#19977;版)[M].北京:#28165;华大学出版社,2005.
1管理科学与工#31243;重点学科E694(xk0704#65289;