摘要:C程序是有函数组成的,使用函数可以提高程序设计的效率,因此学习好函数这章对C语言程序的理解和掌握是非常重要的,根据多年教学实践,以案例为引导教学起到了比较好的效果。

关键词:函数教学;函数定义;调用;声明

中图分类号:TP312.1-4 文献标识码:A文章编号:1007-9599(2011)24-0000-01

Function Teaching Talking in C Language

He Lixia

(Hubei Jingzhou Yangtze University College of Computer Science, Jingzhou434023,China)

Abstract:The C program is composed of functions, using functions can improve programming efficiency,so learning functions is very important to the C language program understanding and grasping,according to years of teaching practice,being guided teaching by the cases has played a good effect.

Keywords:Function teaching;Function definition;Call;Statement

一、引言

C语言是一种结构化程序设计语言,结构化程序设计是以模块化设计为中心,就是将―个大的计算任务划分为一个个比较小的任务,这些小任务均由函数来完成,因此对于函数这章掌握的好坏直接关系C语言进一步的学习,本人从事C语言教学多年,总结多年的教学经验,在此对函数教学的体会进行交流探讨。

二、函数的三要素

虽然C语言提供了丰富的库函数,但不可能满足每个用户的各种特殊需要,因此大量的函数必须由用户自己来编写,如何编写,并且很好地应用,就必须掌握函数的三要素----定义、调用和声明函数。

(一)如何定义函数。定义函数是重点,也是学生学习起来的难点,首先来看看函数定义的一般形式:函数类型函数名(形参类型说明表)

{

说明部分

语句部分

}

自己定义函数时,必须想清楚两点,第一是否有返回值;第二是否有形参。

下面通过一个例子展示一下如何来定义函数:

例:编写一个函数实现两个正数的最大公约数

第一种情况:有返回值

有参数,有两个整型形参

定义如下:

int gys1(int a ,int b)

{intm; m=a=1;m- -) if(a%m==0&&b%m==0)return m; //返回值的类型最好和函数类型一致

}

第二种情况:不需要返回值

有参数,同样是两个整型形参

void gys2(int a,int b) //void表示无类型,即不需要返回值

{int m; m = a=1;m- -) if(a%m==0&&b%m==0)printf("%d",m);

}

(二)调用函数

函数定义之后,是为了被调用,同样以上面的程序为例,展示下如何在主调函数中调用以上两个函数:

第一个情况被调用说明:

main()

{

int m,n; scanf("%d%d",&m,&n);printf("%d是最大公约数",gys1(m,n));

}

以上两种情况,调用语句用斜体表示!

第二个情况被调用说明:

main()

{

int m,n; scanf("%d%d",&m,&n);gys2(m,n);

}

(三)函数的声明

函数定义后,为了正确调用,要养成声明函数的习惯,以免出错,对于自己的定义的函数,函数声明如下:

函数类型函数名(形参类型[形参名],….. ); [形参名]表示可选,以上面的函数为例,

第一种情况的声明为:int gys1(int a,int b);或int gys1(int ,int);

第二种情况的声明为:void gys2(int a,int b);或void gys2(int , int );

三、函数的值传递

(一)基本概念。在进行参数传递的过程中,必须掌握形参与实参的概念:形式参数:定义函数时函数名后面括号中的变量名。实际参数:调用函数时函数名后面括号中的表达式。(二)单向值传递。当函数的形参和实参都是简单变量时,实参向形参传递数据是一种单向值传递,实参的值传递给对应的形参,但是形参的值不会回传给实参。(三)地址值传递。当函数的形参和实参是数组名或指针的时候,这个时候实参传递的是数组的首地址或指针指向变量的首地址,当把实参传递过去时,由于形参也代表首地址,这样实参和形参的首地址相同,即实参和形参占用相同的存储空间,这样一种传递称为地址值传递。

四、结束

函数的三要素和函数的值传递是C语言函数中基础也是很重要的内容,只有在掌握以上内容的基础上才能更好地学习后期知识,经过这么多年的实践教学,通过这种案例为引导的方式教学起到较好的效果!

参考文献:

[1]何光明.杨静宇.C语言程序与应用开发.北京:清华大学出版社,2006

[2]杜友福.C语言程序设计.科学出版社,2007

[3]蔡宏生.浅谈案例教学法在C语言教学中的实践.新天地理论编辑部.2009

