资源描述:
《《c语言程序设计》ppt电子教案课件第7章函数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《C语言程序设计》第七章函数最常用的几个库函数7.1C的库函数简介函数原型功能返回值doublefabs(doublex)求x的绝对值。计算结果doublesqrt(doublex)计算x的算术平方根。计算结果doublepow(doublex,dlubley)计算xy的值。计算结果doublesin(doublex)计算sin(x)的值。计算结果doublecos(doublex)计算cos(x)的值。计算结果doublelog(dlublex)计算lnx的值计算结果doubleexp(doublex)求ex的值
2、计算结果intrand(void)产生一个0到32767之间的随机整数。随机整数第7章函数最常用的几个库函数7.1C的库函数简介char*strcat(char*str1,char*str2)把str2接到str1的后面,str1最后面的' '被取消。返回str1char*strcpy(char*str1,char*str2)把str2指向的字符串复制到str1中去。返回str1unsignedstrlen(char*str)统计字符串str中字符的个数(不包括' ')返回字符个数FILE*fopen(char
3、*filename,char*mode)以mode指定的方式打开名为filename的文件。成功返回文件指针,否则返回0intfclose(FILE*fp)关闭fp所指的文件,释放文件缓冲区。有错返回非0值,否则返回0intfeof(FILE*fp)检查文件是否结束。文件结束返回非0值,否则返回0第7章函数使用库函数应注意:1、函数功能2、函数参数的数目和顺序,及各参数意义和类型3、函数返回值意义和类型4、需要使用的包含文件7.1C的库函数简介第7章函数7.2.1函数定义的一般形式类型标识符函数名(形式参数表){函
4、数声明部分;函数语句部分;}现代风格:函数返回值类型缺省int型合法标识符函数体函数的参数例有参函数(现代风格)intmax(intx,inty){intz;z=x>y?x:y;return(z);}例无参函数printstar(){printf(“**********”);}或printstar(void){printf(“**********”);}例空函数dummy(){}第7章函数形式参数:在定义函数时函数名后面圆括号中的变量名实际参数:在主调用函数中调用一个函数时,函数名后面圆括号中的表达式例比较
5、两个数并输出大者7.3.1形式参数和实际参数main(){inta,b,c;scanf("%d,%d",&a,&b);c=max(a,b);printf("Maxis%d",c);}max(intx,inty){intz;z=x>y?x:y;return(z);}实参形参c=max(a,b);(main函数)(max函数)max(intx,inty){intz;z=x>y?x:y;return(z);}第7章函数返回语句:形式:return(表达式);或return表达式;或return;功能:使程序控制从被调用函
6、数返回到调用函数中,同时把返值带给调用函数说明:若无return语句,遇}时,自动返回调用函数若函数类型与return语句中表达式值的类型不一致,按前者为准,自动转换------函数调用转换7.3.2函数的返回值第7章函数7.3.1形式参数和实际参数形式参数:在定义函数时函数名后面圆括号中的变量名实际参数:在主调用函数中调用一个函数时,函数名后面圆括号中的表达式说明:实参必须有确定的值,以传值给形参形参必须指定类型形参与实参类型一致,个数相同若形参与实参类型不一致,自动按形参类型转换——函数调用转换形参在函数被调用
7、前不占内存;函数调用时为形参分配内存;调用结束,内存释放第7章函数调用形式:函数名(实参表);说明:实参与形参个数相等,类型一致,按顺序一一对应无参函数调用时,圆括号不可省略函数定义与函数调用的区别:函数的定义中有“类型标识符”而函数的调用中没有。函数的定义中的参数为“形参”,而函数的调用中参数为“实参”。函数的定义后没有“;”,而函数的调用中有“;”(函数作为实参外)。7.2.2函数调用的一般形式第7章函数函数调用方式函数语句:例printf("IloveChina!");函数表达式:例c=max(a,b);
8、函数参数:例printf("%d",max(a,b));putchar(getchar());实参表求值顺序,因系统而定(TurboC自右向左)7.2.2函数调用的一般形式第7章函数main(){inti=2,p;p=f(i,++i);printf("%d",p);}intf(inta,intb){intc;if(a>b)c=1;elseif(a==b)