第8章函数演示稿件.pptVIP

  • 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

文档评论(0)

1亿VIP精品文档

相关文档