资源描述:
《《C语言程序设计》第6章函数.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六章函数——结构化程序设计基础6.1函数的概念结构化程序设计要求一种自顶向下的设计方法,也就是将复杂的系统划分为相对独立的,功能较为单一的子系统的组合。每个子系统称为模块,在C语言中表现为函数。复杂问题main()abca1a2b1b2c1c2各模块之间的关系称之为接口。优点:函数实现的功能单一完整,可以独立设计,单独调试。易于维护,通用性强。【例6-1】通过函数求两个数的最大值。/*example6-1通过函数求最大值*/#includeintGetMax(int,int);/*函数的原型声明*/voidma
2、in(void){inta,b,c,d;/*说明变量*/scanf("%d,%d,%d",&a,&b,&c);d=GetMax(a,b);/*调用函数GetMax求a、b的较大值赋给d*/d=GetMax(d,c);/*调用函数GetMax求d、c的较大值赋给d*/printf("TheMaximumofa,b,cis%d",d);}intGetMax(intx,inty){intmax;if(x>y)max=x;/*x>y成立,x为较大值*/elsemax=y;/*x>y不成立,y为较大值*/returnmax;}函数的分类
3、及调用过程函数可分为标准库函数和用户自定义函数。标准库函数是C语言系统提供的一系列的实现特定功能的模块,如已经学习过的输入输出函数、数学函数、字符串处理函数等等。对于用户自定义函数,用户必须完整地定义函数的接口以及函数的实现细节,然后通过数据接口调用函数以实现所需的功能用户自定函数的使用,应包括两个过程:⑴函数的定义:函数定义的作用就是确定函数的名称、接口、以及内部的实现细节。⑵函数的调用:函数的调用是根据数据接口的定义,将实际数据传递给函数,函数执行其功能得到所需结果的过程。【例6-2】通过标准函数及用户定义函数实现求字符串中含
4、有的实际字符的数量,输出结果。/*example6-2通过函数输出字符串的实际长度*/#include#includeintGetStringLength(char*p);/*用户函数原型声明*/voidmain(void){charpszStr[80];intiStrLen;gets(pszStr);/*调用字符输入函数输入字符串*/iStrLen=strlen(pszStr);/*调用标准库函数求字符串长度*/printf("Thestringlengthis%d",iStrLen);
5、gets(pszStr);iStrLen=GetStringLength(pszStr);/*调用用户定义函数求字符串长度*/printf("Thestringlengthis%d",iStrLen);}/*用户定义求字符串长度函数*//*函数名GetStringLength*//*参数指向字符的指针p*//*返回值字符个数,整型*/intGetStringLength(char*p){intiCount;iCount=0;while(*p!=' '){iCount++;p++;}returniCount;}6.2函数的定义
6、和调用⒈函数的基本结构#includevoidmain(void){inta,b,c;scanf(“%d,%d”,&a,&b);c=max(a,b);printf(“%d”‘c);}intmax(intx,inty){intz;z=x>=y?x:y;return(z);}主函数函数体函数的类型,返回值的类型。函数名(用标识符命名),引用函数的标志,并得到结果。函数参数说明表。定义!引用!(1)函数的名称(2)函数的类型(3)函数的形式参数(4)函数体函数定义的目的函数定义是要确定如下四点:名称函数的类型函数的参数
7、函数的功能⒉函数的定义格式:type函数名(参数说明表){内部说明语句;功能语句;}如果函数有返回值,应含有return语句。intmax(intx,inty){intz;z=x>=y?x:y;return(z);}说明:⑴函数不能嵌套定义,但可以嵌套引用,包括引用自己。intmax(intx,inty){…intcx(intc,intd){…}/*Error!*/…}⑵函数如果无返回值,type应说明为空类型void。函数无参数应定义成void。voidBell(void){printf(“ 07”);}⒊函数的调用⑴调用形式
8、:函数名(实参表)一般引用方式有三种:语句形式:max(a,b);表达式形式:c=max(a,b)*2;函数参数:c=max(a,max(b,d));【例6-3】函数调用举例,通过函数求xn,在主函数中输入x及n,并调用该函数,输出结果。/*exa