- 3
- 0
- 约1.26万字
- 约 44页
- 2016-12-28 发布于北京
- 举报
模块化程序设计与函数函数的定义与调用函数的嵌套、递归调用变量作用域与存储方式编译预处理函数设计举例 函数 模块化程序设计 在设计较复杂的程序时,我们一般采用的方法是:把问题分成几个部分,每部分又可分成更细的若干小部分,逐步细化,直至分解成很容易求解的小问题。这样的话,原来问题的解就可以用这些小问题来表示。 求解小问题的算法和程序称为“功能模块”。 在C语言中,这样的“功能模块”是通过函数来实现的,最终函数通过调用完成组合,形成的源程序文件就对应完整的功能要求。 函数是C语言程序最基本的单位,一个C语言源程序往往由一个或多个函数组成,但是任何一个C语言源程序有且仅有一个main函数,程序执行从main函数开始,在main函数中结束程序。 函数的分类 库函数 自定义函数 库函数prg6-1.c #include stdio.h #include math.h void main() { int a, s; a = -100; s = abs(a); printf(数据%d的绝对值是%d\n,a,s); } 引例 #include stdio.h void main() { int x,y,sum,maxdata,i; printf(从键盘输入变量x和y的值\n); scanf(%d,%d,x,y); for(i=1;i=20;i++) //输出20个*,然后换行 printf(*); printf(\n); sum=x+y; //求和 printf(%d和%d的和等于:%d\n,x,y,sum); for(i=1;i=20;i++) printf(*); printf(\n); if(xy)maxdata=x; //找出最大值 else maxdata=y; printf(%d和%d的最大值是:%d\n,x,y,maxdata); for(i=1;i=20;i++) printf(*); printf(\n); } 自定义函数 用户根据实际需求先定义函数,然后通过调用执行函数,实现函数的功能。 运算类函数:为了完成某类运算,函数执行结束后会得到运算结果,通常需要将这个结果反馈给调用它的函数。 操作类函数:为了完成某类操作,函数的执行过程对应一系列操作,这类函数通常不需要产生反馈结果。 函数的定义 //函数首部 函数类型 函数名(参数列表) { //大括号内的称为“函数体” 变量定义语句; 操作语句; [return 语句;] } 函数的定义 函数首部 函数体 int max(int a, int b) { int m; if(ab) m=a; else m=b; return m; } 函数首部 函数类型 函数名(参数列表) 对于计算类函数,函数执行结束后将向调用它的函数产生一个结果,这个结果的类型就是函数类型,对于操作类函数,函数类型通常定义为void。 函数名由用户自己定义,其命名规则和变量名相同。 参数是指函数调用时需要提供的初始数据,各参数之间用逗号分隔。 参数列表的形式为: 参数1类型 参数1名, 参数2类型 参数2名, ..., 参数n类型 参数n名 如果函数调用时不需要提供初始数据,则圆括号内的参数可以为空,但是括号不能省略,这样的函数称为无参函数,反之则为有参函数。 函数体 函数体由大括号括起来,用于实现函数功能的若干条语句均写在函数体内。 计算类函数需要向调用它的函数产生一个反馈结果,这个结果称为函数返回值,函数体内需要有return语句。 函数返回值类型和函数类型应该一致,不一致时以函数类型为准。 程序的执行prg6-2.c #include stdio.h void main() { int x=3,y=5,z; int max(int a,int b); z=max(x,y); printf(最大数是:%d\n,z); } int max(int a,int b) { int m; if(ab) m=a; else m=b; return m; } 函数的参数 参数的类型 参数的传递 参数的类型 #include stdio.h void main() //主调函数 { int x=3,y=5,z; int max(int a,int b); z=max(x,y); //调用语句 printf(最大数是:%d\n,z); } //被调用的自定义函数max int max(int a,int b) { int m; if(ab) m=a; else m=b; return m; } 参数的传递 函数调用时,实际参数按照位置上的对应关系依次传递给形式参数。 值传递
您可能关注的文档
- 《chapter2ITP4.ppt
- 《Chapter2InternationalEconomicInstitutionssinceWorldWarⅡ.ppt
- 《chapter2成本会计2.ppt
- 《chapter2交易磋商与合同订立.ppt
- 《Chapter3-20110308.ppt
- 《Chapter3Inquiry.ppt
- 《chapter5案例分析融资结构1.ppt
- 《chapter2黑客常用的系统攻击方法1_扫描器.ppt
- 《Chapter4_北大青鸟HTML学习教材.ppt
- 《chapter1企业战略管理概述课件.ppt
- 2026届云南省保山市昌宁县第一中学高三上学期期中考试历史试题(含答案).pdf
- 2025-2026学年辽宁省实验中学高三上学期10月考试英语试题 .pdf
- 广东省茂名市2026年高三高考一模地理试卷( 含答案).pdf
- 2025-2026学年青海省海南藏族自治州高级中学高二上学期第一次月考英语试题.pdf
- 内蒙古自治区锡林郭勒盟三县联考2025-2026学年九年级上学期12月月考数学试题(含答案).pdf
- 2025-2026学年安徽合肥市高三上学期第一次教学质量检测英语试题.pdf
- 2025-2026学年普通高等学校招生全国统一考试全国I卷英语精准模拟试题.pdf
- 2025-2026学年青海省大通县朔山中学高三上学期9月阶段检测(一)英语试题.pdf
- 福建省泉州市晋江市2025-2026学年八年级(上)期末历史试卷(含答案).pdf
- 2025-2026学年山东省潍坊市国开中学高一上学期第一次月考英语试题.pdf
最近下载
- 乐购Hymall连锁超市-收银员排班工具使用作业规范.pdf VIP
- 黑龙江省教育学会示范性高中专业委员会2025届高三下学期第一次模拟考试 语文 含答案.docx VIP
- ISPE第五部分试车与确认课件.pptx VIP
- 【2026年春新教材】部编版小学二年级下册道德与法治全册教案(教学设计).docx
- 数学北师大版八年级下册多边形的内角和教学设计.docx VIP
- 守正创新担使命,凝心聚力启新程——校长在2026年春季学期全体教师开学大会上的讲话.docx
- 《体育课程与教学论》全套PPT课件.pptx VIP
- 第一章税收初阶资料.ppt VIP
- 数据接口安全管理制度.docx VIP
- 道路车辆 电气及电子设备的环境条件和试验 第3部分:机械负荷.docx VIP
原创力文档

文档评论(0)