论文网
首页 职业教育职业技术教育正文

C语言程序设计函数的教学研究

  • 投稿菠菜
  • 更新时间2015-09-23
  • 阅读量486次
  • 评分4
  • 56
  • 0

陈 波 巨同升 李 艳 冷淑霞 贾 凌

(山东理工大学计算机科学与技术学院,山东 淄博 255049)

【摘 要】C语言程序设计是理工科专业的一门重要公共基础课,根据实际教学经验通过类比法对函数定义和函数调用中参数的多样性进行分析,提高学生对C语言学习的兴趣和积极性,加强知识点的综合掌握和应用。

教育期刊网 http://www.jyqkw.com
关键词 C语言;函数;参数;类比法

※基金项目:山东理工大学计算机科学与技术学院院级教学研究课题“网络教学平台下C语言分组教学研究与实践”。

作者简介:陈波(1981—),女,山东淄博人,硕士,山东理工大学计算机学院基础教学部,讲师。

巨同升(1965—),男,山东潍坊人,硕士,山东理工大学计算机学院基础教学部,副教授。

0 引言

函数是构成C程序的基本单位,也是实现模块化程序设计的重要手段[1]。函数可以和C语言的其它知识点综合起来,实现对C语言知识点地综合理解和应用。但是学生在对函数的学习过程中存在诸多问题,笔者认为首先从宏观上理解函数,再从微观上学习函数。

1 函数的宏观理解

C函数有四要素:函数名、参数、函数体、返回值,函数就像一台机器(函数名),对输入的数据(参数)进行加工(函数体)并输出加工得到结果(返回值)。如图所示。具体函数的输入、功能及输出是什么取决于函数的定义。

2 函数的定义

函数的定义是制造一台实现某一功能的机器,函数定义的基本格式为[2]:

返回值类型 函数名(形式参数列表)

{

声明语句序列

可执行语句序列

}

返回值类型即机器加工输出数据的类型,函数的返回值最多有一个通过return语句实现,若没有返回值用void来定义。函数名是这台机器的唯一标识,用于说明其功能。形式参数列表来说明机器需要的输入原材料的个数及类型,如果不需要输入需用void代替函数形参列表中的内容,声明语句序列来说明函数内部的变量,可执行语句序列实现对原材料的加工处理,实现函数的功能。例如:

bigger这台机器需要两个整形的输入,对其进行大小比较并把较大值放在局部整形变量max中返回回来。

3 函数的调用

函数调用就如用已经制造好的机器生产产品一样,实际放入的原材料称为实参。函数调用的一般形式:

函数名(实参列表);

在函数的调用过程中就产生了实参向形参的数据传递,并且只能由实参传递给形参,而不能有形参传递给实参[3]。函数的参数可以有多种形式:简单变量、指针变量、数组名。下面通过“借书”为例对其进行分析。

3.1 简单变量作为函数的参数

实参传递给形参的是值,即“单向值传递”。例如A来向B借一本书, B复印了一本给A,他们手中的书虽然相同但是不是同一本,A在拿到的书中作标记不会对B的书产生影响。

3.2 指针变量作为函数的参数

由于指针变量存储的是一个地址,所以实参传递给形参是地址,即“地址传递”。例如A来向B借一本书, B把放书的位置告诉了A,A通过位置信息找到书并在上面作标记,B再来看这本书时就是A做了标记的书了。

但并不是B把放书的位置或一套书的起始位置告诉了A,书的内容就会发生改变,如下面代码,A只是看了看书并且改变了放书的位置,书的内容没有发生改变。

3.3 数组名作为函数的参数

数组是相同类型数据的有序集合,采用连续顺序存取的方式,数组名标识数组的首地址,如果要传递批量数据用普通变量作为函数的参数实现起来非常麻烦,就可以把数据先存放在数组中,把存放的首地址传递给函数即可。如B有一套书(10分册)按照分册号整齐的摆放在书橱中,A来向B借这套书,B就把第一分册在书橱中的位置告诉A,A就可以找到这套书了,进而可以进行标记了。B再来看这套书时就是A做了标记的书了。

void Aborrow(int book[10]){ int i;

同样B把一套书的起始位置告诉了A,书的内容就会发生改变, 可能A只是看了看书并且改变了放这套书的位置,但是没有在书中作任何标记。

4 结束语

本文以学生经常进行的“借书”活动为例,通过类比法对函数定义、函数调用进行分析,可以看出函数参数的传递只能是实参的值传递给形参。指针变量作为函数的参数可以产生双向的影响,数组名作为函数的参数可以实现批量数据的处理。加强学生了对局部变量、指针、数组的理解及综合应用,提高了学生的学习积极性。

教育期刊网 http://www.jyqkw.com
参考文献

[1]谭浩强.C程序设计[M].北京:清华大学出版社,2005.

[2]苏小红,王宇颖,孙志岗,等.C语言程序设计[M].北京:高等教育出版社,2011.

[3]黄炜,张伟.C语言函数参数传递过程教学方法研究[J].电脑与信息技术,2013(21):66-69.

[责任编辑:汤静]