郧阳师范高等专科学校:《C语言程序设计教程》第五章 函数及变量的存储类别

第5章函数及变量的存储类别 5.0概述 5.1函数的定义 5.2函数调用 5.3变量的作用域和存储类别 5.4内部函数和外部函数 5.5函数的嵌套调用和递归调用
第5章 函数及变量的存储类别 5.0 概述 5.1函数的定义 5.2函数调用 5.3变量的作用域和存储类别 5.4内部函数和外部函数 5.5函数的嵌套调用和递归调用

第5章函数及变量的存储类别 §50概述 ★模块化程序设计 心基本思想:将一个大的程序按功能分割成一些小模块, 特点 各模块相对独、功能单一、结枃清晰、接口简单 ●控制了程序设计的复杂性 提高元件的可靠性 缩短开发周期 ●避免程序开发的重复劳动 易于维护和功能扩充 ◆开发方法:自上向下逐步分解,分而治之
第5章 函数及变量的存储类别 §5.0 概述 模块化程序设计 ❖基本思想:将一个大的程序按功能分割成一些小模块, ❖特点: ⚫各模块相对独立、功能单一、结构清晰、接口简单 ⚫控制了程序设计的复杂性 ⚫提高元件的可靠性 ⚫缩短开发周期 ⚫避免程序开发的重复劳动 ⚫易于维护和功能扩充 ❖开发方法: 自上向下,逐步分解,分而治之

★C是模块化程序设计语言 C程序 源程序文件1源程序文件源程序文件n 预编译命令 函数1 函数n 说明部分执行部分 C程序结构 C是函数式语言 口必须有且只能有一个名为皿ain的主函数 口C程序的执行总是从main函数开始,在main中结束 但函数不能嵌套定义,可以嵌套调用
C是模块化程序设计语言 源程序文件1 预编译命令 说明部分 执行部分 函数1 函数n 源程序文件i 源程序文件n C程序 C程序结构 C是函数式语言 必须有且只能有一个名为main的主函数 C程序的执行总是从main函数开始,在main中结束 函数不能嵌套定义,可以嵌套调用

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

【例52】编写程序计算组合数: C(n,k)= n-k) #include stdio. h" main fint n, k, c printf(" nplease input(n2k):");殚输入n、k的值* scanf(" %od, %d", &n, &k) C=fac(n)(fac(k)*fac(n-k)/三次调用函数fac,求n!、k!、(n-k)!* printf("nC(n,k)=%d",c);/*输出计算结果* int fac(int m) /*计算一个整数的阶乘* fint i, s-1 for(i=l; i<=m; 1++) return(s)
#include"stdio.h" main() {int n,k,c; printf("\nplease input( n,k): "); /*输入n、k的值*/ scanf("%d,%d",&n,&k); c=fac(n)/(fac(k)*fac(n-k)); /*三次调用函数fac,求n!、k!、(n-k)!*/ printf("\nC(n,k)=%d",c); /*输出计算结果*/ } int fac(int m) /*计算一个整数的阶乘*/ {int i,s=1; for(i=1;i<=m;i++) s*=i; return(s); } 【例5.2】编写程序计算组合数: n! C(n,k)= ──── k!(n-k)!

