




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、、函数、程序的模块化函数将原型调用参数传递函数的嵌套调用迭代函数编程示例、C语言编程、介绍、拆分和程序模块化将一个大问题划分为相对较小的单独部分。对于每个部分,使用小程序段,即程序模块(module)进行处理。从较小的段或组件构建程序。这些小片段或组件比原始程序更容易实现和管理。您可以重复使用这些小部件。函数,C语言中的函数,在C语言中,函数(function)是构成程序的基本模块。c程序由一个或多个函数组成,并且只有主函数main()函数。每个函数执行相对独立且功能明确的任务。主函数调用其他函数,其他函数也可以徐璐调用。相同的函数可以由一个或多个函数调用任意数量的函数。函数、C语言中的函数和
2、C语言中的函数有两个主要类别。标准库函数提供丰富的函数。例如,数学计算:sqrt()、ABS()输入/输出:scanf()、printf()自定义函数程序员可以编写函数以执行特定任务。熟悉c系统的标准库。从一开始就应该避免制造一切。函数,使用函数的原因,函数使程序模块化。程序采用模块化结构的优点:通过分割提高程序开发的效率。程序易于管理。代码重用使用现有函数作为组件编写程序。您可以重复使用函数。抽象隐藏了实现的细节。例如,使用库函数(printf(),但不知道其具体实现(不影响使用)。函数、案例分析:此简单函数可编写和使用简单函数(cw0801.c)定义函数square,该函数可计算任意整数的
3、平方。然后使用此函数计算从1到10的所有整数的平方。函数,# include int square(int);void main()int x;for(x=1;X=10X) printf(%d,square(x);int square(int y)return y * y;函数声明、使用函数、函数定义、1 4 9 16 25 36 49 64 81 100、函数定义、函数格式定义()函数名:有效标识符。函数类型:返回值的类型指示符。如果未指定,则默认值为int。Void:表示函数不返回值。参数表:声明多个参数(以逗号分隔)。接收传入的数据。必须为每个参数指定数据类型。但是,可以省略int。函数
4、、函数标头、函数主体、函数定义、函数定义格式()函数主体:包括声明和执行语句。您可以在函数主体中宣告变数。无法定义函数。换句话说,函数定义不允许嵌套。控制返回:可以结束执行并将程序控制返回到主曹征函数,也可以使用return返回数值。ReturnReturn、函数、无返回值、具有返回值、案例分析:定义函数、定义函数(cw0802.c)函数查找三个数字中的大量。函数,#include int maximum(int,int,int);Void main() int a、b、c;printf(“input three integers :”);Scanf(%d%d%d,函数原型、接口(接口)、函数
5、原型、函数原型();用于声明函数。编译器使用函数原型验证函数调用的合法性。注意:函数原型必须与函数定义一致。例如,int maximum(int a,int b,int c);Int maximum(Int,int,int);函数、函数原型和函数原型在程序文件中的位置不同,范围也不同。在所有函数外部,在函数内部,函数,main()void funcA()int fun CB(int);如果Int funcB(int)、函数原型、程序不包含函数原型,编译器将使用函数的第一次出现来形成自己的函数原型。函数定义函数调用默认情况下,编译器假定函数返回int类型的结果,但不对参数进行任何假设。如果传递给
6、函数的参数不正确,编译器不会检查这些错误。函数、函数原型和函数原型强制参数使用正确的数据类型。例如,printf(“% . 3f”,sqrt(4);函数原型允许编译器将整数值4转换为双精度类型值4.0。函数原型中参数类型的对应参数值在调用函数之前转换为相应的数据类型。遵守c语言的晋升规则。函数,双sqrt(双精度);函数原型和头文件,头文件每个标准库函数都有相应的头文件。包含标准库中所有函数的函数原型,以及这些函数所需的数据类型和常量的定义。使用#include命令将头文件包含在程序文件中。#include例如,#include程序员。您可以使用h扩展名创建自己的头文件。使用以下命令格式包含头
7、文件:#include 文件名,例如# include abc.h ,也称为函数、函数调用、使用函数调用函数或调用函数。函数,main() int a,b,c;Scanf (%d% d,1,2,6,intmax (int a,int b)int c;C=a=b?A:breturn c;3,4,5,1,2,铸造函数暂停,保存现场。3,将实际参数的值复制到格式参数,并将控件交给函数max。4,5,在被造函数运行结束后,将函数值返回到主函数,将控制权返回到主函数。6、恢复站点,主函数继续。参数传递,函数之间的数据传递方法:参数返回值,函数,int max(int a,int b)return c;主
8、()c=最大(a,b);传递参数,传递返回值,调用,实际参数和格式参数,实际参数和格式参数,函数,int max(int a,int b) int c=a=b?A:breturn c;主()int a、b、c;scanf(“% d % d”,格式参数缩写“格式参数”)。表示定义函数时可以接受传递的值。实际参数简称为“实际参数”。调用函数时提供。格式参数,格式参数,函数,int max(int a,int b) int c=a=b?A:breturn c;主()int a、b、c;scanf(“% d % d”,仅在调用并启动函数后临时分配存储设备,并应用从主调用函数传递的数据。函数调用结束时,
9、格式参数占用的存储设备被释放。实际参数,实际参数,函数,int max(int a,int b) int c=a=b?A:breturn c;主()int a、b、c;scanf(“% d % d”,实际参数是调用函数时主调用函数传递给曹征函数的格式参数的实际值。实际参数可以是常量、变量和表达式。实参必须有确定的价值。传递参数,传递参数的顺序。函数,int max(int a,int b) int c=a=b?A:breturn c;主()int x=6,y;Y=max(x,x);printf(“% d”,y);如果实际参数表列中存在多个实际参数,则实际参数的评估顺序不确定。VC和BC从右到左
10、评估。b=x;a=x;7,传递参数时传递参数,传递参数的影响,函数,int max(int a,int b) int c=a=b?A:ba;b;return c;主()int a=6,b=5,c;C=max(a,b);printf(“%d,% d,% d”,a,b,c);实际参与参数不共享存储设备。传递参数时,将实际参数的值复制到格式参数。格式参数值的变更不会影响实际参数值。因此,刑参和实参可以有相同的名字。6,5,6、值传递和引用传递以及函数之间的参数传递有两种类型。传递值主函数将实际参数的值的副本传递给曹征函数的格式参数。在曹征函数内更改格式参数的值不会更改主曹征函数的实际参数值。如果函数
11、不需要修改参数值,请使用此调用方法。参考传递铸造将实参“自身”传递给曹征函数的形式真。在曹征函数内更改格式参数的值会更改主曹征函数的实际参数值。用于可信函数。在c语言中,所有参数传递都使用值传递。函数、参数传递、实际参数和格式参数的类型必须相同或与分配兼容。函数,int max(int a,int b) int c=a=b?A:breturn c;主()int x=6,y=5,z;Z=max(x,y);printf(“% d”,z);x,y为整数时,结果是正确的。如果x,y是文字型,则自动执行类型转换,结果准确。如果x,y是短整数,则自动执行类型转换,结果正确。如果x或y是实数,则会自动执行类
12、型转换,并且会丢失数据,因此结果可能不准确。b=y;a=x;传递参数时,函数的返回值,函数返回值类型必须与函数类型匹配。如果不匹配,则使用函数类型对返回值执行类型转换。函数,intmax (float a,float b) float c=a=b?A:breturn c;main() float x=6.5,y=5.6,z;Z=2*max(x,y);printf(“% f”,z);c的类型?返回值类型?最大(x,y)类型?2*max(x,y)类型?函数的嵌套调用,嵌套调用在调用一个函数的同时调用另一个函数。函数,案例分析:函数的复叠呼叫,圆环的面积分析圆环的面积计算=外部圆的面积内圆的面积可以
13、透过定义两个函数circleArea来计算圆的面积。ringArea计算圆环的面积,函数,doublecie Doublering area(doubler 1,doubler 2);案例分析:函数的巢状呼叫、圆环的面积原始码计算(cw0804.c)、函数、# include # define pi 3.14 double circle area(doubler);Doublering area (doubler1,doubler 2);Void main()双精度r1、r2、s;Printf(tInput r1,r 23360);Scanf(%lf%lf),案例分析:函数的巢状呼叫、圆环的面
14、积原始码计算(续)、函数、double circle area(double r)return pi * r * r doubleelse return circle area(R1)-circle area(R2);InputR1,R 2: 1 2 the Areais : 9.42,编程示例:掷骰子,掷骰子问题每个玩家扔两个骰子。每个骰子有六面。这些面包括1分、2分、3分、4分、5分和6分。骰子停止后,计算朝上的两个面的点数(此次投掷的结果)。如果第一次投掷结果是7或11,这位选手就赢了。如果第一次投掷结果是2,3,12,那名选手就输了。如果第一次投掷的结果是4,5,6,8,9,10,那么
15、结果就是那个选手的“积分”。要想赢,玩家必须“一直掷骰子,直到投出积分”。扔积分前,玩家扔7,玩家就输了。函数,编程示例:掷骰子,掷骰子早期设计定义函数rollDice,模拟掷骰子,生成两个随机数(1.6),并返回求和(点),函数,第一次投掷,胜利,损失,投掷,程序设计示例Srand(空);sum=roll dice();第一次投掷,编程示例:掷骰子,掷骰子,函数,Switch(SUM)Case 73360 Case 113360 game status=1;布列克;case 2: case : case 12: game status=2;布列克;default : game status=
16、0;MyPoint=sumPrintf(点is %dn,my Point);布列克;第一次投掷后的结果,编程示例:掷骰子,掷骰子实施,函数,while(gamestatus=0)sum=roll dice();if(sum=my point)game status=1;else if(sum=7)game status=2;if(gamestatus=1)printf(you wins!);Else printf(You loses!);继续游戏,判断胜负,编程示例:掷骰子,掷骰子,函数,introlldice () intdice1,dice2,sumdice 1=rand()% 6 1;/第一个骰子的点
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论