中国高校课件下载中心 》 教学资源 》 大学文库

《C语言程序设计》课程教学课件(PPT讲稿)第八章 函数

文档信息
资源类别:文库
文档格式:PPT
文档页数:63
文件大小:641.51KB
团购合买:点击进入团购
内容简介
§8.1 概述 §8.2 函数的定义 §8.4 函数的声明和调用 §参数传递方式 §地址传递 §函数的嵌套与递归调用 §递归调用 §外部函数与内部函数 §变量的作用域和存储类型 §全局变量-外部变量 §打印1到5的阶乘值
刷新页面文档预览

第8章1 函数 §8.1概述 ★模块化程序设计 ★基本思想:将一个大程序按功能分割成一些小模块, 特点: ●模块相对独立、功能单一、接口简单 ●控制了程序设计的复杂性 ●提高元件的可靠性 ●缩短开发周期 ●避免程序开发的重复劳动 ●易于维护和功能扩充 冬开发方法:自上向下,逐步分解,分而治之

第8章 函数 §8.1 概述 模块化程序设计 基本思想:将一个大程序按功能分割成一些小模块, ❖特点: ⚫模块相对独立、功能单一、接口简单 ⚫控制了程序设计的复杂性 ⚫提高元件的可靠性 ⚫缩短开发周期 ⚫避免程序开发的重复劳动 ⚫易于维护和功能扩充 ❖开发方法: 自上向下,逐步分解,分而治之

★C是模块化程序设计语言 C程序 源程序文件1 源程序文件1 源程序文件n 预编译命令 函数1 函数n 说明部分 执行部分 C程序结构 四C是函数式语言,包括标准库函数和用户自定义函数 四必须有且只能有一个名为main主函数(开始1结束点) 四c程序的执行总是从main函数开始,在main中结束 四函数不能嵌套定义,可嵌套调用(主调和被调) 四main函数只能是主调函数,其他函数则两者皆可

C是模块化程序设计语言 源程序文件1 预编译命令 说明部分 执行部分 函数1 函数n 源程序文件i 源程序文件n C程序 C程序结构 C是函数式语言,包括标准库函数和用户自定义函数 必须有且只能有一个名为main主函数(开始\结束点) C程序的执行总是从main函数开始,在main中结束 函数不能嵌套定义, 可嵌套调用(主调和被调) main函数只能是主调函数,其他函数则两者皆可

★函数分类 必从用户角度 ●标准函数(库数):由系统提供 ●用户白自定义丞数 从函数形式 ●无参丞数 ●有参数 使用库函数应注意: 1、函数功能 2、函数参数的数目和顺序,及各参数意义和类型 3、函数返回值意义和类型 4、 需要使用的包含文件

函数分类 ❖从用户角度 ⚫标准函数(库函数):由系统提供 ⚫用户自定义函数 ❖从函数形式 ⚫无参函数 ⚫有参函数 使用库函数应注意: 1、函数功能 2、函数参数的数目和顺序,及各参数意义和类型 3、函数返回值意义和类型 4、需要使用的包含文件

函数返回值类 §8.2函数的定义 型缺省int型无 返回值,省略 ★一般格式 return,void 函数头 标准c定义: 函数类型 函数名(形参类型说明表) 函数体 声明部分 执行部分 例无参函数 printstar() {printf(*******n);} 或 printstar(void printf******n2”);}

§8.2 函数的定义 一般格式 函数返回值类 型缺省int型无 返回值,省略 return,void 函数体 函数类型 函数名(形参类型说明表) { 声明部分 执行部分 } 标准c定义: 例 有参函数(标准c) int max(int x,int y) { int z; z=x>y?x:y; return(z); } 例 有参函数(标准c) int max(int x, y) { int z; z=x>y?x:y; return(z); } 例 空函数 dummy( ) { } 函数体为空 例 无参函数 printstar( ) { printf(“**********\n”); } 或 printstar(void ) { printf(“**********\n”); } 函数头

函数头 函数类型 函数名(形参表) 经典c定义: 形参类型说明 说明部分 函数体 语句部分 例 有参函数(传统风格) int i max (x,y) int x,y; int z; z=x>y?x:y; return (z)

函数类型 函数名(形参表) 形参类型说明 { 说明部分 语句部分 } 经典c定义: 例 有参函数(传统风格) int max(x,y) int x,y; { int z; z=x>y?x:y; return(z); } 函数体 函数头

