欢迎来到天天文库
浏览记录
ID:59422185
大小:536.50 KB
页数:94页
时间:2020-09-19
《c语言.函数与编译预处理ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、6.1概述6.2函数的定义6.3函数的调用6.4函数的嵌套及递归调用6.5数组作为函数参数6.6局部变量和全局变量6.7变量的存储类别6.8内部函数和外部函数6.9编译预处理6.10程序举例第6章函数6.1概述6.1.1模块与函数1.功能模块求解较小问题的算法和程序称作“功能模块”,各功能模块可以先单独设计,然后将求解所有子问题的模块组合成求解原问题的程序。“自顶向下”的模块化程序设计方法:将一个大问题分解成多个解决小问题的模块的设计思想。2.由功能模块组成程序的结构图:主控模块模块1_1模块1_n模块
2、2_1模块2_n模块n_1模块n_n模块1模块2模块n3.函数:完成相对独立功能的程序【例】输入年月日,计算出该日为该年的第几天。主控模块判断闰年求某月的天数输出输入求总天数程序实现:(1)判断闰年。intleap(intyear){intlp;lp=(year%4==0&&year%100!=0
3、
4、year%400==0)?1:0;returnlp;}(2)求某月的天数。intmonth_days(intyear,intmonth){intds,d;switch(month){case1:case3:
5、case5:case7:case8:case10:case12:d=31;break;case2:d=leap(year)?29:28;break;default:d=30;}returnd;}(3)求天数和。intdays(intyear,intmonth,intday){inti,ds=0;for(i=1;i6、day,t_day;printf("Inputyear-month-day:");scanf("%d-%d-%d",&year,&month,&day);t_day=days(year,month,day);printf("%d-%d-%dis%dthdayoftheyear!",year,month,day,t_day);}注意:在完整的程序中,前三个函数应放在main()函数之前。6.1.2模块设计三个原则模块独立。功能独立的子功能模块之间的关系简单使用独立变量模块规模适当分解模块要注意层次7、对问题抽象化设计时细化6.1.3函数分类:1.从函数形式:无参函数有参函数2.从用户角度:用户自定义函数标准函数(库函数):由系统提供3.从函数的返回值角度:有返回值函数,调用该函数后可以得到返回值。无返回值函数,调用该函数后没有返回值。使用库函数注意:函数功能、函数所在文件、函数参数的数目和顺序及各参数意义和类型、函数返回值意义和类型6.2函数定义一、标准库函数定义在不同的头文件中用户使用时,必须用#include“头文件”把相应的头文件包含到程序中来。#include/*包含math8、.h头文件*/#include/*包含stdio.h头文件*/main(){doublea,b;scanf(“%f“,&a);/*调用输入函数,输入变量a的值*/b=sin(a);/*调用sin函数,求sin(a)的值*/printf(“%6.4f”,b);/*调用输出函数,输出变量b的值*/}二、用户自定义函数函数类型无参函数函数的定义无参数说明有参函数定义的参数有一个或一个以上的参数空函数当定义的函数既无参数也无执行语句。空函数被调用时,什么也不做立即返回其调用函数。1、无参函数的9、定义类型说明符 函数名(){声明部分;语句部分;}函数返回值类型缺省int型无返回值void合法标识符函数体无参函数例子:printstar(void){printf(“*****”)}printstar()/*printstar函数*/{printf(“*****\n”);}main(){printstar();}注意:无参函数可以显式的在函数名后括号中加入关键字void2、有参函数定义类型说明符函数名(形式参数列表){声明部分;语句部分;}函数返回值类型缺省int型无返回值void形参需要定义类10、型有参函数例子:printstar(intn)/*printstar函数*/{inti;for(i=1;i<=n;n++)printf(“*”);printf(“”);}main(){intn;scanf(“%d”,&n);printstar(n);}形参和实参可以同名形参定义通常采用现代风格:类型说明符函数名(类型说明符参数1,[类型说明符参数2,…]){函数体}三、函数的参数形参:即形式参数:定义函数时函数名后面括号中的变量名实参:
6、day,t_day;printf("Inputyear-month-day:");scanf("%d-%d-%d",&year,&month,&day);t_day=days(year,month,day);printf("%d-%d-%dis%dthdayoftheyear!",year,month,day,t_day);}注意:在完整的程序中,前三个函数应放在main()函数之前。6.1.2模块设计三个原则模块独立。功能独立的子功能模块之间的关系简单使用独立变量模块规模适当分解模块要注意层次
7、对问题抽象化设计时细化6.1.3函数分类:1.从函数形式:无参函数有参函数2.从用户角度:用户自定义函数标准函数(库函数):由系统提供3.从函数的返回值角度:有返回值函数,调用该函数后可以得到返回值。无返回值函数,调用该函数后没有返回值。使用库函数注意:函数功能、函数所在文件、函数参数的数目和顺序及各参数意义和类型、函数返回值意义和类型6.2函数定义一、标准库函数定义在不同的头文件中用户使用时,必须用#include“头文件”把相应的头文件包含到程序中来。#include/*包含math
8、.h头文件*/#include/*包含stdio.h头文件*/main(){doublea,b;scanf(“%f“,&a);/*调用输入函数,输入变量a的值*/b=sin(a);/*调用sin函数,求sin(a)的值*/printf(“%6.4f”,b);/*调用输出函数,输出变量b的值*/}二、用户自定义函数函数类型无参函数函数的定义无参数说明有参函数定义的参数有一个或一个以上的参数空函数当定义的函数既无参数也无执行语句。空函数被调用时,什么也不做立即返回其调用函数。1、无参函数的
9、定义类型说明符 函数名(){声明部分;语句部分;}函数返回值类型缺省int型无返回值void合法标识符函数体无参函数例子:printstar(void){printf(“*****”)}printstar()/*printstar函数*/{printf(“*****\n”);}main(){printstar();}注意:无参函数可以显式的在函数名后括号中加入关键字void2、有参函数定义类型说明符函数名(形式参数列表){声明部分;语句部分;}函数返回值类型缺省int型无返回值void形参需要定义类
10、型有参函数例子:printstar(intn)/*printstar函数*/{inti;for(i=1;i<=n;n++)printf(“*”);printf(“”);}main(){intn;scanf(“%d”,&n);printstar(n);}形参和实参可以同名形参定义通常采用现代风格:类型说明符函数名(类型说明符参数1,[类型说明符参数2,…]){函数体}三、函数的参数形参:即形式参数:定义函数时函数名后面括号中的变量名实参:
此文档下载收益归作者所有