C语言课程课件 第七章 函数

上传人:杨**** 文档编号:36590058 上传时间:2018-03-30 格式:PPT 页数:12 大小:216.50KB
返回 下载 相关 举报
C语言课程课件 第七章 函数_第1页
第1页 / 共12页
C语言课程课件 第七章 函数_第2页
第2页 / 共12页
C语言课程课件 第七章 函数_第3页
第3页 / 共12页
C语言课程课件 第七章 函数_第4页
第4页 / 共12页
C语言课程课件 第七章 函数_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《C语言课程课件 第七章 函数》由会员分享,可在线阅读,更多相关《C语言课程课件 第七章 函数(12页珍藏版)》请在金锄头文库上搜索。

1、第7章 函数 7.1 库函数 7.2 函数的定义和返回值 7.3 函数的调用 7.4 函数的说明 7.5 调用函数和被调用函数之间的数据传递 7.6 程序举例7.1 库函数库函数是由C语言提供的,不需要另外编写。使用库函数时,在调用之前必须使用“include“包含对应的“头文件“。 输入输出函数 数学函数 字符函数 字符串函数#include “stdio.h” #include “math.h” #include “ctype.h” #include “string.h”库函数的调用有两种出现形式: 出现在表达式中 作为独立的语句出现y=pow(x,2.5)+1.3;printf(“*n”

2、);7.2 函数的定义和返回值C语言虽然提供了丰富的库函数,但这些函数的功能已经被开发人员编写好了, 直接来调用就可以了,这一节我们将学习自己来编写函数,自己编写的函数 成为用户自定义函数。函数定义的一般形式如下:函数返回值的类型名 函数名(类型名 形式参数1,类型名 形式参数2,. ) 说明部分语句部分 标识符变量名函数的首部函数体该函数的返回值由它决定,省 略时默认为int类型例如:double add(double a,double b)double s;s=a+b;return s;退出调用函数,并 带回返回值return (s);注意此函数不能执行,只有必须在主函数中调用它才行。函数

3、的调用7.3 函数的调用调用形式:函数名(实际参数)实际参数的个数和类型必须于形 式参数一致.在主函数中调用用户编写的函数有两种方式: 作为表达式出现在允许表达式出现的任何地方。y=add(3.0,4.0); if(add(x,y)0) 某语句; 作为独立的语句出现。add(x,y);举例说明7.3 函数的调用#include main() double y,p,q;scanf(“%lf%lf”,y=add(p,q);printf(“%f”,y); pq5.53.5ydouble add(double a,double b) double s;s=a+b;return s;调用刚才遍好的用户自

4、定义函数调用时函数名要相同,并且实际参数的 个数和类型必须于形式参数一致 变量名可以不同sab3.55.5传递传递9.0退出函数,将s的值作为该函数的 返回值,所以该函数的值为9.0。 当退出用户自定义函数时,该函数 中的变量全部释放。9.09.000000用户在编写完整的程序时,用户自定义函数可以放在主 函数的前面,也可以放在主函数的后面,不过要是放在 主函数的后面,则要进行函数说明。7.4 函数的说明#include double add(double a,double b) double s;s=a+b;return s;main() double y,p,q;scanf(“%lf%lf

5、”,y=add(p,q);printf(“%f”,y); #include main() double y,p,q;scanf(“%lf%lf”,y=add(p,q);printf(“%f”,y); double add(double a,double b) double s;s=a+b;return s;注意用户自定义函数无论放在主函数的前面还是后面都没有关系,因为 程序都是先从main函数开始执行。不过当用户自定义函数出现在 主函数之后,一定要对该函数进行函数说明(函数返回值的类型为 int或char除外)。函数说明一般都是在程序的开头进行。函数说明的一般形式:类型名 函数名(参数类型1,

6、参数类型2,.); 类型名 函数名(参数类型1 参数名1,参数类型2 参数名2,.); double add(double,double); double add(double x,double y);#include double add(double a,double b); main() double y,p,q;scanf(“%lf%lf”,y=add(p,q);printf(“%f”,y); double add(double a,double b) double s;s=a+b;return s;7.5 调用函数和被调用函数之间的数据传递例7.3 以下程序试图通过调用swap函数,

7、把主函数中变量x和y中的数据进行交换。 请观察程序的输出。#include void swap(int,int); main() int x=10,y=20;printf(“(1)x=%d y=%dn“,x,y);swap(x,y);printf(“(4)x=%d y=%dn“,x,y); void swap(int a,int b) int t;printf(“(2)a=%d b=%dn“,a,b);t=a;a=b;b=t;printf(“(3)a=%d b=%dn“,a,b); /*函数说明语句*/10x20y(1)x=10 y=20调用传递ab1020传递传递t(2)a=10 b=202

8、010(3)a=20 b=10退出该函数,返回到它的调用处, 该函数无返回值,因为该函数为 void类型,此时该函数中的变量全 部释放。(4)x=10 y=20习题一.选择题 7.1 以下叙述中正确的是 A C语言程序总是从第一个定义的函数开始执行 B 在C语言程序中,要调用的函数必须在main()函数中定义 C C语言程序总是从main()函数开始执行 D C语言程序中的main()函数必须放在程序的开始部分 7.2 已定义了以下函数 fff( float x ) printf(“%dn”,x*x); 该函数的类型是 A 与参数x的类型相同 B void C int类型 D 无法确定 7.3

9、 有函数调用语句:func( (exp1, exp2), (exp3, exp4, exp5);,此函数调用语句含 有的实参个数是 A 1 B 2 C 4 D 5CCB习题7.4 有以下程序: int func(int a,int b) int c;c=a+b;return c; main() int x=6,y=7,z=8,r;r=func( (x- -,y+,x+y), z- - );printf(“%dn“,r); 程序的输出结果是 A 11 B 20 C 21 D 317.5 有以下程序: #include int f(int,int); main() int i=2,p;p=f(i,

10、i+1);printf(“%dn“,p); int f(int a,int b) int c;c=a;if(ab) c=1;else if(a=b) c=0;else c=-1;return (c); 程序的输出结果是 A -1 B 0 C 1 D 2CA习题7.6 有以下程序: #include int fun(int a,int b,int c) c=a*b; main() int w;fun(2,3,w); printf(“%dn“,w); 程序的 输出结果是 A 0 B 1 C 6 D 无定值7.7 有以下程序: #include double f(int n) int i; doub

11、le s;s=1.0;for(i=1;i unsigned fun6(unsigned num) unsigned k=1;dok*=num%10; num/=10;while(num);return k; main() unsigned n=26;printf(“%dn“,fun6(n); 7.9 以下程序的输出结果是_. #include double sub(double x,double y,double z) y-=1.0;z=z+x;return z; main() double a=2.5,b=9.0;printf(“%fn“,sub(b-a,a,a); 129.000000习题7.10 以下程序的输出结果是_. #include int fun2(int a,int b) int c;c=(a*b)%3; return c; int fun1(int a,int b) int c;a+=a; b+=b; c=fun2(a,b);return c*c; main() int x=11,y=19;printf(“%dn“,fun1(x,y); 4

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > C/C++资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号