- 2
- 0
- 约1.22万字
- 约 58页
- 2017-06-06 发布于山西
- 举报
第8章函数演示稿件
8.1 概述 一个较大型的程序一般均分成多个模块,每个模块完成一个特定的功能。在C语言中用函数来实现模块。一个C程序可由一个main函数和若干个其他函数构成。由主函数调用其他函数,其他函数之间也可相互调用,甚至可以调用函数自己(递归调用),但不能调用主函数。 程序开发人员常用的方法是将一些经常使用的功能编写成函数,放在公共函数库中。 C语言程序的结构如图所示。在每个程序中,主函数main是必须的,它是所有程序的执行起点,main函数只调用其它函数,不能为其它函数调用。其它函数没有主从关系,可以相互调用。所有函数都可以调用库函数。程序的总体功能通过函数的调用来实现。 例8.1 函数调用的简单例子 #includestdio.h void main(){ void printstar(); void print_message(); printstar(); print_message(); printstar(); } void printstar(){ printf(**************************************\n); } void print_message(){ printf( How do you do!\n); } 说明: 1,一个C程序由一个或多个程序模块组成。每一个程序模块作为一个源程序文件。 2,一个源程序文件由一个或多个函数组成,编译是以源程序为单位; 3,程序的执行是由主函数开始到主函数结束,其它函数是通过函数调用来实现的。 4,所有函数都是平行的。即函数定义不能嵌套,即函数内不能定义函数,但函数之间可以互相调用,甚至可以调用该函数本身(递归调用)但不能调用主函数 5,从用户的角度函数分为:标准函数(即库函数)和用户定义函数。 6,从函数的形式看,函数分为无参函数和有参函数 函数定义举例: 输入三个整数,求三个整数中的最大值 不使用函数(除main外) #includestdio.h void main() { int n1,n2,n3, max; scanf(%d%d%d,n1,n2,n3); if(n1n2) max=n1; else max=n2; if(n3max) max=n3; printf(max=%d\n,max); } 使用函数 #includestdio.h void main() { int n1,n2,n3,nmax; int max(int,int,int); scanf(%d%d%d,n1,n2,n3); nmax=max(n1,n2,n3); printf(max=%d\n,nmax); } ? int max(int x,int y,int z) { int m; if(xy) m=x; else m=y; if(zm)m=z; return m; } 8.4.2 函数调用的形式 函数调用可以是单独调用,或在表达式中,或作为函数参数。 如printstar();c=2*max(a,b);m=max(a,max(b,c)); 8.4.3对被调用的声明和函数原型 (1)对自定义函数。当函数定义在函数调用后面且函数类型不是int型时必须在调用前对调用函数进行说明,说明格式为: 函数类型 函数名(形参类型1,形参类型2,...); (2)对库函数,则必须将包含该库的原型声明的头文件包含到程序中: #include头文件名.h 课堂练习 习题8.3:写一个判素数的函数,在主函数中输入一个整数,输出是否素数的信息 主函数: 函数声明与变量声明 输入一个整数 函数调用并根据返回值输出是否素数的信息 判断素数函数: for i=2 to n/2 若n能被某一整数整除则返回0 返回1 #includestdio.h void main(){ int n,prime(int); printf(输入一个正整数:\n); scanf(%d,n); if(prime(n)) printf(%d是一个素数\n,n); else printf(%d不是一个素数\n,n); } int prime(int n){ int i; for(i=2;i=n/2;i++) if(n%i==0) return 0; return 1; } #includestdio.h void main(){ float p(int,int); int x,n; printf(输入n和x的值:\n); scanf(%d%d,n,x
您可能关注的文档
- 第1章国际贸易概述演示稿件.ppt
- 第1章基础知识演示稿件.ppt
- 第1章彩色电视色度学基础演示稿件.ppt
- 第1章数字电路基础演示稿件.ppt
- 第2章机械制动演示稿件.ppt
- 第2章线性规划演示稿件.ppt
- 第2章计数问题演示稿件.ppt
- 第2篇__砂型和砂芯的制造演示稿件.ppt
- 第3章(身份认证)演示稿件.ppt
- 第3章栈和队列演示稿件.ppt
- 2025年农资电商十年化肥线上价格分析报告.docx
- 高中地理野外考察中误差分析的地图投影方法研究教学研究课题报告.docx
- 2025年锌溴液流电池在轨道交通供电应用报告.docx
- 2025年文化空间改造室内设计五年发展报告.docx
- 区域教师队伍均衡发展中的人工智能技术应用与教师培训研究教学研究课题报告.docx
- 高中生通过平行宇宙理论构建校园多世界学习系统课题报告教学研究课题报告.docx
- 高中生对AI在海洋资源勘探利益分配中应用认知的实证研究教学研究课题报告.docx
- 家校社协同促进中小学生数字素养发展的实践策略研究教学研究课题报告.docx
- 基于计算机视觉技术的校园课堂行为智能分析系统设计课题报告教学研究课题报告.docx
- 空间化人工智能教育平台在远程教育中的个性化学习支持研究教学研究课题报告.docx
原创力文档

文档评论(0)