C语言函数一章教学,c语言中函数教学的探讨
摘要: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语言中函数教学的探讨相关推荐
- C语言——第三章:C语言程序设计
文章目录 一.C语言程序设计 二.C程序的语句 1.表达式语句 2.函数调用语句 3.控制语句 4.复合语句 5.空语句 三.赋值语句 四.数据输出语句 1.printf函数调用的一般形式 2.格式字 ...
- python函数与方法的区别_python中函数和方法有哪些区别
python中函数和方法有哪些区别 发布时间:2020-11-16 09:30:04 来源:亿速云 阅读:89 作者:小新 小编给大家分享一下python中函数和方法有哪些区别,相信大部分人都还不怎么 ...
- c语言第1章ppt,c语言第1章课件.ppt
<c语言第1章课件.ppt>由会员分享,可在线阅读,更多相关<c语言第1章课件.ppt(30页珍藏版)>请在人人文库网上搜索. 1.第1章 C语言概述,计算机中心,C 语言程序 ...
- 零基础玩转C语言系列第一章——初始C语言(上)
目录 一.如何学好C语言? 1.鼓励你,为你叫好. 2.挤时间学习 3.学好编程,不仅仅是学好C语言 二.初始C语言 本章目标 本章重点 1.什么是C语言? 2.第一个C语言程序 3.数据类型 4.变 ...
- 谭浩强c语言第7章,清华大学C语言谭浩强第7章.ppt
清华大学C语言谭浩强第7章.ppt 第7章复合结构类型,第7章 复合结构类型,7.1 结构体类型的概述 7.2 结构体类型的定义 7.3 结构体变量的定义及内存分配 7.4 结构体变量的初始化和引用 ...
- c语言程序第一章编程,c语言程序的设计第一章 C语言编程入门.ppt
c语言程序的设计第一章 C语言编程入门 第1章 C语言编程入门 本章是本书的入门篇,专为初学者熟悉编程过程.掌握程序结构而准备的. 本章学习目标 ? 1)? 能够通过模仿与改变来构造带有测试函数的C语 ...
- 大学c语言第三章作业,c语言程序设计一章部分和第三章习题答案.doc
c语言程序设计一章部分和第三章习题答案 实 验 报 告 课程名称 C语言程序设计A 实验项目 编程环境认知与顺序程序设计 实验仪器 PC机一台 学 院_____信息管理学院_______ 专 业 信息 ...
- C语言第五章实验原理,C语言第五章实验报告.docx
C语言第五章实验报告 C语言第五章实验报告?班级:14金工3班??????????学号???????????姓名:周俐俐一.实验目的?1.?熟悉C语言编程环境.2.?进一步熟悉用C语言调试C语言源程序 ...
- c语言函数返回值类型必须,C++中函数类型与定义的函数返回值类型必须相同么?...
C++中函数类型与定义的函数返回值类型必须相同么?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C++中函数类型与定义 ...
- php中函数的定义格式,在php中函数定义的格式
在php中函数定义的格式 函数就是功能.封装一段用于完成特定功能的代码.调用一个函数就是在调用一个功能. 自定义函数function generate_table($row, $col){$html ...
最新文章
- 「BAT面试现场」如何判断一个数是否在40亿个整数中?
- golang 解析html
- 玩游戏也能学Python?!论Python的正确打开方式
- python 表单中值为空的还需要传入么_牛掰!100行Python,自动动手打造一款多国语言翻译软件...
- android 滚动条 相关属性
- 无法在C语言软件里敲字,网页上不能输入文字怎么办
- 工作与生活如何平衡?
- [UI]抽屉菜单DrawerLayout分析(三)
- 我发现混的好的,都是挺能“吹牛逼”的
- 根据前序序列创建二叉树
- 儿童手表电话卡遇到问题需要怎么解决
- 计算机网络和internet选项,大师为你详解win10系统设置Internet选项的处理
- 什么是基站定位?基站定位的原理及特点
- sql优化之终极方案
- c语言结构体投票系统,结构体之投票系统
- 2022年最新二手苹果手机价格表
- Java 微信图片上传素材管理
- python整蛊代码+详解
- 51ditu:地图基础知识
- 【自动化测试selenium】
热门文章
- 经济学人阅读China ,Barriers to Sinology
- 【报错及解决】Variable w already exists, disallowed. Did you mean to set reuse=True in VarScope? Originally
- 明翰英语教学系列之雅思阅读篇V0.9(持续更新)
- webrtc 的回声抵消算法
- java反射 interface_Java反射
- 内外网通过公网IP访问DMZ主机
- 如何忽略IE代理设置
- 文献管理软件 linux,5款常用的文献管理软件
- ubuntu只读文件系统
- 计算机导论基础论文3000字,计算机导论课论文3000字