教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 实用文档 >

第六章 自定义函数

来源:网络收集 时间:2026-08-26
导读: 第六章 自定义函数 永城职业学院 彭勃 /* 下面3行是预处理命令部分 */ #include stdio.h #include math.h #define PI 3.1415926 回顾第一节课的 C 程序/* 接前面... */ /* 下面是 volume 函数的定义部分, 函数功能是计算球的体积 */ float volume (float r)

第六章 自定义函数

永城职业学院 彭勃

/* 下面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字,全部文档内容请下载后查看。喜欢就下载吧 ……

第六章 自定义函数.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1803453.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)