1、概概 述述 模块化程序设计模块化程序设计 基本思想:将一个大的程序按功能分割成一些小模基本思想:将一个大的程序按功能分割成一些小模块块 特点:特点:各模块相对独立、功能单一、结构清晰、接口各模块相对独立、功能单一、结构清晰、接口简单简单 控制了程序设计的复杂性控制了程序设计的复杂性 提高元件的可靠性提高元件的可靠性 缩短开发周期缩短开发周期 避免程序开发的重复劳动避免程序开发的重复劳动 易于维护和功能扩充易于维护和功能扩充 开发方法开发方法:自上向下自上向下,逐步分解,分而治之逐步分解,分而治之源程序文件1预编译命令说明部分执行部分函数1函数n源程序文件i源程序文件nC程序C C程序结构程序结
2、构C C是是函数式函数式语言语言必须有且只能有一个名为必须有且只能有一个名为mainmain的主函数的主函数C程序的执行总是程序的执行总是从从mainmain函数开始,在函数开始,在mainmain中结束中结束函数函数不能嵌套定义不能嵌套定义,可以嵌套调用可以嵌套调用C C程序的结构程序的结构函数的分类函数的分类从函数定义的角度分从函数定义的角度分库函数:库函数:由由C C系统提供,用时只需将其所在头文件包系统提供,用时只需将其所在头文件包含到程序前面,即可调用含到程序前面,即可调用如:如:scanf()、getchar()、getchar()、printf()等等用户定义函数:用户定义函数:
3、用户根据需要自己设计开发的,完成用户根据需要自己设计开发的,完成一定功能的函数一定功能的函数从主调与被调函数之间数据传送的角度分从主调与被调函数之间数据传送的角度分无参函数:无参函数:函数要完成一定的功能不需要函数要完成一定的功能不需要“原料原料”(参数),就能实现功能(参数),就能实现功能“产品产品”有参函数:有参函数:函数要实现一定功能时,需要一定的函数要实现一定功能时,需要一定的“原原料料”条件条件从对函数返回值的需求状况从对函数返回值的需求状况有返回值函数:有返回值函数:函数实现功能后,能产生一个函数实现功能后,能产生一个“产品产品”(功能值),需要返回到调用处(功能值),需要返回到调
4、用处无返回值函数:无返回值函数:函数仅仅是实现一定的加工变换函数仅仅是实现一定的加工变换功能,没有明显的功能,没有明显的“产品产品”(值),无需返回值(值),无需返回值函数类型函数类型 函数名函数名(形参类型说明表形参类型说明表)说明部分说明部分语句部分语句部分合法标识符函数返回值为函数返回值为int 或或char类型类型时,可缺省,无返回值时,时,可缺省,无返回值时,可用可用void类型类型函数体例 有参函数 int max(int x,int y)int z;z=xy?x:y;return(z);例 有参函数 int max(int x,y)int z;z=xy?x:y;return(z)
5、;例 空函数 dummy()函数体为空例 无参函数 void printstar()printf(“*n”);或void printstar(void)printf(“*n”);函数的定义格式函数的定义格式函数的定义及应用示例函数的定义及应用示例1编制一个求编制一个求n!的函数,并用它来求的函数,并用它来求1!+2!+3!+10!long fac(int n)int I;long j=1;for(I=1;I=n;I+)j*I;j=return(j);main()int I;long sum=0;for(I=1;Ib)return a;else return b;函数的调用形式函数的调用形式1、
6、直接函数语句:、直接函数语句:例例 printstar();printf(“Hello,World!n”);2、表达式调用函数:、表达式调用函数:例例 m=max(a,b)*2;3、函数作为函数的参数:、函数作为函数的参数:例例 printf(“%d”,max(a,b);m=max(a,max(b,c);函数应用示例函数应用示例2求求100300之间所有的素数,要求用功能函数实现判断之间所有的素数,要求用功能函数实现判断一个数是否为素数的问题,主调函数具体求解。一个数是否为素数的问题,主调函数具体求解。活动:由学生先试写判断素数的功能函数活动:由学生先试写判断素数的功能函数int prime(int n)int I;int sign=1;for(I=2;I=n/2;I+)if(n%I=0)sign=0;break;return(sign);main()int I;for(I=100;I=0?x:-x;return(f);main()float value,m;float abs_value(float);printf(”Input a data:”);scanf(”%f”,&value);abs_value(value);m=printf(”%f”,m);作业作业书上练习书上练习P100:一:一:1-8;本上练习本上练习P102:二:二:1-2