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

西安石油大学计算机学院:《程序设计语言C Programming Language C》教学资源(PPT课件)第08章 函数

文档信息
资源类别:文库
文档格式:PPT
文档页数:58
文件大小:210.5KB
团购合买:点击进入团购
内容简介
1. 概述 2. 函数定义的一般形式 3. 函数参数和函数的值 4. 函数的调用 5. 函数的嵌套调用 6. 函数的递归调用 7. 数组作为函数的参数 8. 局部变量和全局变量 9. 变量的存储类别 10.内部函数与外部函数 11.运行一个多文件的程序
刷新页面文档预览

第8童 函数

第8章函数 本章内容 1.概述 2.函数定义的一般形式 3.函数参数和函数的值 函数的调用 5.函数的嵌套调用 6.函数的递归调用 7.数组作为函数的参数 8.局部变量和全局变量 9.变量的存储类别 10.内部函数与外部函数 11.运行一个多文件的程序

-2- 第8章 函数 本 章 内 容 1. 概述 2. 函数定义的一般形式 3. 函数参数和函数的值 4. 函数的调用 5. 函数的嵌套调用 6. 函数的递归调用 7. 数组作为函数的参数 8. 局部变量和全局变量 9. 变量的存储类别 10.内部函数与外部函数 11.运行一个多文件的程序

第8章函数 8.1概述 基本概念 ☆模块化 ■根据需求分析要求和功能抽象结果,把软件划分成若干个模 块,每个模块完成一个子功能。 ◆子程序 在高级语言中,模块化的实现通过子程序来的完成。 个程序由主程序和子程序组成,可以只有主程序而没有子 程序,但不能只有子程序而没有主程序。 ☆函数 ■在C语言中,子程序称为函数。 个C程序由一个主函数和若干个函数构成。即主函数调用其 他函数,其他函数可以互相调用。 例8.1:函数调用简单举例

-3- 第8章 函数 8.1 概述 基本概念 v 模块化 根据需求分析要求和功能抽象结果,把软件划分成若干个模 块,每个模块完成一个子功能。 v 子程序 在高级语言中,模块化的实现通过子程序来的完成。 一个程序由主程序和子程序组成,可以只有主程序而没有子 程序,但不能只有子程序而没有主程序。 v 函数 在C语言中,子程序称为函数。 一个C程序由一个主函数和若干个函数构成。即主函数调用其 他函数,其他函数可以互相调用。 例8.1:函数调用简单举例

第8章函数 8.1概述 说明 个源程序文件由一个或多个函数构成,称作一个编译单位,C程 序由若干个编译单位组成 ◇整个C程序有且仅有一个主函数main,程序由此开始,且调用完其 它函数后回到此结束。 ☆所有函数都是平行的,没有从属关系,函数不能嵌套定义,但可 以相互调用(main函数除外)。 ◇从用户角度,函数分为标准函数和自定义函数。 ☆从函数的形式,函数分为无参函数和有参函数: 无参函数 主调函数与被调函数之间无数据传递。一般以不带返回值居 多 有参函数 主调函数与被调函数之间可以有双向数据传递。可以有返回 值也可不带返回值

-4- 第8章 函数 8.1 概述 说明 v 一个源程序文件由一个或多个函数构成,称作一个编译单位,C程 序由若干个编译单位组成。 v 整个C程序有且仅有一个主函数main,程序由此开始,且调用完其 它函数后回到此结束。 v 所有函数都是平行的,没有从属关系,函数不能嵌套定义,但可 以相互调用(main函数除外)。 v 从用户角度,函数分为标准函数和自定义函数。 v 从函数的形式,函数分为无参函数和有参函数: 无参函数 主调函数与被调函数之间无数据传递。一般以不带返回值居 多。 有参函数 主调函数与被调函数之间可以有双向数据传递。可以有返回 值也可不带返回值

第8章函数 8.2函数定义的一般形式 无参函数的定义形式 类型标识符函数名0 说明部分 int max(int x, i y) 语句 int z 有参函数的定义形式 z=X>y? x: y 类型标识符函数名(形式参数表列) return Z, 说明部分 语句

-5- 第8章 函数 8.2 函数定义的一般形式 无参函数的定义形式 类型标识符 函数名() { 说明部分 语句 } 有参函数的定义形式 类型标识符 函数名(形式参数表列) { 说明部分 语句 } int max(int x, int y) { int z; z=x>y? x:y; return z; }

