第5章 函数和编译预处理
c++
Visual C++程序设计
第5章 函数和 编译预处理
c++
第5章 函数和编译预处理5.1 函数的定义和调用
5.2 函数的形参、实参、返回值及原型说明5.3 函数的嵌套和递归调用 5.4 作用域和存储类 5.5 内联函数 5.6 具有缺省参数值的函数
5.7 函数的重载5.8 编译预处理
c++
5.1 函数的定义和调用
5.1.1 函数概述 1. 函数概念 具有独立功能的程序段;模块化的程序设计思想。例如:求5~100之间的所有素数。 思路:定义函数 f 判断某数是否为素数。主函数中遍历 5~100之间所有的数,通过调用 f 函数判断其是否为素数。 int f(int n) //f函数:若n是素数值为1,否则值为0 {…} void main() //主函数 { for(int n=5;n<=100;n++) if(f(n))…; }
c++
5.1 函数的定义和调用2. 函数的组成函数类型 函数名称 函数形参 //函数头部 //函数体
void {
main ( void ) ... }
3. 函数种类 (1)主函数、库函数、自定义函数; (2)有参函数、无参函数; (3)有返回值函数、无返回值函数等。
c++
5.1 函数的定义和调用5.1.2 函数定义 1. 定义格式 函数类型 函数名称 ( 形参列表) { ... } //函数体例5-1 定义一个函数sum,求两个实数的和,
要求得到(返回)其和。
2. 定义时的注意问题(1)函数的缺省类型为整型; (2)没有参数时,只写括号()或(void); (3)函数体写在一对{ }中。
c++
5.1 函数的定义和调用5.1.3 函数调用1. 调用格式 函数名(实参列表)
2. 函数之间的关系 函数之间通过调用语句建立联系,通过参数和返回 值实现函数间的传递数据。如: float sum(float x,float y) { return x+y; }void main() { float a=6.6,b=8.8,s; s=sum(a,b); cout<<“sum=”<<s<< \n ; }
c++
5.1 函数的定义和调用5.1.3 函数调用3. 函数的调用过程 float sum(float x,float y) { ... } } 所调用的函数
void main(){...; s=sum(a,b); ...; 主函数
函数调用语句 传递参数和返回值 结束
执行所调用的函数
c++
5.2 函数的形参、实参、返回值及原型说明5.2.1 函数的形参与实参void f( float x , int y ) { cout<<x<< \t ; cout<<y<< \n ; } void main() 2. 实参 { float b=8.8; 调用函数时的参数。 f( 6 , b ); (1)实参没有有类型,只有名称; (2)实参可以是常量、变量、表达式; } (3)实参与形参必须个数相等,类型一致。 3. 实参、形参之间的数据传递 (1)传递过程:先计算实参的值,再把计算结果赋给形参; (2)传递方式:值传递、地址传递、引用传递。1. 形参 定义函数时,在头部列举的参数。 (1)每个形参都有类型和名称组成; (2)形参之间用 ,分隔。
c++
5.2 函数的形参、实参、返回值及原型说明函数的值传递,只能把实参传递给形参, 不能把形参传递给实参,是单向传递。例5-2 函数的值传递
#include <iostream.h> void swap(float x,float y) { cout<<x<< \t <<y<< \n ; float t; t=x; x=y; y=t; cout<<x<< \t <<y<< \n ; } void main(void) { float a=40,b=70; cout<<a<< \t <<b<< \n ; swap(a,b); cout<<a<< \t <<b<< \n ; } main( ) a 40 b 70 swap(a,b)
x=a,y=bswap() x 70 40 y 70 40
t
40
c++
5.2 函数的形参、实参、返回值及原型说明5.2.2 函数类型与返回值1. 函数类型是指函数运行结果(返回值)的数据类型。 例5-3 定义函数getmax,求(返回)两个数中的大数。 例5-4 定义函数showmax,输出两个数中的大数。 2. 有值型函数一定有return语句,且return后一定有表达 式,其值为函数运行结果(主调函数中函数调用语句的 值);此时return语句的格式为:return 表达式; 3. 无值型函数一般没有return语句,即使有return语句, 也只能是: return ;
4. 函数调用过程中一旦执行了return语句,则立即结束函 数调用;否则自动运行到函数结尾而结束。5. 有值型函数与无值型函数调用语句的区别。
c++
5.2 函数的形参、实参、返回值及原型说明说出下列函数定义错误的原因,并改正错误。void f1(int a,float b) { return a+b; } float f2(int a,float b) { cout<<a+b<< \n ; }
c++
5.2 函数的形参、实参、返回值及原型说明指出函数f1与f2、f3与f4的区别。int f1(int a,int b) { if(a>b)return a; else return b; } int f3(int x) { for(int i=2;i<x;i++) if(x%i==0)return 0; return 1; } int f2(int a,int b) { if(a>b)return a; return b; }
int f4(int x) { for(int i=2;i<x;i++) if(x%i==0)return 0; else return 1; }
c++
5.2 函数的形参、实参、返回值及原型说明例5-5 设计一个程序,求出5~100之间的所有素数,要求每 行输出5个数。判断一个整数是否为素数用一个函数来实现。算法分析: (1)定义函数fun,判断某个整数是否为素数,通过整型形参 x带入要判断的数。 (2)定义整型变量p表示x是否为素数,若x是素数p为1(真), 否则p为0(假)。 (3)fun函数返回p的值(1或0),故函数类型为int。 程序结构: int fun(int x); // 判断x是否为素数 void main();//调用fun函数,找出5~100之间的素数
c++
5.2 函数的形参、实参、返回值及原型说明5.2.3 函数的原型说明1. 函数的定义通常在函数调用之前。 2. 若函数先调用后定义,则在调用之前必须进行说明, 称为函数的原型说明,其格式为: 函数类型 函数名称(参数列表); 3. 函数的原型说明必须与定义一致,其中参数可以只有 类型,没有名称。 4. 关于函数的语句有三种,请加以区别: (1)函数定义性说明,简称函数定义; (2)函数引用性说明,简称函数原型说明; (3)函数调用。
c++
5.2 函数的形参、实参、返回值及原型说明指出下列函数错误的原因,并改正错误。void int print(x)
; print(int y); x); void main() { int x=5; void print(int); int f(int x) x); { return x*x; } void print(int x) { y=int f(int x); int y=f(x); cout<<y<< \n ; }
print( x );}
c++
5.3 函数的嵌套和递归调用5.3.1 函数的嵌套调用1. 概念:在调用函数的过程中,再去调用函数。如: void f2( ) { void f1( ) { …; …; f2( ); …; } }
void main( ) { …;
f1( ); …;
}
2. 函数可以嵌套调用,但不允许嵌套定义。如: void main() //定义主函数 { …… int f () { …… } //定义子函数F …… }
…… 此处隐藏:1691字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [行业范文]美好的法语句子
- [行业范文]描写露珠的句子
- [行业范文]精彩禅语句子图片
- [行业范文]关于满嘴谎言的句子
- [行业范文]关于安静的句子48句
- [行业范文]关于小河的句子
- [行业范文]描写稻田的句子
- [行业范文]思念好朋友的句子
- [行业范文]赞美雪的句子
- [行业范文]早上激励人心的句子
- [行业范文]失恋忧伤的句子
- [行业范文]努力积极向上的句子
- [行业范文]对工作心灰意冷的句子
- [行业范文]失恋让人心疼的句子
- [行业范文]描写珍惜青春的句子
- [行业范文]表达思念的句子简短
- [行业范文]关于父爱的句子范例
- [行业范文]浪漫的英语句子
- [行业范文]关于周末的句子
- [行业范文]思念牵挂的句子
- 有关感恩班会课件简短(二篇)(感恩班会
- 2025年初二下乡军训心得体会800字(15篇
- 关于新员工培训方案汇编(关于新员工培
- 精选高考生寒假学习计划书(精)(高考生
- 毕业实训报告心得体会(3篇)(实训报告心
- 银行工作感悟及心得范文怎么写(四篇)(
- 精选领导干部个人政治画像报告通用(七
- 精选超市11.11活动促销方案(精品超市品
- 2025年怎么做自我介绍汇总(5篇)(至2025
- 最新企业错峰生产方案(26篇)(山西企业
- 最新暑期三下乡社会实践调研报告范本(
- 最新幼儿园大班教育教学总结怎么写(最
- 最新教师节主持词小学(优秀9篇)(教师节
- 关于小学安全教育教学方案(推荐)(关于
- 员工信模板范文怎么写(五篇)(员工信息
- 最新保险销售离职申请书(十六篇)(最新
- 最新XX小学防校园欺凌工作方案怎么写(2
- 有关特岗教师辞职信范文(推荐)(特岗教
- 精选党的建设工作要点简短(党的建设的
- 如何写安康杯竞赛活动总结汇总(4篇)(安




