C语言程序设计第七章
C语言程序设计
第七章 函 数
第七章
函数
概述 函数的定义 函数的调用 函数参数及其传递方式数组作为函数参数 函数的嵌套与递归调用 变量的存储属性
计算机公共教学部
C语言程序设计
第七章 函 数
概述– 模块化程序设计 基本思想:将一个大的程序按功能分割成一些小模块, 特点:– – – – – – 各模块相对独立、功能单一、结构清晰、接口简单 控制了程序设计的复杂性 提高元件的可靠性 缩短开发周期 避免程序开发的重复劳动 易于维护和功能扩充
开发方法: 自上向下,逐步分解,分而治之
计算机公共教学部
C语言程序设计
第七章 函 数
C是模块化程序设计语言C程序
源程序文件1
源程序文件i
源程序文件n
预编译命令
函数1
函数n
说明部分
执行部分
C是函数式语言 必须有且只能有一个名为main的主函数 C程序的执行总是从main函数开始,在main中结束 函数不能嵌套定义,可以嵌套调用计算机公共教学部
C程序结构
C语言程序设计
第七章 函 数
从用户角度 – 标准函数(库函数):由系统提供 – 用户自定义函数 从函数功能的角度 – 有返回值函数 – 无返回值函数 从函数形式 – 无参函数 – 有参函数
函数分类
使用库函数应注意: 1、函数功能 2、函数参数的数目和顺序,及各参数意义和类型 3、函数返回值意义和类型 4、需要使用的包含文件计算机公共教学部
函数的定义– 一般格式现代风格:
C语言程序设计
函数返回值类型 缺省int型 无返回值void
第七章 函 数
合法标识符
函数类型 函数名(形参类型说明表) { 说明部分 语句部分 } 例例 有参函数(现代风格) 有参函数(现代风格) 例 无参函数 例 空函数 intint max(int x, y) max(int x,int y) printstar( ) dummy( ) { {intint z; z; { printf(“********** \n”); } { } z=x>y?x:y; z=x>y?x:y; 或 return(z); return(z); printstar(void ) 函数体为空 } } { printf(“**********\n”); }
函数体
计算机公共教学部
C语言程序设计
第七章 函 数
函数传统风格和例子传统风格:函数类型 函数名(形参表) 形参类型说明 { 说明部分 语句部分 } 例 有参函数(传统风格) int max(x,y) int x,y; { int z; z=x>y?x:y; return(z); }计算机公共教学部
C语言程序设计
第七章 函 数
函数调用– 调用形式函数名(实参表);说明: – 实参与形参个数相等,类型一致,按顺序一一对应 – 实参表求值顺序,因系统而定(Turbo C 自右向左)
计算机公共教学部
C语言程序设计
第七章 函 数
–函数的调用方式函数语句: 例 printstar(); printf(“Hello,World!\n”); 函数表达式: 例 m=max(a,b)*2; 函数参数: 例 printf(“%d”,max(a,b)
); m=max(a,max(b,c));
计算机公共教学部
C语言程序设计
第七章 函 数
– 形参与实参
函数参数和函数的值
形式参数:定义函数时函数名后面括号中的变量名 实际参数:调用函数时函数名后面括号中的表达式 例 比较两个数并输出大者 main() { int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); (main 函数) c=max(a,b); 实参 printf("Max is %d",c); max(int x, int y)(max 函数) { int z; } z=x>y?x:y; max(int x, int y) 形参 return(z); { int z; } z=x>y?x:y; return(z); }计算机公共教学部
C语言程序设计
第七章 函 数
函数参数及其传递方式 形参与实参 形式参数:定义函数时函数名后面括号中的变量名 实际参数:调用函数时函数名后面括号中的表达式 说明: 实参必须有确定的值 形参必须指定类型 形参与实参类型一致,个数相同 若形参与实参类型不一致,自动按形参类型转换— ——函数调用转换 形参在函数被调用前不占内存;函数调用时为形参分 配内存;调用结束,内存释放
计算机公共教学部
C语言程序设计
函数的值
第七章 函 数
–
例 无返回值函数 void swap(int x,int y ) 返回语句 { int temp; 形式: return(表达式); temp=x; 或 x=y; return 表达式; y=temp; 或 return; }
功能:使程序控制从被调用函数返回到调用函数中, 同时把返值带给调用函数 #include<stdio.h> main() 说明:– 函数中可有多个return语句 {int a,b; – 若无return语句,遇}时,自动返回调用函数 scanf(“%d,%d”,&a,&b); – 若函数类型与return语句中表达式值的类型不一致,按前 者为准,自动转换------函数调用转换 swap(a,b); – void型函数printf(“%d,%d”,a,b); } 计算机公共教学部
C语言程序设计
第七章 函 数
函数说明P170对被调用函数要求:必须是已存在的函数 库函数: #include <*.h> 用户自定义函数: 函数类型说明
函数说明一般形式: 函数类型 函数名(形参类型 [形参名],….. ); 或 函数类型 函数名(); 作用:告诉编译系统函数类型、参数个数及类型,以便检验 函数定义与函数说明不同 函数说明位置:程序的数据说明部分(函数内或外) 下列情况下,可不作函数说明 若函数返值是char或int型,系统自动按int型处理 被调用函数定义出现在主调函数之前计算机公共教学部
C语言程序设计
第七章 函 数
参数传递方式值传递方式方式:函数调用时,为形参分配单元,并将实参的值复制到形参中; 调用结束,形参单元被释放,实参单元仍保留并维持原值 特点: 形参与实参占用不同的内存单元 单向传递
计算机公共教学部
C语言程序设计
第七章 函 数
例 交换两个数 #include <stdio.h> 调用前: main() { int x=7,y=11; printf("x=%d,\ty=%d\n",x,y); 调用: p
rintf("swapped:\n"); swap(x,y); printf("x=%d,\ty=%d\n",x,y); swap: } swap(int a,int b) { int temp; temp=a; a=b; b=temp; }调用结束:
x: x: a: x: a:
7 7 7 7 11 temp
y: y: b: y: b:
11 11 11 11 7
x:
7
y:
11
计算机公共教学部
C语言程序设计
第七章 函 数
函数的地址传递– 方式:函数调用时,将数据的存储地址作为参数传递给形参 – 特点: » 形参与实参占用同样的存储单元 » “双向”传递 » 实参和形参必须是地址常量或变量
计算机公共教学部
C语言程序设计
第七章 函 数
例 交换两个数swap(p1,p2) int *p1,*p2; { int p; p=*p1; *p1=*p2; *p2=p; } main() {int a,b; scanf("%d,%d",&a,&b); printf(“a=%d,b=%d\n”,a,b); printf(“swapped:\n”); swap(&a,&b); printf(”a=%d,b=%d\n",a,b); }
例子图解 调前: a 5 p1 &a 调swap: p2 &b b 9 a 5 b 9 a 9 b 5 b 5
p1&a 交换: p2 &b a 9
返回:
计算机公共教学部
…… 此处隐藏:1730字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [政务民生]2013年公共基础知识热点问题(七)
- [政务民生]检验检测机构资质认定评审准则及释义20
- [政务民生]关于印发重庆市房屋建筑和市政基础设施
- [政务民生]1、隧道洞身开挖支护施工技术交底书
- [政务民生]2015年山东省17地市中考语文试题分类汇
- [政务民生]2-高级会计师资格考试和评审流程图
- [政务民生]2018版中国清分机行业发展分析及前景策
- [政务民生]新课改高中政治探究
- [政务民生]2018-2024年中国新型组合房屋行业投资
- [政务民生]2015年上海市春季高考数学模拟试卷五
- [政务民生]灌砂法及环刀法测压实度(带计算过程)
- [政务民生]运筹学实验2求解非线性规划
- [政务民生]劝学、逍遥游默写(教师卷)
- [政务民生]《运筹学》 - 期末考试 - 试卷A - 答案
- [政务民生]八年级英语下册 Module 6 Hobbies测试
- [政务民生]2019年宪法知识竞赛试题库100题(含答
- [政务民生]自动化英文文献翻译
- [政务民生]公文格式实施细则
- [政务民生]高一地理上册课堂跟踪练习题6
- [政务民生]会计继续教育习题及答案
- 第三章 无约束最优化方法
- 泛读教程第三册答案
- 魏晋南北朝文学
- 幂的运算复习题
- 城市环境问题的成因与治理策略_以社会
- 钢结构行业产业链及竞争分析研究
- 新型热塑性弹性体增韧聚丙烯的研究
- 中国旅游地理B卷试题及答案
- (苏教版)五年级数学上册第三单元测试卷
- 不稳定性心绞痛诊断与治疗
- 俞氏国际后勤职能部门绩效考核办法
- GB7258-2017新标准考试题含答案
- 小学生汉字听写比赛活动方案
- 1.3《平抛运动》学案 教科版必修2
- 2011香港特别行政区公务员考试复习资料
- 考虑水力条件变化的城市给水管网可靠性
- 表面活性剂在油田开发和生产中的应用
- ITT内部培训资料-FI端吸泵的介绍
- 文明守纪,从我做起学生发言稿
- 初中读《聊斋志异》心得体会800字范文




