预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10
亲,该文档总共35页,到这已经超出免费预览范围,如果喜欢就直接下载吧~
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
C语言程序设计函数一、函数概述二、函数的定义一般格式:函数类型函数名(形参表)形参类型说明{说明部分语句部分}intmax(intx1,intx2,intx3)/*定义函数的返回值类型,函数名,形参*/{intmax;if(x1>x2)max=x1;elsemax=x2;if(max<x3)max=x3;/*通过比较得到三个数的最大值放到max中*/return(max);/*返回运算结果*/}三、函数的返回值返回语句形式:return(表达式);或return表达式;或return;功能:使程序控制从被调用函数返回到调用函数中,同时把返值带给调用函数说明:★函数中可有多个return语句若无return语句,遇到函数结束的“}”时,自动返回调用函数若函数类型与return语句中表达式值的类型不一致,按前者为准,自动转换------函数调用转换void型函数:无返回值的函数printstar(){printf("**********");}main(){inta;a=printstar();printf("%d",a);}例函数返回值类型转换四、函数的调用★调用形式:函数名(实参表)函数调用方面题目03/9(26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参03/9(27)有以下函数定义:voidfun(intn,doublex){……}若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是()。A)fun(inty,doublem);B)k=fun(10,12.5);C)fun(x,n);D)voidfun(n,x);调用函数的过程是:(了解)①为函数的所有形参分配内存单元。②计算各个实参表达式的值,一一对应的赋值给相应形参(若是无参函数,上述过程不执行)。③进入函数体,执行函数中的语句,实现函数的功能。④执行到return语句时,计算return语句中表达式的值(若是无返回值函数,本项不做),返回到主调函数。⑤释放形参及本函数内的局部变量所占内存,继续执行主调函数中的后继语句。说明:实参与形参个数相等,类型一致,按顺序一一对应形参与实参的结合顺序,因系统而定(TurboC自右向左)main(){inti=2,p;p=f(i,++i);printf("%d",p);}intf(inta,intb){intc;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;return(c);}五、函数说明★对被调用函数要求:必须是已存在的函数库函数:#include<*.h>用户自定义函数:函数类型说明函数说明一般形式:函数类型函数名(形参类型[形参名],…..);或函数类型函数名();作用:告诉编译系统函数类型、参数个数及类型,以便检验;函数定义与函数说明不同;函数说明位置:程序的数据说明部分(函数内或外);下列情况下,可不作函数说明若函数返值是char或int型,系统自动按int型处理;被调用函数定义出现在主调函数之前;有些系统(如BorlandC++)要求函数说明指出函数返值类型和形参类型,并且对void和int型函数也要进行函数说明对于函数的位置:对于非int函数,调用单位的位置要在被调用单位在下面,否则编译产生错误。解决方法是:在调用单位加上被调用函数的声(说)明。04/4(26)若程序中定义了以下函数doublemyadd(doublea,doubleB){return(a+B);}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()。A)doublemyadd(doublea,B);B)doublemyadd(double,double);C)doublemyadd(doubleb,doubleA);D)doublemyadd(doublex,doubley);六、函数参数及其传递方式★形参与实参形式参数:定义函数时函数名后面括号中的变量名实际参数:调用函数时函数名后面括号中的表达式说明:★实参必须有确定的值形参必须指定类型形参与实参类型一致,个数相同若形参与实参类型不一致,自动按形参类型转换———函数调用转换形参在函数被调用前不占内存;函数调用时为形参分配内存;调用结束,内存释放例参数传递方式值传递方式方式:函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值特点:★形参与实