C语言程序设计 第三章模块化程序设计 济南大学
C语言程序设计 第三章 模块化程序设计 —————————————————————————— —————————— 济南大学
第三章模块化程序设 3.1模块化程序设计的方法与特点 32函数的定义 >3.3函数参数和函数的值 >34函数调用和函数声明 >35函数的递归调用 >36库函数的使用 >37全局变量和局部变量 38指针和指针作为函数参数
第三章 模块化程序设计 ➢ 3.1 模块化程序设计的方法与特点 ➢ 3.2 函数的定义 ➢ 3.3 函数参数和函数的值 ➢ 3.4 函数调用和函数声明 ➢ 3.5 函数的递归调用 ➢ 3.6 库函数的使用 ➢ 3.7 全局变量和局部变量 ➢ 3.8 指针和指针作为函数参数 ——————————————————————————
3.1模块化程序设计的 方法与特点
3.1 模块化程序设计的 方法与特点
void stars(intn);/*函数声明 main( maino int i. stars(20);/函数调用 for(i=0;i<20;i++) printf(Han Shu!\n printf(*); stars(20);函数调用* printf("n"); printf(" Han shu!Ⅶn"); void stars(intn)/函数定义* for(i=0;i<20;i++) R int i; printf(x) for(i=0; i<n; i++) printf(\n); printf("*; printf(n; 心U
void stars(int n); main( ) { stars(20); printf(“Han Shu!\n"); stars(20); } void stars(int n) { int i; for (i=0; i<n; i++) printf("*"); printf("\n"); } main( ) { int i; for (i=0; i<20; i++) printf("*"); printf("\n"); printf("Han Shu!\n"); for (i=0; i<20; i++) printf("*"); printf("\n"); } /*函数声明*/ /*函数调用*/ /*函数定义*/ /*函数调用*/
int max(intx,inty);/函数声明* main( i int a, b, c, scanf(%od%d", &a, &b) max(a,b);/函数调用* printf( max=%odn", c); int max(intx,inty)/函数定义 i int z; if(x>yTX; else zFy; return(z) 心U
int max(int x, int y); main( ) { int a,b,c; scanf("%d%d", &a,&b); c=max(a, b); printf("max=%d\n",c); } int max(int x, int y) { int z; if (x>y) z=x; else z=y; return(z); } /*函数声明*/ /*函数调用*/ /*函数定义*/
1、一个较大的程序常分为若干模块,每个模块实现一个特定 的功能。 2、C语言中用函数来实现模块的功能。一个C语言源程序文 件通常由一个main函数和若干个其它函数组成。 3、C程序的执行从main函数开始,由主函数调用其它函数, 其它函数也可以相互调用,程序流程最后回到main函数,在 main函数中结束整个程序的运行。 4、一个函数(主调函数)可以多次调用多个函数(被调函数) 同一个函数也可以被一个或多个函数调用任意多次。但不能 调用main函数。 main 心U
1、一个较大的程序常分为若干模块,每个模块实现一个特定 的功能。 2、C语言中用函数来实现模块的功能。一个C语言源程序文 件通常由一个main函数和若干个其它函数组成。 3、C程序的执行从main函数开始,由主函数调用其它函数, 其它函数也可以相互调用,程序流程最后回到main函数,在 main函数中结束整个程序的运行。 4、一个函数(主调函数)可以多次调用多个函数(被调函数) 。同一个函数也可以被一个或多个函数调用任意多次。但不能 调用main函数。 main a b c f d e f g h i d
5、所有函数在定义时都是平行的,相互独立(一个函数并不 从属于另一个函数),即函数不能嵌套定义,但可以相互调 用 main( i stars(20); print message(; stars(20); stars(int n) i int i; for(i=0; i<n; i++) printf(*); printf"n" n"); print message() i printf("How do you do! n")
5、所有函数在定义时都是平行的,相互独立(一个函数并不 从属于另一个函数),即函数不能嵌套定义,但可以相互调 用。 main( ) { stars(20); print_message( ); stars(20); } stars(int n) { int i; for (i=0; i<n; i++) printf("*"); printf("\n"); } print_message( ) { printf("How do you do!\n"); }
6、函数分类: (1)、使用情况: 标准函数:由系统定义,用户不必自己定义,可以直接使用 >用户自定义函数 int max(int x, int 2、函数形式: y i int z; 有参函数:主调函数与被调函数之if(x>y)z=x; 间有数据传递 eise zy >无参函数:主调函数与被调函数之 return(z) 间没有数据传递 (、任务情况: void main( i int a, b, c; 带返回值 scanf(%d%d", &a, &b) 不带返回值 c=max(a, b) printf("max=%d\n" 心U
⑵、函数形式: ➢有参函数:主调函数与被调函数之 间有数据传递 ➢无参函数:主调函数与被调函数之 间没有数据传递 int max(int x, int y) { int z; if (x>y) z=x; else z=y; return(z); } void main( ) { int a,b,c; scanf("%d%d", &a,&b); c=max(a, b); printf("max=%d\n",c); } ⑶、任务情况: ➢ 带返回值 ➢ 不带返回值 6、函数分类: ⑴、使用情况: ➢标准函数:由系统定义,用户不必自己定义,可以直接使用 ➢用户自定义函数
32函数的定义
3.2 函数的定义
1、形式: 类型标识符函数名(形式参数表列) void main() 变量声明部分 语句部分 int max(int x, int y) ■■■■■ 2、说明: ①、函数名:用户给函数起的名字,必须符合标识符命名规则 ②、类型标识符:指定函数返回值的类型 若函数无返回值,函数定义时应写上void 心U
1、形式: 类型标识符 函数名(形式参数表列) { 变量声明部分 语句部分 } 2、说明: ①、函数名:用户给函数起的名字,必须符合标识符命名规则 ②、类型标识符:指定函数返回值的类型 若函数无返回值,函数定义时应写上 void int max(int x, int y) { …… } void main( ) { …… }