C语言函数调用及定义

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void triangle (void) { printf(" *\n"); printf(" ***\n"); printf("*****\n"); } 打印 无返回值函数void 无返回值函数
函数的作用仅仅是执行 一系列的指令
5
1.无参无返回值函数定义 p87 无参无返回值函数定义 无参无返回值 一般形式
程序中一旦调用了某个函数,该函数就会完成特定功 程序中一旦调用了某个函数 , 然后返回到调用它的地方。 能, 然后返回到调用它的地方。 除主函数外一般函数 都不能单独运行。 都不能单独运行。
函数经过运算,得到一个明确结果,并需要回送该结果-- 函数经过运算,得到一个明确结果,并需要回送该结果-- 一般有参有返回值函数。例,函数 有返回值函数。 函数cylinder()返回圆柱的体积。 返回圆柱的体积。 返回圆柱的体积 函数完成一系列操作步骤,不需要回送任何运算结果-- --无 函数完成一系列操作步骤,不需要回送任何运算结果--无 返回值函数: 返回值函数:
执行示例
main(画女孩)
画圆
画三角形
画交叉线
画交叉线
画横线
17
思考
main函数中三条语句 函数中三条语句 功能还不明显, 功能还不明显,可增 加一个函数draw_girl 加一个函数 画小女孩 请修改程序
画圆
main
画女孩
画三角形
画交叉线
画交叉线
画横线
18
画小女孩函数
/* Draws a girl */ void draw_girl(void) { /* Draw a circle. */ draw_circle(); /* Draw a triangle. */ draw_triangle(); /* Draw intersecting lines. */ draw_intersect(); }
/* 函数首部 */ /* 函数体 */ /*可以省略return */
void 函数名(形参表) { 函数实现过程 return; }
不能省略 否则,函数类型被默认定义为int 否则,函数类型被默认定义为
注:这类函数通常用于屏幕输出等
参数
参数的作用——实现值的传递 实现值的传递 参数的作用
主调函数向被调函数传递值——实际参数 实际参数 主调函数向被调函数传递值 实参),被调函数处理所需要的数据。 ),被调函数处理所需要的数据 (实参),被调函数处Draws a base line*/ void draw_base(void) { printf(" -------\n"); }
/*Draw a parallel*/ void draw_parallel(void) { printf("| |\n"); printf("| |\n"); } Parallel 平行线
第5讲 函数 函数的定义及调用
1
主要内容
函数 无参无返回值函数 有参无返回值函数 有参有返回值函数 函数间数据传递
整数类型 整数变量的定义 整数的运算 整数的输入和输出 整数在函数间传递
用户自定义函数
P84~P95 第4章函数
2
4.2.1 函数定义
函数是指完成一个特定工作的独立程序模块。 函数是指完成一个特定工作的独立程序模块。
printstar; sayHello(void); printstar; } void printStar(void) {printf(“*******”); } void sayHello(void) {printf(“hello world!”); }
21
P2
表示不返回结果
2.有参无返回值 函数定义P87
20
改错题 error1_6.c #include <stdio.h>
void main() { void main() { void printStar(void); void sayHello(void); printStar(); sayHello(); printStar(); } void printStar(void) {printf("*******"); } void sayHello(void) {printf("hello world!"); }
完成画三角形的函数 完成画三角形的函数 三角形
画一个交叉线 画一个横线
12
完成画基本组件的函数
/*Draw a circle*/ void draw_circle(void) { printf(" * \n"); printf(" * *\n"); printf(" * * \n"); }
Draw 绘画 Circle 圆
10
完成画简图(女孩) 完成画简图(女孩)的程序
打印图形
女孩 房子 男孩
11
sample01_03.c
完成画基本组件的函数 完成画基本组件的函数 基本组件
画一个圆 画一个横线 画一个平行线 画一个交叉线
在main函数中调用子 函数中调用子 函数完成画小女孩 函数完成画小女孩
画一个圆 画三角形 画一个交叉线 画一个交叉
19
完成画小女孩程序
#include <stdio.h> /* function prototypes */ int main(void) { draw_girl(); return 0; }
void draw_circle(void); void draw_intersect(void); void draw_base(void); void draw_triangle(void); void draw_girl(void );
14
base line基(横)线 基
完成画三角形的函数
/*Draws a triangle*/ void draw_triangle(void) { draw_intersect(); /*画相交线 */ draw_base(); /*画横线 */ }
15
Function 函数
画小女孩
#include <stdio.h> /* function prototypes */ void draw_circle(void);//圆
8
例:sample01_04.c
函数声明(主函数前) 函数声明(主函数前)p84(2) ( ) /* a program to output a triangle*/ #include <stdio.h> void triangle(void); main() { printf("About to print a triangle\n"); triangle(); printf("That was it!\n"); } void triangle(void) { printf(" *\n"); printf(" ***\n"); printf("*****\n"); } 函数定义 在main函数 前, 函数 前, 在main 在 在 在main函数的函 函数的 。 在 函数的函 的, 数 ,函数 函数 的, 调用。 。 调用。
函数调用
被调函数向主调函数传递值——形式参数 形式参数 被调函数向主调函数传递值 (形参),被调函数向主调函数传递被调 形参),被调函数向主调函数传递被调 ), 函数运行结果的数据。 函数运行结果的数据。
7
P4
无参无返回值的函数的调用
一般形式:函数名 ; 一般形式:函数名(); 上例: 上例:triangle(); ; 写一个主函数, 写一个主函数,调用 函数, “triangle ”函数,打印 函数 图形。 图形。
#include <stdio.h> void main(void) { void triangle();/*函数声明*/ triangle(); } void triangle () { printf(" *\n"); printf(" ***\n"); printf("*****\n"); }
void 函数名 函数名(void) { 函数体 } 或 void triangle (void) { printf(" *\n"); printf(" ***\n"); printf("*****\n"); } void triangle () { printf(" *\n"); printf(" ***\n"); printf("*****\n"); } void 函数名 函数名() { 函数体 }
P4
6
P4
无参无返回值的函数的声明 p87
一般形式: 函数名(void ); 一般形式:void 函数名 void triangle (void) ; 主调函数 告诉编译系统用户自定义函数的存在 编译系统在检查被调函数时要知道调用信息包括: 编译系统在检查被调函数时要知道调用信息包括: 函数名,参数,返回类型。 函数名,参数,返回类型。 仅仅声明了“函数名” 仅仅声明了“函数名”
9
主 调 函 数
告诉编译器, 告诉编译器,存在这样一个用 户自定义的函数, 户自定义的函数,及它的调用 方法:名称、参数、返回值。 方法:名称、参数、返回值。 函数调用 调用自定义函数,() 调用自定义函数, , ()一定 一定 。
被 调 函 数
执行流程
#include <stdio.h> #include <stdio.h> 程序的执行顺序 triangle () 程序的书写顺序 void main(void) void 函数开始执行, 从main函数开始执行, 函数开始执行 { { 与执行顺序有关-- --顺 与执行顺序有关--顺 void triangle(); printf(" 执行完main函数即结 *\n"); 序执行。 执行完 函数即结 序执行。 triangle(); 。 printf(" ***\n"); 束执行。 束执行 分支或循环会改变顺序 } printf("*****\n"); 遇到调用函数, 遇到调用函数,转向执 函数的书写顺序 } 行被调函数, 行被调函数,执行完被 void triangle () 与执行顺序无关 调函数后, void main(void) 调函数后,返回调用函 { 函数定义若写在函数调 数的调用处, 数的调用处,继续向下 printf(" *\n"); { 用之前,函数声明可省 用之前,函数声明可省 执行。 执行。 printf(" ***\n"); triangle(); 但不主张。 略,但不主张。 printf("*****\n"); } }
/*Draw intersecting lines*/ void draw_intersect(void) { /* Use 2 \'s to print 1 \*/ printf(" / \\ \n"); printf(" / \\ \n"); printf(" / \\\n"); }
intersecting lines相交线 相交线
1.无参无返回值函数 无参无返回值函数 无参 2.有参无返回值函数 有
用户自定义函数
函数定义: 函数定义:编制独立功能的程序 函数声明: 函数声明:主调函数调用前声明 函数调用: 函数调用:主调函数调用被调用函数 函数执行: 函数执行:运行被调用函数 注:
不能独立运行
4
写自己的函数--用户自定义函数 写自己的函数--用户自定义函数 --
库函数:由C语言系统提供定义。如scanf()等函数 库函数: 语言系统提供定义。 等函数 语言系统提供定义 自定义函数:用户根据需要定义。 自定义函数:用户根据需要定义。如cylinder()函数 P25 函数 main()是一个主函数,C程序由一个 是一个主函数, 程序由一个 程序由一个main()或多个函数构成 是一个主函数 或多个函数构成
Prototype 原型
void draw_intersect(void);//相交线 void draw_base(void);//横线 void draw_triangle(void);//三角形
int main(void) { /* Draw a circle */ draw_circle(); /* Draw a triangle */ draw_triangle(); /* Draw intersecting lines */ draw_intersect(); return 0; }
相关文档
最新文档