欢迎来到天天文库
浏览记录
ID:38834104
大小:386.32 KB
页数:61页
时间:2019-06-20
《C语言课件第8章函数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章函数主要内容:1、函数的定义2、函数的调用(包括嵌套调用和递归调用)4、局部变量和全局变量5、变量的存储类别重点:1)如何定义函数(即如何编写函数)2)如何调用函数(包括库函数和自定义函数)函数的引入函数:函数是完成某些特定功能的代码块。使用函数的优点:1)实现模块化设计:将一个大任务分解成一个个的小任务,然后每个任务分别用函数实现。2)实现“编写一次,多次调用”,避免在不同的程序中重复编写相同的函数。3)便于程序调试和维护,因为每个函数之间是相互独立的。函数的分类:库函数和用户自定义函数8.1函数的定义例8.1编写函数max:求两个整数x和y
2、中的较大数。intmax(intx,inty)/*函数头*/{intz=x;/*函数体{……}*/if(x3、tf("********************");}本例中,函数的类型:void,函数名为line,函数无参数。该函数无返回值,所以函数类型为void型。函数定义的一般形式如下:函数类型函数名(类型名形式参数1,类型名形式参数2,…){说明部分语句部分}1.函数名:是该函数的唯一标识符,一般函数的命名最好做到“见名知义”。2.函数类型:函数的返回值的类型。当函数无返回值时,规定其类型为:void。当函数返回值为int时,函数类型可以省略。3.形式参数:形参是函数被调用时用于接收实参值的变量。根据实际需要可有可无。没有形参时,圆括号也不可省;多4、个参数之间应用逗号分隔。参数包括参数名和参数类型。形参的类型说明可有如下两种格式:intmax(inta,intb)/*形参的类型在形参表中直接说明*/{return(a>b?a:b);}或intmax(a,b)inta,b;/*形参的类型在函数体前、函数名后说明*/{return(a>b?a:b);}前者为标准格式,后者为传统格式,通常用前者。4.函数体:即函数功能的具体实现。它包括两部分:说明部分和执行部分,其中说明部分包括函数中所用的局部变量等的说明、函数中要调用的函数的说明。注意:函数不能嵌套定义,即函数内不能再定义函数,这样可以保证函数间是5、相互独立的,以实现模块化程序设计。5.空函数:函数类型函数名(){}调用此函数时,什么也不做。只是表明这里要调用一个函数,而现在这个函数的功能还没实现。空函数在程序设计中常常用到的:1)预留函数,便于以后扩充程序功能。2)便于程序的模块化设计和调试:程序设计中往往根据需要确定若干模块,分别由一些函数来实现。一个大系统,需要编写很多用户函数,而这些函数不可能也没有必要同步完成,通常足从一些基本模块开始,编写一个调试一个,对于没有编写的函数就需要用空函数代替。从而也有利于集体创作。空函数举例例8.3编写小学生算术练习系统的主程序:显示主菜单,用户选择,根6、据选择执行加、减、乘、除、退出5项功能之一。重复上述步骤,直至选择退出。其中主程序调用的函数有:显示主菜单函数list_menu(),加、减、乘、除、退出函数分别是add(),sub(),mul(),divide(),end().以上函数除list_menu()外此时均为空函数。程序:l8_1_4.c#include"stdio.h"/*l8_1_4.c*/main(){voidadd(),sub(),mul(),divide(),end(),list_menu();intn;do{list_menu();scanf("%d",&n);getchar7、();switch(n){case1:add();break;case2:sub();break;case3:mul();break;case4:divide();break;case5:end();break;default:printf("entererror,pleaseagain.");}}while(n!=5);}voidlist_menu(){printf("**theexercisesystemforprimitivestudents***");printf("**1.add**");printf("**2.sub**"8、);printf("**3.mul**");printf("**4.divide*");printf
3、tf("********************");}本例中,函数的类型:void,函数名为line,函数无参数。该函数无返回值,所以函数类型为void型。函数定义的一般形式如下:函数类型函数名(类型名形式参数1,类型名形式参数2,…){说明部分语句部分}1.函数名:是该函数的唯一标识符,一般函数的命名最好做到“见名知义”。2.函数类型:函数的返回值的类型。当函数无返回值时,规定其类型为:void。当函数返回值为int时,函数类型可以省略。3.形式参数:形参是函数被调用时用于接收实参值的变量。根据实际需要可有可无。没有形参时,圆括号也不可省;多
4、个参数之间应用逗号分隔。参数包括参数名和参数类型。形参的类型说明可有如下两种格式:intmax(inta,intb)/*形参的类型在形参表中直接说明*/{return(a>b?a:b);}或intmax(a,b)inta,b;/*形参的类型在函数体前、函数名后说明*/{return(a>b?a:b);}前者为标准格式,后者为传统格式,通常用前者。4.函数体:即函数功能的具体实现。它包括两部分:说明部分和执行部分,其中说明部分包括函数中所用的局部变量等的说明、函数中要调用的函数的说明。注意:函数不能嵌套定义,即函数内不能再定义函数,这样可以保证函数间是
5、相互独立的,以实现模块化程序设计。5.空函数:函数类型函数名(){}调用此函数时,什么也不做。只是表明这里要调用一个函数,而现在这个函数的功能还没实现。空函数在程序设计中常常用到的:1)预留函数,便于以后扩充程序功能。2)便于程序的模块化设计和调试:程序设计中往往根据需要确定若干模块,分别由一些函数来实现。一个大系统,需要编写很多用户函数,而这些函数不可能也没有必要同步完成,通常足从一些基本模块开始,编写一个调试一个,对于没有编写的函数就需要用空函数代替。从而也有利于集体创作。空函数举例例8.3编写小学生算术练习系统的主程序:显示主菜单,用户选择,根
6、据选择执行加、减、乘、除、退出5项功能之一。重复上述步骤,直至选择退出。其中主程序调用的函数有:显示主菜单函数list_menu(),加、减、乘、除、退出函数分别是add(),sub(),mul(),divide(),end().以上函数除list_menu()外此时均为空函数。程序:l8_1_4.c#include"stdio.h"/*l8_1_4.c*/main(){voidadd(),sub(),mul(),divide(),end(),list_menu();intn;do{list_menu();scanf("%d",&n);getchar
7、();switch(n){case1:add();break;case2:sub();break;case3:mul();break;case4:divide();break;case5:end();break;default:printf("entererror,pleaseagain.");}}while(n!=5);}voidlist_menu(){printf("**theexercisesystemforprimitivestudents***");printf("**1.add**");printf("**2.sub**"
8、);printf("**3.mul**");printf("**4.divide*");printf
此文档下载收益归作者所有