收藏 分享(赏)

08.函数.ppt

上传人:hwpkd79526 文档编号:7069372 上传时间:2019-05-05 格式:PPT 页数:18 大小:134.50KB
下载 相关 举报
08.函数.ppt_第1页
第1页 / 共18页
08.函数.ppt_第2页
第2页 / 共18页
08.函数.ppt_第3页
第3页 / 共18页
08.函数.ppt_第4页
第4页 / 共18页
08.函数.ppt_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、函数,C程序的“砖瓦”,概述,函数是c语言的基本构件,是所有程序活动的舞台一个C程序由若干个函数构成其中有一个主函数main(),库函数和用户定义函数,库函数:由系统提供,用户无须定义,也不必在程序中作类型说明,只需在程序前包含有该函数原型的头文件即可在程序中直接调用。 如printf()、scanf()、getchar()、putchar()、gets()、puts()、strcat()等函数均属此类 用户定义函数:由用户按需要写的函数。,定义函数,type-specifier function_name(parameter list) body of function 类型说明符声明了函数

2、返回值的类型 他可以是任何有效类型,如果省略,默认为int参数列表使用逗号分隔的变量表,各变量表由变量类型和变量名组成。参数列表可以为空,此时括号不能省略,不管定义时还是调用时 每个函数参数必须同时具有类型说明符和参数名。参数说明的一般形式: f(type varmane1, type varmane2, type varmaneN) f(int i,int k,float j);/*correct*/ f(int i,k,float j); /*incorrect*/ (eg.L8_1.c),说明,一个源程序文件由一个或多个函数组成一个C程序由一个或多个源程序文件组成C程序的执行始于main

3、()函数,终于main()函数所有函数都是平行的,即在定义函数时是互相独立的。不能把一个函数定义在另一个函数内部。函数间可以相互调用,但不能再调用main()函数,空函数,类型标识符和函数名称为函数头 中的内容称为函数体 函数体可以为空 eg.int max(int x,int y) 调用空函数时,什么也不做,函数返回,return语句 两种格式: return 表达式 return (表达式)用途: 使得本函数立即退出,返回到调用语句的地方 返回一个值,从函数返回,函数可以用两种方法停止运行并返回到调用它的程序 执行到函数的最后一个语句 遇到return语句 一个函数可以有多个返回语句,遇到

4、任何一个,即退出 eg.L8_1.c,L8_2.c,返回值,如果不希望函数返回值,将函数类型声明为void除了类型为void的函数外,其他所有函数均返回一个值。该值由return语句决定。如果没有return语句,则函数返回一个不确定的值 eg.L8_3.c只要函数没有被说明为void,它就可以作为操作数用在任何有效的c表达式中,如:x=power(y);if(max(x,y)100) printf(“greater“);for(ch=getchar();isdigit(););但是函数不能作为赋值对象max(a,b)=100;/*incorrect*/,既然非void类型的函数都返回一个值,

5、是不是必须把他付给某个变量? 答案是:不必!如果没有把它赋给某个变量,它就被丢弃了 eg.printf() 凡不要求返回函数值的函数,最好都定义为void类型,以防止把函数用在表达式或意外的误用eg.l8_4.c,返回非整型值的函数,如果不明确指明一个函数的返回值,缺省为int当一个函数的返回值不是整型时,应该: 明确说明函数的类型 函数声明必须位于第一次调用之前函数原型: type func_name(type varmane1, type varmane2, type varmaneN);eg.l8_5.c,参数传递,形式参数;实际参数 c语言中的函数调用传递参数是“按值传送” 如果要对实

6、参的修改通过形参带回主调函数,用指针eg.L8_6.c 用数组作为函数参数时,就把数组的地址传给了函数eg.L8_7.c;L8_score.c;L8_matchChar.c,变量的作用域,c语言中的每个函数都是一个独立的代码块。一个函数的代码属于该函数专有在代码块内部定义的变量称为局部变量,局部变量随代码块的运行而产生,随代码块的退出而消亡函数的形参也是局部变量 eg.L8_8.c在任何函数之外说明的变量称为全局变量,可以被任何一个函数访问,修改 eg.L8_9.c一个例外:在函数内部用存储类型符static说明的变量不随函数的运行、退出而产生、消亡。但仍然只能在该函数内部访问它(它的作用域仍

7、然限制在该函数内部) eg.L8_10.c如果全局变量和局部变量同名,局部变量“屏蔽”全局变量 eg.L8_11.c,函数的嵌套调用,语言中各函数之间是平行的,不允许作嵌套的函数定义 但是语言允许在一个函数的定义中出现对另一个函数的调用。这样就出现了函数的嵌套调用。即在被调函数中又调用其它函数 eg.计算s=12! 22!+32!( L8_12.c),递归,在函数内部调用它本身 E.g L8_13.c;L8_14.c,main()的返回值和参数,函数main()向调用进程(一般式操作系统)返回一个整数 return exit() stdlib.h 不返回任何值时,main()也可以声明为voi

8、d main()函数也可以有参数,用来在控制台输入命令时向程序传递信息 int main(int argc,char *argv) e.g L8_15.c; L8_16.c,作业,编写函数 min(x,y),返回将两个double型数中数值较小的那个编写函数isPrime(n),如果n是素数,则返回1,否则返回0。使用该函数输出100500之间的素数编写函数jieCheng(n),返回n!。使用该函数计算:e=1+1/1!+1/2!+1/n!+(误差小于0.0001),编写函数upper(c),如果将字符c是小写字母,则将它变成相应的大写字母。编写函数sort(int a),调用该函数,对数组进行排序。编写函数myStrcpy(s1,s2),实现strcpy的功能,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报