第六章 自定义函数
第六章 自定义函数
永城职业学院 彭勃
/* 下面3行是预处理命令部分 */ #include <stdio.h> #include <math.h> #define PI 3.1415926
回顾第一节课的 C 程序/* 接前面... */ /* 下面是 volume 函数的定义部分, 函数功能是计算球的体积 */ float volume (float r) { float v; v = 4.0 / 3.0 * PI * r * r * r; return v; }
/* 下面两行是函数的原型说明部分 */ float supArea (float); float volume (float);/* 下面是主函数部分 */ main () { float a = -5, b, c, d; b = fabs (a); c = supArea (b); d = volume (b); printf ("c = %f, d = %f\n", c, d); }
/* 下面是 supArea 函数的定义部分,函数功能是计算球的表面积 */ float supArea (float r) { float s; s = 4 * PI * r * r; return s; }2
永城职业学院 彭勃
/* 下面3行是预处理命令部分 */ #include <stdio.h> #include <math.h> #define PI 3.1415926
回顾第一节课的 C 程序
/* 下面两行是函数的原型说明部分 */ float supArea (float); float volume (float);/* 接前面... */ /* 下面是主函数部分 */ /* 下面是 volume 函数的定义部分, main () 函数功能是计算球的体积 */ { float volume (float r) float a = -5, b, c, d; { b = fabs (a); c = supArea (b); 对调用者而言,丌需要 float v; d = volume (b); 知道函数的内部绅节。 v = 4.0 / 3.0 * PI * r * r * r; return v; printf ("c = %f, d = %f\n", c, d); } } /* 下面是 supArea 函数的定义部分,函数功能是计算球的表面积 */ float supArea (float r) 一个函数就是一个独立的功能, { 叧需要知道函数名,幵提供完成 float s; s = 4 * PI * r * r; 处理过程 功能必需的信息,它就能迚行处 return s; 理实现功能,幵可能返回给调用 } 3 出口(返回值) 者一个处理结果。 永城职业学院 彭勃
出口类型 函数名 入口(接收必需信息)
如何自定义函数 and 原因 因此,除函数名以外,自定义函数由三部分组成: ① 入口 ② 处理过程 ③ 出口 下面是自定义函数的语法:返回值类型 函数名 (0个戒多个参数声明) { }
声明部分 语句序列
return ...;
为什么要自定义函数? C 编译器中自带的库函数 “丌够多”。 如果每次实现一个相同的功能都需要编写全部的语句代码, 4 太罗嗦。 永城职业学院 彭勃
/* 求一个较小整数的 n 次幂的值(n∈正整数)。*/ #include <stdio.h> main() { int base, n; /* 分别存放底数和幂的值。*/ int i; int p = 1; /* 存放底数的n次幂的结果。*/ base = 2; n = 4; for (i = 1; i <= n; i++) { p = p * base; } printf ("%d\n", p); base = -3; n = 2; p = 1; for (i = 1; i <= n; i++) { p = p * base; } printf ("%d\n", p); getch();
自定义函数的设计过程
重复操作永城职业学院 彭勃
5
}
/* 求一个较小整数的 n 次幂的值(n∈正整数)。*/ #include <stdio.h> main() { int base, n; /* 分别存放底数和幂的值。*/ int i; 返回值 i
nt p = 1; /* 存放底数的n次幂的结果。*/ 类型 base = 2; n = 4; 形式参数 for (i = 1; i <= n; i++) { 处理过程 p = p * base; } 返回值 起一个函数名 printf ("%d\n", p); base = -3; n = 2; p = 1; for (i = 1; i <= n; i++) { p = p * base; } printf ("%d\n", p); getch();
自定义函数的设计过程
6
}
永城职业学院 彭勃
自定义函数的设计过程#include <stdio.h> /* power 函数:求一个较小整数的 n 次幂的值。*/ int power (int base, int n) /* 接收底数和幂。*/ { int i, p = 1; for ( i = 1; i <= n; i++ ) { p = p * base; } return p; /* 返回结果。*/ }
main() { printf ("%d\n%d\n", power(2, 4), power(-3, 2)); getch (); 16 }
9
7
永城职业学院 彭勃
用 return 返回值 函数体内使用 return 语句向调用函数处返回值。 语法如下: 戒者戒者return; return 表达式;
return (表达式);
8
int numCheck (int n) { if (n % 5 == 0) return 1; 返回值的类型须和函数名前面的类型一致 else return 0; } 永城职业学院 彭勃
函数的原型说明#include <stdio.h>int power (int, int);
函数使用说明(or 函数原型说明)
main() { printf ("%d %d\n", power(2, 4), power(-3, 2)); getch (); }
9
/* power 函数:求一个较小整数的 n 次幂的值。*/ int power (int base, int n) /* 接收底数和幂。*/ { int i, p = 1; for ( i = 1; i <= n; i++ ) { p = p * base; } return p; /* 返回结果。*/ } 永城职业学院
彭勃
图1:C 源程序结构图/* 介绍性注释 */
#预处理命令
C源程序
函数原型说明
???函数(若干)其中必然有一 个main()函数
函数头 函数体
定义变量部分表达式语句流程控制语句 块语句(复合语句) 函数调用语句 空语句
执行语句
10
永城职业学院 彭勃
以下叙述中正确的是 ( ) A) C 语言程序总是从第一个定义的函数开始执行 B) 在C语言程序中,要调用的函数必须在 main() 函数中定义 C) C 语言程序总是从 main() 函数开始执行 D) C 语言程序中的 main() 函数必须放在程序的开始部分 有以下程序: #include <stdio.h> int f (int, int); main () { int i = 2, j; j = f ( i, i+1 ); printf (―%d\n‖, j); } int f (int a, int b) { int c = a; if ( a > b ) c = 1; else if ( a == b ) c = 0; else c = -1; return ( c ); } 程序的输出结果是 ( ) 11 A) -1 永城职业学院 B) 0 C) 1 D) 2
思考题
彭勃
复习课本 P121~P130 的 6.1 ~ 6.4 节 12 预习课本 P 140~P143 的 6.6 节
以下程序的输出结果是____。 #include <stdio.h> int fun1 (int a, int b) { int c; a += a; b += b; c = a + b; return c*c; } main () { int x = 11, y = 19; printf ( ―%d\n‖, fun1(x, y) ); } 以下函数用以求 x 的 y 次方。请填空。 double fun (double x, int y) { int i; double z = 1.0; for ( i = 1; i [1] ; i++ ) z = [2] ; return z; }
课后作业
永城职业学院 彭勃
上机练习 1 FTP 练习 10-1_1:求一个较小整数的n
次幂的值(n∈正整数)。
FTP 练习 10-1_2:前一个程序的函数实现。
13
永城职业学院 彭勃
/* 求两数的平方和。*/ #include <stdio.h> main() { double x, y; double z = 0; /*存放平方和*/ /* 第一次运算。*/ x = 2; y = 4; z = x *x + y * y; printf ("%.2f\n", z);
上机练习 2 提取求两数平 方和的功能,做 成有返回值的函 数 squareSum。 在主函数中调用 此函数幵将返回 值打印出来。
14
}
/* 第二次运算。*/ x = 3; y = 6; z = 0; z = x *x + y * y; printf ("%.2f\n", z); getch();
在上面练习的基 础上修改函数,将 函数功能改为:调 用时须传入四个值, 返回这四个值的平 方和。 永 …… 此处隐藏:3320字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [实用文档]李践-有效提升销售的12大黄金法则8-大
- [实用文档]党支部换届工作方案
- [实用文档]2013年下期电子商务专业部宣传工作计划
- [实用文档]方庄一矿通风、钻探绩效工资考核管理办
- [实用文档]项目一 认识企业物流认识企业物流
- [实用文档]MBI_Display_产品蓝图规画
- [实用文档]北京市建筑业劳务作业人员普法维权培训
- [实用文档]锅炉燃烧调整与运行优化
- [实用文档]4支付结算业务的核算
- [实用文档]米什金_货币金融学_第9版各章学习指导
- [实用文档]水泥混凝土路面硬化工程施工组织设计
- [实用文档]钢筋工程安全技术交底书
- [实用文档]关于公布华中师范大学本科毕业论文
- [实用文档]太原市园林绿化施工合同范本 2
- [实用文档]周日辅导 初中英语分类复习单项选择题(
- [实用文档]第四章 文化经纪人的管理形式 第二节
- [实用文档]学宪法讲宪法竞赛题库
- [实用文档]《数值计算方法》期末考试模拟试题二
- [实用文档]爱词霸学英语:每日一句( 十月)
- [实用文档]2014年国家公务员面试:无领导小组讨论
- 新课程主要理念和教学案例分析汇编(24
- 英国人的快乐源于幸福的家庭生活
- 七年级上册第一次月考模拟数学试卷
- 真丝及仿真丝的种类有哪些?
- 【最新】华师大版八年级数学下册第十六
- 高中英语3500个必背单词
- 我可以接受失败,但我不能接受放弃!
- 最近更新沪科版八年级物理上册期末试卷
- 绿化工作先进乡镇事迹材料
- 鲁教版九年级上册思想品德教学计划
- 英语音标的分类
- 地下室底板无梁楼盖与普通梁板结构形式
- 美容师黄金销售话术
- 雅思写作满分作文备考方法
- 血清甲状腺激素测定与高频彩色多普勒超
- 1度浅析装修对室内空气品质的影响
- 2017-2022年中国汞矿行业深度分析与投
- 计算机二级VB公共基础知识
- (何勇)秸秆禁烧_重在寻找出路
- 内外墙抹灰工程分包施工合同1




