制作:方斌 C语言程序设计 教程 郧阳师范高-专科 学校计算机科学系
制 作:方 斌 C语言程序设计 教程 郧阳师范高等专科 学校计算机科学系 方 斌 制作
制作:方斌 第7章函数 C语言是通过函数来实现模块化程序设计的 所以较大的c语言应用程序,往往是由多个函数 组成的,每个函数分别对应各自的功能模块
制 作:方 斌 第7章 函数 ⚫ C语言是通过函数来实现模块化程序设计的。 所以较大的C语言应用程序,往往是由多个函数 组成的,每个函数分别对应各自的功能模块
制作:方斌 【例】编写一个儿童算术能力测试软件 显示软件封面 maino d char ans =y'i 检查密码 corsaro Cover /*调用软件封面显示函数* 产生题目 password /*调用密码检查函数*/ while (ans ==y'I ans ==Y 接受回答 t question /*调用产生题目函数*/ answers o; *调用接受回答函数*/ 评判计分 marks /*调用评分函数*/ 显示结果 results /*调用结果显示函数*/ printi(C是否继续练习?(Y/N)n"); 如果要继续练习 ans=getch o: printi(Cˇ谢谢使用,再见!”); 告别词
制 作:方 斌 【例】编写一个儿童算术能力测试软件 显示软件封面 检查密码 产生题目 接受回答 评判计分 显示结果 如果要继续练习 告别词 main() { char ans ='y'; clrscr(); cover(); /*调用软件封面显示函数*/ password(); /*调用密码检查函数*/ while (ans ==’y’|| ans ==’Y’) { question(); /*调用产生题目函数*/ answers(); /*调用接受回答函数*/ marks(); /*调用评分函数*/ results(); /*调用结果显示函数*/ printf(“是否继续练习?(Y/N)\n”); ans=getch (); } printf(“谢谢使用,再见!”); }
制作:方斌 /定义所用函数 cover0{.}/软件封面显示函数 password{}密码检查函数 question0{…}产生题目函数* answers0{…}/接受回答函数* marks0{}/评分函数* results0{}/结果显示函数*
制 作:方 斌 /*定义所用函数*/ cover() {…} /*软件封面显示函数*/ password() {…} /*密码检查函数*/ question() {…} /*产生题目函数*/ answers() {…} /*接受回答函数*/ marks() {…} /*评分函数*/ results() {…} /*结果显示函数*/
制作:方斌 71库函数 ●库函数不需要用户自己来定义和编写代码,使 用的时候只需要加上相应的头文件即可。如我 们前面用过的求平方根函数sqrt0和求实数绝 对值函数 fabs都是库函数,使用时只需要加 上包含这个库函数的头文件” math h”即可。 ●C语言提供的库函数请参考附录5
制 作:方 斌 7.1 库函数 ⚫ 库函数不需要用户自己来定义和编写代码,使 用的时候只需要加上相应的头文件即可。如我 们前面用过的求平方根函数sqrt()和求实数绝 对值函数fabs()都是库函数,使用时只需要加 上包含这个库函数的头文件”math.h”即可。 ⚫ C语言提供的库函数请参考附录5
制作:方斌 函数使用常识: 1、C程序执行总是从main函数开始,调用其它函数后总是回到main函数,最后 在main函数中结束整个程序的运行。 2、一个C程序由一个或多个源(程序)文件组成一一可分别编写、编译和调试。 、一个源文件由一个或多个函数组成,可为多个C程序公用。 4、C语言是以源文件为单位而不以函数为单位进行编译的。 5、所有函数都是平行的、互相独立的,即在一个函数内只能调用其他函数,不 能再定义一个函数(嵌套定义)。 6、一个函数可以调用其他函数或其本身,但任何函数均不可调用man函数
制 作:方 斌 函数使用常识: 1、C程序执行总是从main函数开始,调用其它函数后总是回到main函数,最后 在 main函数中结束整个程序的运行。 2、一个C程序由一个或多个源(程序)文件组成——可分别编写、编译和调试。 3、一个源文件由一个或多个函数组成,可为多个C程序公用。 4、C语言是以源文件为单位而不以函数为单位进行编译的。 5、所有函数都是平行的、互相独立的,即在一个函数内只能调用其他函数,不 能再定义一个函数(嵌套定义)。 6、一个函数可以调用其他函数或其本身,但任何函数均不可调用main函数
制作:方斌 72函数的定义和返回值 ●7.2.1函数定义格式: 函数返回值类型函数名(形参类型1形参名1,形参类型2形参名2, 函数体语句 注意这里必须 说明: 没有分号() 如果省略函数返回值类型则系统默认为函数返回值类型为int类型 如果函数没有返回值,则声明函数返回值类型为Void类型
制 作:方 斌 7.2 函数的定义和返回值 ⚫ 7.2.1 函数定义格式: 函数返回值类型 函数名 (形参类型1 形参名1,形参类型2 形参名2,…) { 函数体语句; } 说明: 如果省略函数返回值类型则系统默认为函数返回值类型为int类型 如果函数没有返回值,则声明函数返回值类型为void类型 注意这里必须 没有分号(;)
制作:方斌 函数返回 值类型注意这里必须 函数定义实例 没有分号() double add(double a, double b) 函数名 double s 形参表 s= atb eturn s 函数体语句 函数的返回值,其 类型必须与定义的 返回值类型一致
制 作:方 斌 函数定义实例 double add (double a, double b) { double s; s = a + b; return s; } 函数返回 值类型 函数名 形参表 函数体语句 函数的返回值,其 类型必须与定义的 返回值类型一致 注意这里必须 没有分号(;)
制作:方斌 722函数的返回值 ●如果定义的函数有返回值(即返回值不为 Vod),则在函数体语句中必须用 return语句返 回一个值,其类型必须与定义的函数返回值类 型一致。如果不一致,则系统会进行隐式的强 制类型转换。其格式如下: return表达式; 或者: return(表达式)
制 作:方 斌 7.2.2 函数的返回值 ⚫ 如果定义的函数有返回值(即返回值不为 void),则在函数体语句中必须用return语句返 回一个值,其类型必须与定义的函数返回值类 型一致。如果不一致,则系统会进行隐式的强 制类型转换。其格式如下: return 表达式; 或者: return (表达式);
制作:方斌 如果定义的函数返回值为void,则不能用 return语句返回一个值。 ● return后面也可以不跟表达式,这时它的作用 只是使程序的执行流程返回到调用处。 函数体中可以有多个 return语句,但程序只会 执行其中的一个
制 作:方 斌 ⚫ 如果定义的函数返回值为void,则不能用 return语句返回一个值。 ⚫ return后面也可以不跟表达式,这时它的作用 只是使程序的执行流程返回到调用处。 ⚫ 函数体中可以有多个return语句,但程序只会 执行其中的一个