华电大学c++课件第七讲

时间:2026-01-16

高级语言程序设计第五章 函数

– 认识函数 –函数定义 –函数调用 –总结、举例

认识函数#include <stdio.h> #include <math.h> void main( ) { float a=1.3 , b; 库函数 b=sin(a); printf(“%f,%f”,a,b);} #include <stdio.h> void main( ) { int a=1,b=3,c; 主函数 int max(int,int); c=max(a,b); printf(“max=%d”,c); } int max(int x,int y) { int z; 子函数 if(x>y)z=x; else z=y; (自定义函数) return(z); } 如何定义 如何调用 数据联系 函数编写者 函数执行者 函数使用者

程序由函数构成主函数、 库函数、自定义函数

程序的执行过程从主函数开始执行 主函数main 子函数max 三 c=max(a,b); 个 角 结束 return或 } 度

函数定义子函数和主函数的对比例:挑出两个数中最大的数 用主函数编写 #include <iostream.h> void main( ) { int x,y,z; 用子函数编写

写子函数要考虑: 1. 获得要处理的数据 参数个数、类型

函数参数 int max(int x,int y) 函数通过参 cin>>x>>y; 输入 { int z; 数获得要处 if(x>y) z=x; 处理 理的数据 if(x>y)z=x; else z=y; 处理 返回 else z=y; return( z); #include <iostream.h> 程序流程返 cout<<z; 输出 } 写子函数要考虑: void main( ) 回调用函数 {} int a=1,b=3,c; 2.返回 带回函数值 主函数 int max(int,int); 有函数值吗? 输入两个数 c=max(a,b); 最大数 找最大数 如果有,类型? cout<<c; }如何返回? 函数参数 return语句

函数定义函数首部类型 函数名(参数表) {变量定义 if(x>y) z=x; 执行部分 } 函数体 else z=y; – 类型 int float char等 函数值的类型 return( z); } void 无函数值(返回值) void ps( ) – 函数 必须唯一 { 名 参数 – (称为形式参数,简称形参) printf(“\n*************”); } 每个参数都要有单独的类型说明 函数值类型的确定 函数进行数据处理的对象 函数首部定义的类型决定 函数值的类型 函数值 –函数类型为void –函数类型为int float char等 无函数值 通过return语句返回函数值 return语句格式:(可没有 return(表达式); return语句) return; int max(int x,int y) { int z; 函数 首部

函数调用#include <stdio.h> 主 void main( ) 调 { int a=1,b=3,c; 函 int max(int,int); c=max(a,b); 数 printf(“max=%d”,c); } int max(int x,int y) { int z; if(x>y)z=x; else z=y; return(z); } 被 调 函 数 #include <iostream.h> void main( ) 主调 { void ps( ); 函数 ps(); } void ps() 被调 函数 { cout<<“*”;}

函数调用的形式函数名(参数表)实参

– 当作语句 要求: 被调用函数的类型是void。 要求: – 当作表达式 被调用的函数的 被调函数为int、float、 – 作函数参数 如:sin(max(a, b)) 类型不能是void char等类型,一般不采 用这种调用方式。 类型

函数调用基本要求1被调用的函数必须存在 2实参与形参个数相等类型对应 3在主调函数中要声明被调函数

#include <stdio.h> void main( ) 主 { int a=1,b=3,c; 调 int max(int,int); 函 c=max(a,b); 数 printf(“max=%d”,c); } int max(int x,int y) { int z; if(x>y)z=x; else z=y; return(z); } 详见教材P88 6.2.3 被 调 函 数

对被调函数的声明–格式类型 函数名(参数类型表 ); –作用 便于编译系统对被调函数的正 确性做检查 –省略被调函数声明的情况

被调函数在主调函数之前,在主 调函数中可以省略被调函数声明

程序举例例5 编写程序调用函数求两个实数之和。 子函数:形式参数个数、类型 主调函数:选合适的调用方式 是否要申明被调函数 函数返回值、类型 名字:sum 类型: 实型 #include <stdio.h> 参数:两个 实型 void main( ) { float x,y; #include <stdio.h> float sum(float,float); float sum(float a,float b) { float s; scanf(“%f,%f”,&x,&y); s=a+b; printf(“sum=%f”,sum(x,y)); } return s; } float sum(float a,float b) void main( ) { float s; s=a+b; { float x,y; return s; } scanf(“%f,%f”,&x,&y); printf(“sum=%f”,sum(x,y)); }

函数调用函数的嵌套调用某子函数中调用了另一个子函数 main()#include <stdio.h> void pm( ) 子函数1 { void ps( ); ps( ); printf(“\nHow are you?”); ps( ); } void ps( ) 子函数2 { printf(“\n***************”); } void main( ) { pm( );} pm() ps()

结束

*************** How are you?***************

主函数

主函数能调用子函数

子函数能调用子函数 子函数不能调用主函数

复习-函数的定义与调用函数定义类型 函数名(形参表) {变量定义 执行部分 } 参数: ……

个数、类型

函数名

有函数值? 若有,类型?

定义与调用的关系 #include <iostream.h> #include <iostream.h>void main( ) void ps( ) 子函数1 return 函数调用的应用方式 函数定义的类型 函数值 { int a=1,b=3,c; { cout<<“\n***************”; } 表达式 函数参数 int int char 有 float max(int,int); 有 void pm( ) 子函数2 c=max(a,b); 语句 {cout<<“max=”<<c; } } cout<<“\nWelcome”; 无 不需要 void void main( ) int max(int x,int y) 编写主调函数注意 函数调用 主函数 {{int z;); ps( 选合适的函数调用应用方式 函数名(参数表) if(x>y)z=x; pm( ); 是否要申明被调函数 – 作表达式 – 作函数参数 else z=y; ps( ); } return(z); } – 作语句

函数的定义和调用举例例1 编写一个求两个数最大公约数的函数,并调用该函数求任意 三个数的最大公约数。 #include <iostream.h> 找最大 int gys(int m,int n) 公约数 有 参数: 2个 gys 函数值: { int r; 整型 整型 m n r=m%n; 找最大公约数的辗转相除法 while(r!=0) 1 r=m%n { m=n; …… 此处隐藏:1566字,全部文档内容请下载后查看。喜欢就下载吧 ……

华电大学c++课件第七讲.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:4.9 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:19元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219