例8.1:求3个字符中的最大值 char char①max(char x,char v,char z→ max (x,y,z) char m; char x,y,x; m=x>y?x:y m=m>z?m:z main函数可在任何位置, return(m ) x、y、z形参,a、b、c为 ②main() 实参,函数不能自己执行, char a,b,c,d; 只能被调用 printf(“Enter three characters:\n”); scanf(“%c,%c,%c”,&a,&b,&c); d=max a,b,c printf(“Max=%c”,d);

例8.1:求3个字符中的最大值 char ①max(char x,char y,char z ) { char m; m = x > y ? x : y ; m = m > z ? m : z ; return( m ); } ②main( ) { char a,b,c,d; printf(“Enter three characters:\n”); scanf(“%c,%c,%c”,&a,&b,&c ); d = max( a,b,c ); printf(“Max = %c”, d); } main函数可在任何位置, x、y、z形参,a、b、c为 实参,函数不能自己执行, 只能被调用 char max(x,y,z); char x,y,x;

8.3函数的参数和返回值 ?形式参数:定义函数时函数名后面括号中的变量名 冬实际参数:调用函数时函数名后面括号中的表达式 比较两个数并输出大者 main() c=max(a,b);(main函数) {int a,b,c; max (int x,int y) scanf ("%d,%d",&a,&b) int z; (max函数) c=max (a,b); 实参 z=x>y?x:y; printf("Max is %d,c; return (z) 形参 max (int x,int y) int z; z=x>y?x:y; return(z);]

8.3 函数的参数和返回值 ❖形式参数:定义函数时函数名后面括号中的变量名 ❖实际参数:调用函数时函数名后面括号中的表达式 c=max(a,b); (main函数) (max函数) max(int x, int y) { int z; z=x>y?x:y; return(z); } 比较两个数并输出大者 main() {int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("Max is %d",c); } max(int x, int y) { int z; z=x>y?x:y; return(z);} 形参 实参

★说明: 实参必须有确定的值,可是常量、变量或表达式 冬形参必须指定类型 冬形参与实参类型一致,个数相同 冬若形参与实参类型不一致,自动按形参类型转 换一 函数调用转换(标准c定义) 冬对于经典c函数定义,当参数个数和类型不匹配 时,运行结果错误 形参在函数被调用前不占内存;无确定值,函数 调用时为形参分配内存,接收传递来的实参值; 调用结束,内存释放 ?形参是函数内部的局部变量,可以和实参同名

说明: ❖实参必须有确定的值,可是常量、变量或表达式 ❖形参必须指定类型 ❖形参与实参类型一致,个数相同 ❖若形参与实参类型不一致,自动按形参类型转 换— 函数调用转换(标准c定义) ❖对于经典c函数定义,当参数个数和类型不匹配 时,运行结果错误 ❖形参在函数被调用前不占内存;无确定值,函数 调用时为形参分配内存,接收传递来的实参值; 调用结束,内存释放 ❖形参是函数内部的局部变量,可以和实参同名

例 计算x的立方 #include a 1.2 float cube(float x) product 1.728 return (x*x*x); main() float a,product; printf("Please input value of a:") scanf ("%f",&a); product=cube(a); printf("Cube of %4f is %4f\n",a,product)

例 计算x的立方 #include float cube(float x) { return(x*x*x); } main() { float a, product; printf("Please input value of a:"); scanf("%f",&a); product=cube(a); printf(”Cube of %.4f is %.4f\n",a,product); } x a product ×× ×× 1.2 1.2 1.728

返回语句 例 无返回值函数 形式return(表达式);或r void swap(int x,int y 功能:①为完成一定的处玛 {int temp; 无返回值;②为得到计算 temp=x; 调函数返回调用函数,同 x=y; 说明:函数中可有多个 y=temp; 若无return语句,遇}时} 若函数类型与return语句中表达式值的类型不一致, 按前者为准,自动转换- 函数调用转换 无返回值的函数应定义为void型,否则返回一个不确 定的值 return语句的功能是结束被调函数的运行,返回主调 函数继续执行后面的语句。无返回值的函数可用 return

返回语句 形式return(表达式);或return 表达式;或return; 功能:①为完成一定的处理功能,被调函数只执行处理, 无返回值;②为得到计算处理结果,使程序控制从被 调函数返回调用函数,同时把返回值给调用函数 说明:函数中可有多个return语句 若无return语句,遇}时,自动返回调用函数 若函数类型与return语句中表达式值的类型不一致, 按前者为准,自动转换-函数调用转换 无返回值的函数应定义为void型,否则返回一个不确 定的值 return语句的功能是结束被调函数的运行,返回主调 函数继续执行后面的语句。无返回值的函数可用 return ; 例 无返回值函数 void swap(int x,int y ) {int temp; temp=x; x=y; y=temp; }

刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档