851画数的定义(函数冒值类望 5.1.1一般格式 无返回值void 合法标识符 现代风格 函数类型函数名(形参类型说明表) 函数体 说明部分 语句部分 例无参函数 printstar( { printf(“*****n”) 或 printstar(void) 空 printf(******n1”)
§5.1 函数的定义 5.1.1 一般格式 合法标识符 函数返回值类型 缺省int型 无返回值void 函数体 函数类型 函数名(形参类型说明表) { 说明部分 语句部分 } 现代风格: 例 有参函数(现代风格) int max(int x,int y) { int z; z=x>y?x:y; return(z); } 例 有参函数(现代风格) int max(int x, y) { int z; z=x>y?x:y; return(z); } 例 空函数 dummy( ) { } 函数体为空 例 无参函数 printstar( ) { printf(“**********\n”); } 或 printstar(void ) { printf(“**********\n”); }

传统风格:函数类型函数名(形参表) 形参类型说明 说明部分 语句部分 例有参函数(传统风格) int max(x,y) Int x,y i inte; return (z)
函数类型 函数名(形参表) 形参类型说明 { 说明部分 语句部分 } 传统风格: 例 有参函数(传统风格) int max(x,y) int x,y; { int z; z=x>y?x:y; return(z); }

例5.1】编写函数,求三个整型参数的最大值。 int max( int xI,intx2,intx3)/*定义函数的返回值类型,函数名,形参* fint max; if(x1>2)max x1 else max- X2 if(max<x3)maxx3;*通过比较得到三个数的最大值放到max中* return(max 3); /*返回运算结果*
int max(int x1,int x2,int x3) /*定义函数的返回值类型,函数名,形参*/ {int max; if (x1>x2) max=x1; else max=x2; if (max<x3) max=x3; /*通过比较得到三个数的最大值放到max中*/ return(max); /*返回运算结果*/ } 【例5.1】编写函数,求三个整型参数的最大值

§5.12函数的返回值 ★返回语句 例无返回值函数 void swap(int x, int y) 令形式: return(表达式); i int temp 或 return表达式 temp; 或 retur 冷功能:使程序控制从被调用4y=emp 时把返值带给调用函数 今说明: 函数中可有多个 return语句 若无 return语句,遇到函数结束的“}”时,自动返回调用函数 若函数类型与 return语句中表达式值的类型不一致,按前者为進, 自动转换---函数调用转换 ●void型函数:无返回值的函数
§5.1.2 函数的返回值 返回语句 ❖形式: return(表达式); 或 return 表达式; 或 return; ❖功能:使程序控制从被调用函数返回到调用函数中,同 时把返值带给调用函数 ❖说明: ⚫函数中可有多个return语句 ⚫若无return语句,遇到函数结束的“}”时,自动返回调用函数 ⚫若函数类型与return语句中表达式值的类型不一致,按前者为准, 自动转换------函数调用转换 ⚫void型函数:无返回值的函数 例 无返回值函数 void swap(int x,int y ) { int temp; temp=x; x=y; y=temp; }

例无返回值的函数返回后带回不确定值 printstar( void printstarO print("******) i printf( *水水半水半水水*水m maino main i int a i int a a=printstarO a=printstaro printf("%od", a) printf("%/od", a) 输出:10 编译错误!
printstar() { printf("**********"); } main() { int a; a=printstar(); printf("%d",a); } 例 无返回值的函数返回后带回不确定值 输出:10 void printstar() { printf("**********"); } main() { int a; a=printstar(); printf("%d",a); } 编译错误!
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 郧阳师范高等专科学校:《C语言程序设计教程》第四章 C程序流程设计.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第三章 远算符和表达式.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第二章 基本数据类型及数据的输入输出.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第一章 基础知识.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第十章 字符串.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第九章 数组.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第八章(8-1) 变量的地址和指针.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第七章 函数.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第一章(6-1) 字符型数据.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第五章 循环结构.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第四章 选择结构程序设计.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第三章 顺序结构程序设计.ppt
- 《大学计算机基础教程》课程教学资源:第六章 PowerPoint 2000的使用.ppt
- 《大学计算机基础教程》课程教学资源:第五章 Excel 2000的使用.ppt
- 《大学计算机基础教程》课程教学资源:第四章 Word 2000的使用.ppt
- 《大学计算机基础教程》课程教学资源:第二章 Windows 98 2000的基本操作.ppt
- 朝阳师范高等专科学校:《计算机基础及应用教程》课程教学资源(PPT课件)第1章 计算机基础知识(王春会).ppt
- 《Flash8中文版实用教程》第九章 使用组件.ppt
- 《Flash8中文版实用教程》第八章 创建交互动画.ppt
- 《Flash8中文版实用教程》第七章 创建动画.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第六章 编译预处理.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第七章 构造数据类型.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第八章 指针.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第九章 文件.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第一章 C语言概述.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第二章 数据类型、运算符与表达式.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第三章 数据类型、运算符与表达式.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第四章 顺序结构程序设计.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第五章 选择结构程序设计.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第六章 循环结构程序设计.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第七章 数组.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第八章 第8章.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第九章 编译预处理.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第十章 指针.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第十一章 结构体与共同体.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第十二章 位运算.ppt
- 郧阳师范高等专科学校:《C语言程序设计教程》第十三章 文件.ppt
- 《数据结构》课程教学资源:第一章 数据结构基础概论.ppt
- 《数据结构》课程教学资源:第二章 线性表.ppt
- 《数据结构》课程教学资源:第三章 栈和队列.ppt