第3章自定义函数设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一个函数定义好后,就必须用一定的方式去调用它。一个函 数调用另一个函数,将调用的函数称为主调函数,将被调用 的函数称为被调函数。
expr1、expr2、expr3类型可不同,表达式值取较高 的类型
2019/9/20
《解析C程序设计》第3章 自定义函数设计
9
求x和y的最大值
• max=x>y?x:y;
2019/9/20
《解析C程序设计》第3章 自定义函数设计
10
函数的定义
函数返回值类型:缺省 int型,无返回值void
合法标识符
• 对于小程序可以这样做,但是,对于一个 有一定规模的程序这样做就不合适了。
2019/9/20
《解析C程序设计》第3章 自定义函数设计
3
• 事实上,C程序可以
– 只包含一个主函数 – 也可以包含一个主函数和若干个其它函数(库
函数和自定义函数)
• C语言是一个函数式语言。
2019/9/20
《解析C程序设计》第3章 自定义函数设计
《解析C程序设计》第3章 自定义函数设计
6
问题的提出
• 例3-1 由用户输入三个整数,编程求解三 个数的最大值和最小值。
2019/9/20
《解析C程序设计》第3章 自定义函数设计
7
问题的分析
【分析】 根据前面所学,本问题将可以所有功能都在主函数中完成。
也可以用两个函数分别完成求最大值和最小值,在主函数中调 用这两个函数即可。这样的好处是,可以实现代码共享,而且 使相对独立功能的代码分离,便于维护。
运算规则:
expr2
expr1 ? expr2 : expr3=
条件运算符可嵌套 如 x>0?1:(x<0?-1:0)
优先级: 13
expr3
当expr1非0 当expr1非0
结例合求方a向+|:b| 自右向左
printf(“a+|b|=%d\n”,b>0?a+b:a-b);
如 a>b?a:c>d?c:d a>b?a:(c>d?c:d)
参数:传递数 据信息的通道
现代风格:
函数体
2019/9/20
函数类型 函数名(形式参数类型说明表)
{ 声明部分
执行部分
}
例 无参函数 例 有参函数(现代风格) v或{oid例pi{rnpintr有timinfn例(ta参t“dsxz*ut;(函a*mi空rn*数(*mt函)*xy(*,数(i*i{nn现)*tt*zy代*im=)n\xnta风>”xzy);(格;?inx)t:}yx;,int y) v{oidp}rpirnzrite=nftx(t{u“s>rt*y}an*?r(*(xz*v):*;oy*i;d*}*)*r*et\nu函”r)n数;(z体)}; 为空
{
double x;
scanf("%lf",&x);
double s;
/* 不能在执行语句中穿插定义变量 */
scanf("%lf",&s);

}
2019/9/20
ห้องสมุดไป่ตู้
《解析C程序设计》第3章 自定义函数设计
14
课堂练习
定义两个函数: 求两个整数的最大值函数 求两个整数的最小值函数
2019/9/20
4
C函数分类
(1)用户自定义函数(包括主函数); (2)系统提供的库函数。由C系统开发商提
供,程序员可以直接调用。
• 自定义函数以下简称函数。 • 下面通过一个简单问题来初步了解自定义
函数的用法。
2019/9/20
《解析C程序设计》第3章 自定义函数设计
5
3.1 最大值和最小值问题
2019/9/20
《解析C程序设计》第3章 自定义函数设计
15
int max(int x,int y) {
return(x>y?x:y); }
int min(int x,int y) {
return(x<y?x:y); }
2019/9/20
《解析C程序设计》第3章 自定义函数设计
16
主调函数与被调函数
C语言程序是由若干个函数组成的,各函数在结构上是独立 的,但它们所处理的数据却是相互联系的。
②函数名即函数的名称,是由用户取的合法标识符。C语言的关键字不 能作函数名。自定义函数的名称可以使用库函数名,但这时库函数被屏蔽。
③形式参数表是一个用逗号分隔的变量表,当函数被调用时这些变量接 受调用参数的值。相当于函数调用时传递信息的通道。注意:每个参数必须 指明类型!
④在函数的定义中,如果没有函数体,即函数什么功能都不做,我们称 为空函数。空函数的功能主要是在程序设计中,留出该函数的功能,以后在 需要的时候补充上去。
求最大值和最小值可以使用条件运算符完成,当然还有其 他办法(你知道吗?)。
另外还涉及到函数的定义、函数的调用、函数值的返回、 参数的传递、函数的声明等基本知识。下面逐步介绍。
2019/9/20
《解析C程序设计》第3章 自定义函数设计
8
条件表达式运算符
一般形式: expr1 ? expr2 : expr3
《解析C程序设计》第3章 自定义函数设计
11
传统风格的函数定义
函数类型 函数名(形式参数表) 形参类型说明 {
声明部分 执行部分 }
例 有参函数(传统风格) int max(x,y) int x,y; { int z;
z=x>y?x:y; return(z); }
一般情况下,均使 用现代风格定义函 数,并且要指定函 数类型。
2019/9/20
《解析C程序设计》第3章 自定义函数设计
12
函数定义说明
①函数类型表示在调用了该函数后,其返回值的数据类型。可为:int、 char、float、double等。如果函数无数据返回时,应使用void 作类型定义 符。注意,省略了类型说明符,C编译器认为函数返回值为一个整型值类型 (int)。
第3章 自定义函数设计
本章内容
最大值和最小值问题
– 条件运算符 – 函数的定义 – 函数的调用 – 函数的返回 – 参数的传递 – 函数的声明
交换两个变量值的问题
– 变量的作用域 – 变量的存储类型
2019/9/20
《解析C程序设计》第3章 自定义函数设计
2
• 前面的所有程序都是由一个主函数main() 组成,程序的所有操作都在主函数中完成。 (当然也包含一些库函数)
2019/9/20
《解析C程序设计》第3章 自定义函数设计
13
特别注意
(1)函数不能单独运行,函数可以被主函数或其它函数调用, 也可以调用其它函数,但是不能调用主函数。 (2)C规定,函数体的声明部分和执行部分应严格划分,且声 明部分放在函数体的开始。
例如,以下定义是不允许的:
void main()
相关文档
最新文档