6.2函数的分类(课件)-《 C语言程序设计》同步教学(电子工业出版社)

2024-08-11
| 21页
| 47人阅读
| 10人下载
普通

内容正文:

第六章 程序的模块化--函数 1 CONTENTS 目录 01 02 函数的分类 函数的认知 03 自定义函数及其应用 04 函数的调用 CONTENTS 目录 05 06 函数的递归调用 函数的嵌套调用 07 数组作为函数的参数 08 变量的作用域 C语言 知识树 My First Template 函数的分类 C语言程序设计 5 C语言 本次任务 利用函数 求1到5的平方根和立方。 函数的分类 My First Template C语言 函数的认知 函数 具有一定功能的代码块。 My First Template 分工 复用 封装 C语言 函数的认知 函数的分类 C语言中的函数按照不同的分类标准可以分为不同的类型。 1、从函数定义的角度 库函数: 由C语言系统提供; 用户无须定义,也不必在程序中作类型说明; 只需在程序前包含有该函数定义的头文件; 自定义函数: 用户在程序中根据需要而编写的函数; My First Template 自定义函数 库函数 C语言 函数的认知 库函数 使用库函数应注意: (1)、函数功能 (2)、函数参数的数目、顺序、各参数意义和类型 (3)、函数返回值意义和类型 (4)、需要使用的包含文件 内置函数 头文件 用途 double sqrt(double x) math.h 计算x的平方根 double pow(double x, double y) 计算x的y次幂 double ceil(double x) 求不小于x的最小整数,并以double形式显示 double floor(double x) 求不大于x的最大整数,并以double形式显示 int toupper(int x) ctype.h 如果x为小写字母,则返回对应的大写字母 int tolower(int x) 如果x为大写字母,则返回对应的小写字母 int rand(void) stdlib.h 产生一个随机数 void exit(int retval) 终止程序 My First Template C语言 函数的认知 函数的分类 C语言中的函数按照不同的分类标准可以分为不同的类型。 2、按照有没有参数 无参函数: 函数定义、说明及调用中均不带参数。主调函数和被调函数之间不进行参数传送。此类函数通常用来完成一组指定的功能,可以返回或不返回函数值。 有参函数: 函数定义、说明时有参数,称为形式参数(简称为形参)。在函数调用时也必须给出参数,称为实际参数(简称为实参)。进行函数调用时,主调函数将把实参的值传送给形参,供被调函数使用 My First Template 无参函数 有参函数 C语言 函数的认知 任务实现 #include <stdio.h>//预处理输入输出 #include <math.h>//预处理数学相关 void main()//主函数 { int x=1; double pingfangen,lifang; while(x<= 5) { pingfangen=sqrt(x);//使用库函数sqrt() lifang=pow(x,3);//使用库函数pow() printf(" %d的平方根:%3.2f\t %d的立方:%5.0f ", x,pingfangen,x,lifang); x++; } } My First Template 自定义函数及应用 C语言程序设计 12 C语言 本次任务 利用函数实现具有加减乘除功能的简单计算器。 C语言程序设计 函数基础及应用 My First Template C语言 C语言程序设计—自定义函数及应用 #include "stdio.h"//预处理 void main()//主函数 {//定义变量存储参数和和差积商 int canshu1,canshu2,he,cha,ji,shang; printf("请输入两个数: "); scanf("%d%d",&canshu1,&canshu2);//输入参数 he=canshu1+canshu2;//求和 cha=canshu1-canshu2;//求差 ji=canshu1*canshu2;//求积 if(canshu2!=0)//0不能做除数 { shang=canshu1/canshu2;//求商 } printf("%d和%d的和是%d ",canshu1,canshu2,he); printf("%d和%d的差是%d ",canshu1,canshu2,cha); printf("%d和%d的积是%d ",canshu1,canshu2,ji); printf("%d和%d的商是%d ",canshu1,canshu2,shang); } 我们能解决的问题--加减乘除 运行结果 My First Template #include "stdio.h"//预处理 void main()//主函数 {//定义变量存储参数和和差积商 int canshu1,canshu2,he,cha,ji,shang; printf("请输入两个数: "); scanf("%d%d",&canshu1,&canshu2);//输入参数 he=canshu1+canshu2;//求和 cha=canshu1-canshu2;//求差 ji=canshu1*canshu2;//求积 if(canshu2!=0)//0不能做除数 { shang=canshu1/canshu2;//求商 } printf("%d和%d的和是%d ",canshu1,canshu2,he); printf("%d和%d的差是%d ",canshu1,canshu2,cha); printf("%d和%d的积是%d ",canshu1,canshu2,ji); printf("%d和%d的商是%d ",canshu1,canshu2,shang); } C语言 任务分析 数据采集 数据输出 算法逻辑 函数 自定义函数及应用—任务分析 My First Template C语言 任务分析 自定义函数及应用—任务分析 C语言中所有要使用的函数都必须“先定义、后使用”,在C编译环境中是必须先有这个函数,才能去调用。函数定义完成,必须明确函数功能。 My First Template 函数的定义 函数的声明 函数的调用 C语言 void printChar() { printf("******"); } int qiuhe(int x, int y) { int z; z=x+y; return sum; } 该函数名为printChar ,无参数,使用void说明无返回值,函数体内的语句用于输出6个“*”。 该函数名为qiuhe,它有两个int类型的参数,返回值为int类型。在函数体内有三条语句实现了求两个数的和,并将它返回。 第一步:函数定义 自定义函数及应用—相关知识:函数的使用步骤 My First Template C语言 C语言程序设计 函数基础及应用 返回语句 形式: return(表达式); 或 return 表达式; 或 return; 功能:使程序控制从被调用函数返回到调用函数中,同时把返值带给调用函数 说明: 函数中可有多个return语句 若无return语句,遇}时,自动返回调用函数 若函数类型与return语句中表达式值的类型不一致,按前者为准,自动转换 例 有返回值函数 int sum(int x,int y ) { return x+y; //return (x+y); } 函数返回值 例 无返回值函数 void swap(int x,int y ) { int temp; temp=x; x=y; y=temp; } My First Template C语言 #include <stdio.h> float sum (int, int); void main() { . . . . . . } float sum(int x,int y) { . . . } 函数原型说明在形式上与函数头部类似,最后加一个分号。原型说明中参数表里的参数名可以不写(只写参数类型)。 第二步:声明函数原型 自定义函数及应用—相关知识:函数的使用步骤 My First Template C语言 C语言程序设计 函数基础及应用 通过在程序中使用函数名称,可以执行函数中包含的语句,这称为调用函数。 调用形式 函数名(实参表); 说明:实参与形参个数相等,类型一致,按顺序一一对应,实参必须有确定的值,形参必须指定类型。 第三步:函数调用 函数语句: 例 printstar(); 函数表达式: 例 m=max(a,b)*2; 函数参数: 例 printf(“%d”,max(a,b)); m=max(a,max(b,c)); My First Template C语言 #include "stdio.h"//预处理 int qiuhe(int x,int y); int qiucha(int x,int y); int qiuji(int x,int y); int qiushang(int x,int y); void main()//主函数 {//定义变量存储参数和和差积商 int canshu1,canshu2,he,cha,ji,shang; printf("请输入两个数: "); scanf("%d%d",&canshu1,&canshu2);//输入参数 he=qiuhe(canshu1,canshu2);//求和 cha=qiucha(canshu1,canshu2);//求差 ji=qiuji(canshu1,canshu2);//求积 shang=qiushang(canshu1,canshu2);//求商 printf("%d和%d的和是%d ",canshu1,canshu2,he); printf("%d和%d的差是%d ",canshu1,canshu2,cha); printf("%d和%d的积是%d ",canshu1,canshu2,ji); printf("%d和%d的商是%d ",canshu1,canshu2,shang); } 任务实现 自定义函数及应用—任务实现 int qiuhe(int x,int y)//求和函数 { return x+y; } int qiucha(int x,int y)//求差函数 { return x-y; } int qiuji(int x,int y)//求积函数 { return x*y; } int qiushang(int x,int y)//求商函数 { if(y!=0) { return x/y;} else { return 0; } } 函数原型声明 函数调用 定义四个子函数 My First Template $$

资源预览图

6.2函数的分类(课件)-《 C语言程序设计》同步教学(电子工业出版社)
1
6.2函数的分类(课件)-《 C语言程序设计》同步教学(电子工业出版社)
2
6.2函数的分类(课件)-《 C语言程序设计》同步教学(电子工业出版社)
3
6.2函数的分类(课件)-《 C语言程序设计》同步教学(电子工业出版社)
4
6.2函数的分类(课件)-《 C语言程序设计》同步教学(电子工业出版社)
5
6.2函数的分类(课件)-《 C语言程序设计》同步教学(电子工业出版社)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。