第8章函数 8.2函数定义的一般形式 空函数 类型标识符函数名Q 例如: 函数定义: Nothing[ 函数调用: Nothing0; E对形参声明的两种方式 ☆传统方式: 例: int max(x,y) int x,y; ◆现代方式: 例: int max(intx,inty)

-6- 第8章 函数 8.2 函数定义的一般形式 空函数 类型标识符 函数名() { } 例如: 函数定义:Nothing(){} 函数调用:Nothing(); 对形参声明的两种方式 v 传统方式: 例:int max(x, y) int x, y; { … } v 现代方式: 例:int max(int x, int y) { … }

第8章函数 8.3函数参数和函数的值 形参和实参 形参:定义时函数名后面括弧中的变量名称为形式参数。 ☆实参:调用时函数名后面括弧中的参数称为实际参数。 例8.2:调用函数时的数据传递 ma n int max(int x, int y) /*对max函数的声明*/ int a. b. c scanf("%d, %d", &a, &b) c max(a, b) printf( Max is %d", c) max(int x, int y) /*对mx函数的定义*/ int z. z=X>y? x: y; return(z)

-7- 第8章 函数 8.3 函数参数和函数的值 形参和实参 v 形参:定义时函数名后面括弧中的变量名称为形式参数。 v 实参:调用时函数名后面括弧中的参数称为实际参数。 v 例8.2: 调用函数时的数据传递 main() { int max(int x, int y); /*对max函数的声明*/ int a, b, c; scanf("%d, %d", &a, &b); c = max(a, b); printf("Max is %d", c); } max(int x, int y) /*对max函数的定义*/ { int z; z=x>y? x:y; return(z); }

第8章函数 8.3函数参数和函数的值 函数的返回值 ◇由 return语句获得。 ◆一个函数中可以一个以上的 return语句,执行到哪个 return语句, 哪一个 return语句起作用。 ☆ return语句返回的函数值类型应与定义函数时说明的函数值类型 致 当二者类型不一致时,以函数类型为准。例如: main o I float a,b max(float x, float y) int c float z scanf("%f, %f", &a, &b) z=X>y? x: y c=max(a, b) return Z: pr intf(" Max is‰dn",o);‖ 输入:1.5,3.5输出? ◆无 return语句则带回不确定的值。 ☆用void定义无类型,表示"不带回值

-8- 第8章 函数 8.3 函数参数和函数的值 函数的返回值 v 由return语句获得。 v 一个函数中可以一个以上的return语句,执行到哪个return语句, 哪一个return语句起作用。 v return语句返回的函数值类型应与定义函数时说明的函数值类型 一致。 v 当二者类型不一致时,以函数类型为准。例如: 输入:1.5, 3.5 输出? v 无return语句则带回不确定的值。 v 用void定义无类型,表示"不带回值" 。 main() { float a, b; int c; scanf("%f, %f", &a, &b); c=max(a, b); printf("Max is %d\n ", c); } max(float x, float y) { float z; z=x>y? x:y; return z; }

第8章函数 8.4函数的调用 函数调用的一般形式 函数名(实参表列); 说明 ◆调用无参函数时,无″实参形列",但括弧不能省略。 ◆实参个数与形参个数相等,对应参数的类型应一致。 令多个实参时,对实参求值的顺序依系统而定。 Turbo C按自右而左 序求值 例8.4:实参求值的顺序:不是确定的 0 nt flint a, int b ma In int i=2, p if(a>b)c=1 p=f(i,++i); else if(a==b)c=o pr intf("‰d",p); ese c=-1 return C: 分析结果? ☆如果实现调用时从左至右求实参值?

-9- 第8章 函数 8.4 函数的调用 函数调用的一般形式 函数名(实参表列); 说明: v 调用无参函数时,无"实参形列" ,但括弧不能省略。 v 实参个数与形参个数相等,对应参数的类型应一致。 v 多个实参时,对实参求值的顺序依系统而定。Turbo C按自右而左 的顺序求值。 例8.4: 实参求值的顺序:不是确定的 v 分析结果? v 如果实现调用时从左至右求实参值? main() { int i=2, p p=f(i, ++i); printf("%d", p); } int f(int a, int b) { int c; if(a>b) c=1; else if(a==b) c=0; else c=-1; return c; }

第8章函数 8.4函数的调用 函数调用的三种方式 函数语句 例如: pr instar0 主要用来执行某一操作,无返回值 ☆函数表达式 例如:c=2*max(a,b); 函数出现在一个表达式中,要求带回一个确定的返回值。 函数参数 例如:m=max(a,max(b,c); pr intf("%d", max(a, b)) ■函数调用作为一个函数的实参,要求带回一个确定的返回值。 10

-10- 第8章 函数 8.4 函数的调用 函数调用的三种方式 v 函数语句 例如:printstar(); 主要用来执行某一操作,无返回值。 v 函数表达式 例如:c=2*max(a, b); 函数出现在一个表达式中,要求带回一个确定的返回值。 v 函数参数 例如:m=max(a, max(b, c)); printf("%d", max(a, b)); 函数调用作为一个函数的实参,要求带回一个确定的返回值

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