资源描述:
《第四讲函数和指针ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、函数考点考核几率分值函数的定义与返回值80%1~3库函数60%1~2函数调用及形参与实参之间的数据传递(难点)100%2~4函数的声明60%0~1一、函数的定义1、函数定义功能单一且独立的程序模块,用于完成特定的任务并根据需要返回一个确定的值。2、函数定义的格式返回值类型函数名(类型1形参名1,类型2形参名2,…){说明部分语句部分}首部+函数体3、注意事项(1)函数返回值类型名缺省时,返回值类型默认为int,无返回值时类型是void。(2)函数名和形参名是用户标识符。主函数的函数名必须为main。(3)函数名后面的括号“()”不能省。形参用于
2、数据传递,可以缺省。(4)一对花括号中的内容为函数体,包含两部分:说明部分和语句部分。(5)函数不能嵌套定义。二、函数返回值return语句格式为:return(表达式);注意:(1)表达式可以不加括号。(2)表达式的值就是函数的返回值,类型应和函数定义返回值的类型一致,否则系统强制转换。(3)如果有多个return语句,则只有第一个起作用,因为一旦遇到return语句就会结束当前函数的运行。doublearea(doublea,doubleb){doubles;s=a*b;returns;}intmax(inta,intb){intc;if(
3、a>b)c=a;elsec=b;returnc;}例1intisprime(inta){inti;for(i=2;i<=a/2;i++)if(a%i==0);;}三、库函数C语言自己提供的函数称为库函数。在使用某一类库函数的时候,需要在程序的开头使用include命令包含头文件。如,使用printf和scanf函数时,开头要加上#include使用数学函数类里的函数时开头要加上#include“math.h”“”可以换成<>附录五P190四、函数调用1、函数调用的形式函数名(实参);说明:(1)不写返回值类型和实参类型。(2)
4、实参可以是常量、变量、表达式、函数调用。(3)参数传递方向:实参→形参(单向)。(4)若函数返回值类型是void,则函数调用不能出现在表达式中,不能赋值给变量。(5)函数可以直接或间接的调用自己,称为递归调用。函数数据的传递注意:(1)数据只能从实参单向传到形参,无论形参值如何改变,都不会影响到对应实参的值;(2)函数最多只能返回一个函数值。形参在函数被调用时临时分配存储空间,一旦函数使用完毕,这些空间马上被释放。voidswap(intx,inty){intt;t=x;x=y;y=t;printf("%d%d",x,y);}main(){in
5、ta=3,b=4;swap(a,b);printf("%d%d",a,b);}2008年4月(12)以下程序的输出结果是:#includevoidfun(intx){if(x/2>0)fun(x/2);printf(“%d”,x);}main(){fun(3);printf(“”);}五、函数的声明1、函数声明的形式返回值类型函数名(类型1形参1,类型2形参2,…);即在函数的首部加上分号。2、函数声明的注意事项(1)可省略形参名,不可省略形参的类型。如,doublearea(double,double);(2)声明时的参
6、数名可与定义时的形参名相同,也可不同。如,doublearea(doublex,doubley);(3)声明的位置:在函数的内部,该函数属于私有函数;如果在所有函数的外部,则属于公有函数。3、函数的两种使用方式(1)先定义,后调用。(2)先声明,后调用,最后定义。voidswap(intx,inty){intt;t=x;x=y;y=t;printf("%d%d",x,y);}main(){inta=3,b=4;swap(a,b);printf("%d%d",a,b);}main(){inta=3,b=4;voidswap(int,int);sw
7、ap(a,b);printf("%d%d",a,b);}voidswap(intx,inty){intt;t=x;x=y;y=t;printf("%d%d",x,y);}2008年4月(34)有以下程序#includeintf(intx){inty;if(x==0
8、
9、x==1)return(3);y=x*x-f(x-2);returny;}main(){intz;z=f(3);printf(“%d”,z);}程序的运行结果是:A)0B)9C)6D)82007年9月试题分析(25)若函数调用时的实参为变量时,以下关于函数形参
10、和实参的叙述中正确的是A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函