C语言程序设计实例教程第七章 函数

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

完整的程序清单 见书本
• 无参函数定义的一般形式: • 类型说明符 函数名() • { • 类型说明 • 语句 • } • 其中类型说明符和函数名称为函数头。 {} 中的内容称为函数体。 在很多情况下都不要求无参函数有返回值,此时函数类型符可以写为void。 • 例如,一个函数定义如下: • void Hello() • { • printf ("Hello,world \n"); • } • 这里,只把main改为Hello作为函数名,其余不变。Hello 函数是一个 无参函数,当被其它函数调用时,输出Hello world字符串。

• • • • • • • • • • • • • •
有参函数定义的一般形式: 类型说明符 函数名(形式参数表) 参数类型说明 { 类型说明 语句 } 例如,定义一个函数, 用于求两个数中的大数,可写为: int max(a,b) int a,b; { if (a>b) return a; else return b; } 第一行说明max函数是一个整型函数,其返回的函数值是一个整数。形参为 a,b。第二行说明a,b均为整型量。 a,b 的具体值是由主调函数在调用时传送 过来的。
7.2自定义有参函数
编写程序: 在主函数中输入 10 个学生成绩,通过调 用函数实现求平均分后,在主函数中输出 平均分值。
• 为使学生成绩管理系统程序结构化、功能化,现使用自定 义函数实现这些功能,各项功能与主函数之间均有数据关 联,因此分别使用有参函数putin( )、average( )、sort( )、 putout( )来实现。 • 本程序首先定义了一个实型函数average,有一个形参为 实型数组a,长度为10。在函数average中,把各元素值 相加求出平均值,返回给主函数。主函数main 中首先完 成数组score的输入,然后以score作为实参调用average 函数,函数返回值送aver,最后输出aver值。
• 在C语言中,可以用以下几种方式调用函数: • 1、函数表达式 • 函数作表达式中的一项出现在表达式中,以函数返回值参与表达式的 运算。例如:z=max(x,y) • 2、函数语句 • 函数调用的一般形式加上分号即构成函数语句。 • 例如:printf("%d",a);scanf("%d",&b);都是以函数语句的方式调用函数。 • 3、函数实参 • 函数作为另一个函数调用的实际参数出现。例如: printf("%d",max(x,y)); 即是把max调用的返回值又作为printf函数的实 参来使用的。在函数调用中还应该注意的一个问题是求值顺序的问题。
第七章 函数
本章内容
7.1 自定义无参函数 7.2 自定义有参函数 7.3 函数的调用和声明 7.4 函数的参数和函数的值 7.5 函数的嵌套及递归调用 7.6 内部函数和外部函数 7.7 局部变量和全局变量 7.8 预处理命令 7.9 结构化程序设计方法 7.10 本章小结
2017/7/2
• 在C语言中可从不同的角度对函数分类。从主调函数和被调函数之间 数据传送的角度看可分为无参函数和有参函数两种。 • 从函数定义的角度看,函数可分为库函数和用户定义函数两种: • C语言不仅提供了极为丰富的库函数,由C系统提供,用户无须定义, 也不必在程序中作类型说明,只需在程序前包含有该函数原型的头文 件即可在程序中直接调用。 • C语言还允许用户建立自己定义的函数。
• •

7.3.4自定义函数的声明
• 函数说明是指在主调函数中调用某函数之前应对该被调函数进行说明。 这与使用变量之前要先进行变量说明是一样的。 • 对被调函数的说明也有两种格式,一种为传统格式,另一种为现代格 式。 • 1、传统格式一般格式为: • 类型说明符 被调函数名(); • 这种格式只给出函数返回值的类型,被调函数名及一个空括号。 • 这种格式由于在括号中没有任何参数信息,因此不便于编译系统进行 错误检查,易于发生错误。
• 函数的调用是指在程序中是通过对函数的调 用来执行函数体的。
7.3.1函数调用的一般形式
• C语言中函数调用的一般形式为: • 函数名(实际参数表) • 对无参函数调用时则无实际参数表,实际参数表 中的参数可以是常数,变量或其它构造类型数据 及表达式,各实参之间用逗号分隔。
7.3.2调用函数的方式
ANSI C 的新标准中把对形参的类型说明合并到形参表中,称为 “现代格式”。 例如, max函数用现代格式可定义为: int max(int a,int b) { if(a>b) return a; else return b; } 现代格式在函数定义和函数说明时, 给出了形式参数及其类型。
7.3 函数的调用和声明
7.1 自定义无参函数
wenku.baidu.com
编一个函数:
用无参函数形式实现“学生信息管理系统” 菜单功能
对该任务我们应该如何才能编写出程序?
有各种式样的菜单,一般以图形菜单为多,但 C
语言是面向过程的编程语言,使用简单的标题菜单最 为直接。我们用 gotoxy() 函数作平面定位,并输出菜 单书面文字,从而形成简单的菜单形式。
7.3.3有关自定义函数的几点说明
• • 1、如果被调函数的返回值是整型或字符型时, 可以不对被调函数作说明, 而直接调用。 2、当被调函数的函数定义出现在主调函数之前时, 在主调函数中也可以不 对被调函数再作说明而直接调用。例7-1中, 函数max的定义放在main 函数 之前,因此可在main函数中省去对 max函数的函数说明int max(int a,int b)。 3、如在所有函数定义之前, 在函数外预先说明了各个函数的类型,则在以 后的各主调函数中,可不再对被调函数作说明。 4、对库函数的调用不需要再作说明, 但必须把该函数的头文件用include命 令包含在源文件前部。在C语言中,在一个函数的函数体内,不能再定义另 一个函数,即不能嵌套定义。但是函数之间允许相互调用,也允许嵌套调用。 5、C程序的执行总是从main函数开始, 完成对其它函数的调用后再返回到 main函数,最后由main函数结束整个程序。
相关文档
最新文档