资源描述:
《库函数函数的定义与返回值》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七章 函数库函数、函数的定义与返回值函数的调用、函数的说明调用函数和被调用函数间的数据传递函数的递归调用、程序举例第七章函数在解决一个比较复杂的实际问题时,不可能把所有要完成的任务全都写在main函数中。这时,程序往往由一个main函数和若干个其它函数组成,每个函数各自完成相对独立的部分功能。在前面的章节中,我们编写的程序都是由一个main函数来组成,在main函数中调用过scanf、printf等系统函数。模块化的程序设计方法函数间相互调用的示意main()f1()f11(){{{┇┇┇f1();f11();}┇
2、┇f12()f2();f12();{┇┇┇}}}f2()f21(){{┇┇f21();}┇}函数的分类从函数形式无参函数有参函数?我们学习过哪些无参函数和有参函数?从用户角度标准函数(库函数):由系统提供用户自定义函数库函数由系统提供,用户只要按照要求的格式正确调用即可。不同的C编译系统提供的库函数有些不同。§7.1库函数使用库函数应注意的问题:1、调用库函数时要用#include命令将相关的头文件包含进来。如:调用数学函数,用#include"math.h"
3、调用输入输出函数,用#include"s
4、tdio.h"
5、调用字符函数,用#include"ctype.h"
6、2、库函数调用的一般形式:函数名(参数表)要注意函数的功能、参数的个数与类型、函数值的类型。如:求平方根的函数sqrt的形式是:doublesqrt(doublex)3、库函数调用以两种方式出现。其一:出现在表达式中,即作为表达式的一部分参与运算。如:计算y=x2.5+1.3,则通过以下语句调用来实现。y=pow(x,2.5)+1.3;其二:独立的语句,即调用函数后加一分号。如:printf("*****");
7、4、调用库函数时,要注意参数的一些特殊要求。如三角函数要求自变量参数用弧度表示,开平方函数要求自变量参数的值大于或等于0。使用库函数应注意的问题(续)函数返回值的类型缺省int型无返回值:void函数体函数类型函数名(形参类型说明表){说明部分执行部分}§7.2函数的定义和返回值1.函数定义的一般格式现代风格:多个形参说明之间要用逗号隔开没有形参时,这一对括号不能省略合法标识符如果函数的类型不是void,函数体最后要用return语句去返回一个值.例1有参函数(现代风格)intmax(intx,inty){intz;
8、z=x>y?x:y;return(z);}例2有参函数(现代风格)intmax(intx,y){intz;z=x>y?x:y;return(z);}例3无参函数voidprintstar(){printf("**********");}或voidprintstar(void){printf("**********");}函数的定义示例例4空函数voiddummy(void){}函数体为空(留待以后补充)intmax2(intx,inty)/*现代风格*/{intmax;if(x>y)max=x;elsemax
9、=y;printf("max(max2)=%d",max);return(max);}voidmain(){inta,b,max;scanf("%d,%d",&a,&b);max=max2(a,b)+100;printf("max(main)=%d",max);}例函数的定义形参和函数体中定义的变量只在函数被调用时才临时分配存储单元,当退出函数时,这些存储单元全部被释放(称为局部性,因而与其它函数中的变量同名不会引起混淆)。main()时,main函数是什么类型的?可改写为max=x>y?x:y;形参实参函数
10、与函数之间是平等的voidmain(){intmax2(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}inta,b,max;scanf("%d,%d",&a,&b);max=max2(a,b);printf("max=%d",max);}函数的定义是平行的,不能在一个函数的内部再定义其它函数。即每个函数都是一个相对独立的模块,不能在写某一个函数时又包含了另一个函数的定义(main函数的执行时有一点点小的特权!)。返回语句形式return(表达式);或return表达式
11、;或return;功能:使程序控制从被调用函数返回到调用函数中,同时把返值带给调用函数说明:函数中可以有多个return语句,但只有其中的一个return语句能够得到执行若函数中没有return语句,或者是一个不带表达式的return语句,则该函数结束时自动返回调用函数一个不确定的值若函数类型与return语句中表达式值的类型不一致,按前者为准