C语言函数一章教学,c语言中函数教学的探讨相关推荐

  1. C语言——第三章:C语言程序设计

    文章目录 一.C语言程序设计 二.C程序的语句 1.表达式语句 2.函数调用语句 3.控制语句 4.复合语句 5.空语句 三.赋值语句 四.数据输出语句 1.printf函数调用的一般形式 2.格式字 ...

  2. python函数与方法的区别_python中函数和方法有哪些区别

    python中函数和方法有哪些区别 发布时间:2020-11-16 09:30:04 来源:亿速云 阅读:89 作者:小新 小编给大家分享一下python中函数和方法有哪些区别,相信大部分人都还不怎么 ...

  3. c语言第1章ppt,c语言第1章课件.ppt

    <c语言第1章课件.ppt>由会员分享,可在线阅读,更多相关<c语言第1章课件.ppt(30页珍藏版)>请在人人文库网上搜索. 1.第1章 C语言概述,计算机中心,C 语言程序 ...

  4. 零基础玩转C语言系列第一章——初始C语言(上)

    目录 一.如何学好C语言? 1.鼓励你,为你叫好. 2.挤时间学习 3.学好编程,不仅仅是学好C语言 二.初始C语言 本章目标 本章重点 1.什么是C语言? 2.第一个C语言程序 3.数据类型 4.变 ...

  5. 谭浩强c语言第7章,清华大学C语言谭浩强第7章.ppt

    清华大学C语言谭浩强第7章.ppt 第7章复合结构类型,第7章 复合结构类型,7.1 结构体类型的概述 7.2 结构体类型的定义 7.3 结构体变量的定义及内存分配 7.4 结构体变量的初始化和引用 ...

  6. c语言程序第一章编程,c语言程序的设计第一章 C语言编程入门.ppt

    c语言程序的设计第一章 C语言编程入门 第1章 C语言编程入门 本章是本书的入门篇,专为初学者熟悉编程过程.掌握程序结构而准备的. 本章学习目标 ? 1)? 能够通过模仿与改变来构造带有测试函数的C语 ...

  7. 大学c语言第三章作业,c语言程序设计一章部分和第三章习题答案.doc

    c语言程序设计一章部分和第三章习题答案 实 验 报 告 课程名称 C语言程序设计A 实验项目 编程环境认知与顺序程序设计 实验仪器 PC机一台 学 院_____信息管理学院_______ 专 业 信息 ...

  8. C语言第五章实验原理,C语言第五章实验报告.docx

    C语言第五章实验报告 C语言第五章实验报告?班级:14金工3班??????????学号???????????姓名:周俐俐一.实验目的?1.?熟悉C语言编程环境.2.?进一步熟悉用C语言调试C语言源程序 ...

  9. c语言函数返回值类型必须,C++中函数类型与定义的函数返回值类型必须相同么?...

    C++中函数类型与定义的函数返回值类型必须相同么?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C++中函数类型与定义 ...

  10. php中函数的定义格式,在php中函数定义的格式

    在php中函数定义的格式 函数就是功能.封装一段用于完成特定功能的代码.调用一个函数就是在调用一个功能. 自定义函数function generate_table($row, $col){$html ...

最新文章

  1. 「BAT面试现场」如何判断一个数是否在40亿个整数中?
  2. golang 解析html
  3. 玩游戏也能学Python?!论Python的正确打开方式
  4. python 表单中值为空的还需要传入么_牛掰!100行Python,自动动手打造一款多国语言翻译软件...
  5. android 滚动条 相关属性
  6. 无法在C语言软件里敲字,网页上不能输入文字怎么办
  7. 工作与生活如何平衡?
  8. [UI]抽屉菜单DrawerLayout分析(三)
  9. 我发现混的好的,都是挺能“吹牛逼”的
  10. 根据前序序列创建二叉树
  11. 儿童手表电话卡遇到问题需要怎么解决
  12. 计算机网络和internet选项,大师为你详解win10系统设置Internet选项的处理
  13. 什么是基站定位?基站定位的原理及特点
  14. sql优化之终极方案
  15. c语言结构体投票系统,结构体之投票系统
  16. 2022年最新二手苹果手机价格表
  17. Java 微信图片上传素材管理
  18. python整蛊代码+详解
  19. 51ditu:地图基础知识
  20. 【自动化测试selenium】

热门文章

  1. 经济学人阅读China ,Barriers to Sinology
  2. 【报错及解决】Variable w already exists, disallowed. Did you mean to set reuse=True in VarScope? Originally
  3. 明翰英语教学系列之雅思阅读篇V0.9(持续更新)
  4. webrtc 的回声抵消算法
  5. java反射 interface_Java反射
  6. 内外网通过公网IP访问DMZ主机
  7. 如何忽略IE代理设置
  8. 文献管理软件 linux,5款常用的文献管理软件
  9. ubuntu只读文件系统
  10. 计算机导论基础论文3000字,计算机导论课论文3000字