0.展示PTA总分
函数
1.本章学习总结
1.1 学习内容总结
1函数的定义:
函数是一个可以完成特定工作的独立程序模型,包括库函数和自定义函数;例如scanf()和printf()等为库函数;是由C语言系统提供定义,在编程时直进行直接调用,而一些函数需要我们自己进行编译的则为自定义函数。
一般形式
函数类型 函数名(形式参数表) /函数首部/
{
函数实现过程 /函数体/
}
函数最常见的用途:用来实现一个计算并得到一个明确的结果
1.函数首部:
函数首部由函数类型、函数名和形式参数表(以下简称形参表)组成,位于函数义的第一行。函数首部中,函数名是函数整体的称谓,需用一个合法的标识符表示。函数类型指函数结果返回的类型,一般与return语句中表达式的类型一致。形参表中给出函数计算所要用到的相关已知条件,以类似变量定义的形式给出,其格式为:
类型形参1,类型2 形参2,…,类型n形参n
形参表中各个形参之间用逗号分隔,每个形参前面的类型必须分别写明。函数的 参的数量可以是一个,也可以是多个,或者没有形参。
2.函数体
函数体体现函数的实现过程,由一对大括号内的若干条语完成特定的工作,并用return语句返回运算的结果。
3函数的调用
定义一个函数后,就可以在程序中调用这个函教。在C语言中,调用标准库函数时,只需要在程序的最前面用#ineclde命令包含相应的头文件
调用自定义函数时,程序中必须有与调用函数相对应的函数定义。
函数调用的一般形式
函数名(实参列表)
4参数传递
函数定义时,位于其首部的参数被称为形参,如r和h生调函数的参数被称为宝参,如radius和height。形参除了能接受实参的值外,使用方法与普通变量类似。形参和实参必须一-对应,两者数量相同,类型尽量一致。程序运行遇到函数调用时,实参的值依次传给形参,这就是参数传递。
函数的形式必须是变量,用于接受实参传递过来的值;而实参可以是常量、或表达式,其作用是把常量、变量或表达式的值传递给形参。如果实参是变量,
它所对应的形参是两个不同的变
也可以是不同名所对应的形类是两个不同的变量。实参是主调函数的,形参是自定义的数的。
按照C语言的规定,在参数传递过程中,将实参的值复制给形参。这种参数传的来影响实参。是单向的,只允许实参把值复制给形参,形参的值即使在函数中改变了,也不会反过啥实参和形参一对应,一致。
5.函数结果返回
函数结果返回的形式如下:
return表返回主调函数。函数首部由函数类型、函数名和形式参数表(以下简称形参表)组成,位于函数义的第一行。函数首部中,函数名是函数整体的称谓,需用一个合法的标识符表示。函数类型指函数结果返回的类型,一般与return语句中表达式的类型一致。形参表中给出函数计算所要用到的相关已知条件,以类似变量定义的形式给出,其格式为:
类型形参1,类型2 形参2,…,类型n形参n 形参表中各个形参之间用逗号分隔,每个形参前面的类型必须分别写明。函数的 参的数量可以是一个,也可以是多个,或者没有形参。
return语句只能返回一个值。
虽然可以将主调函数放在被调函数的后面,从而不需做声明。但考虑到函数的执行顺序,在编程时一般都把主函数写在最前面,使整个程序的结构和功能开门见山地呈现在读者面前,然后通过函数声明解决丽数先调用后定义的矛盾。函数声明-→函数调用-→函数定义。
注意:如果在调用函数前, 既不定义,也不声明,程序编译时会出错。
6函数程序 设计
使用函数求最大公约数:
调试结果
测试点:
局部变量和全局变量
1局部变量
在程序中使用的变量都定义在函数内部,它们的有效使用范围被局限于所在的函数内。因此主调函数只有通过参数传递,才能把实参数据传递给函数使;同样,形参的改变也不会影响到实参变量。这种变量的有效使用范围,最大程度保了各函数之间的独立性,避免函数之间相互干扰。
C语言中把定义在函数内部的变量称为局部变量,局部变量的有效作用范围局限于所在的函数内部。形参是局部变量。
使用局部变量可以避免各个函数之间的变量相互干扰。当函数使用了同名的形参时,甚至于主函数的实参变量也同名时,由于分属不同函数,它们有各自不同的变量实体和使用范围,不会相互千扰。C语言的这个特性在结构化程序设计中非常有用。
除了作用于函数的局部变量外,C语言还允许定义作用于复合语句中的局部变量,其有效使用范围被局限于复合语句内,一般用作小范围内的临时变量。
全局变量:
定义在函数外而不属于任何函数的变量称为全局变量。全局变量的作用范围是从定义开始到程序所在文件的结束,它对作用范围内所有的函数都起作用。
全局变量的定义格式与局部变量完全一致,只是定义位置不在函数内,它可以定义在程序的头部,也可以定义在两个函数的中间或程序尾部,只要在函数外部即可。