C语言课件第6章函数与宏定义_第1页
C语言课件第6章函数与宏定义_第2页
C语言课件第6章函数与宏定义_第3页
C语言课件第6章函数与宏定义_第4页
C语言课件第6章函数与宏定义_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-81 C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-82C语言允许把问题设计成一个一个的模块,程序通过调用语言允许把问题设计成一个一个的模块,程序通过调用模块功能来解决问题。这些模块通常都是通过函数来实模块功能来解决问题。这些模块通常都是通过函数来实现的,又可称其为现的,又可称其为函数模块函数模块。 C语言中,函数可分为两类语言中,函数可分为两类 :一类是由系统定义的一类是由系统定义的标准函数标准函数,又称为,又称为库函数库函数,其函数,其函数声明一般是放在系统

2、的声明一般是放在系统的include目录下以目录下以.h为后缀的头文为后缀的头文件中,如在程序中要用到某个库函数,必须在调用该函件中,如在程序中要用到某个库函数,必须在调用该函数之前用数之前用#include命令将库函数信息包含到命令将库函数信息包含到本程序中。本程序中。另一类函数是另一类函数是自定义函数自定义函数 ,两种形式:,两种形式: 第一种:第一种:函数声明、函数调用、函数定义。函数声明、函数调用、函数定义。第二种:第二种:函数定义、函数调用。函数定义、函数调用。C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-83 6.1.1 函数定义函数定义

3、 函数定义的一般形式可以有两种。函数定义的一般形式可以有两种。形式一:形式一: 存储类型符存储类型符 返回值类型符返回值类型符 函数名函数名(形参说明表形参说明表) 函数语句体函数语句体 形式二:形式二: 存储类型符存储类型符 返回值类型型符返回值类型型符 函数名函数名(形参表形参表) 形参说明;形参说明; 函数语句体函数语句体 C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-84说明:说明: 1存储类型符存储类型符指的是函数的作用范围,它只有两种指的是函数的作用范围,它只有两种形式:形式:static和和extern。 static说明函数只能作用于

4、其所在的源文件,用说明函数只能作用于其所在的源文件,用static说说明的函数又称为明的函数又称为内部函数内部函数。extern说明函数可被其它源文件中的函数调用,用说明函数可被其它源文件中的函数调用,用extern说明的函数,又称为说明的函数,又称为外部函数外部函数。缺省缺省情况为情况为extern。 2返回值类型符返回值类型符指的是函数体语句执行完成后,指的是函数体语句执行完成后,函函数返回的值的类型数返回的值的类型,如,如int, float, char等等,若函数等等,若函数无返回值,则用无返回值,则用空类型空类型void来定义函数的返回值。来定义函数的返回值。缺省缺省情况为情况为in

5、t型。型。C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-853函数名函数名由任何合法的标识符构成。建议将函数名由任何合法的标识符构成。建议将函数名的命名与函数内容有一定关系。的命名与函数内容有一定关系。4在第一种函数定义的形式中,在第一种函数定义的形式中,形参说明表形参说明表是一系是一系列用逗号分开的每个形参变量说明。列用逗号分开的每个形参变量说明。如:如:int x, int y, int z这表示形参变量有三个:这表示形参变量有三个:x, y, z。它们的类型都是。它们的类型都是int型。型。 在第二种函数定义的形式中,在第二种函数定义的形式中,

6、形参表形参表是一系列用是一系列用逗号分开的形参变量。如:逗号分开的形参变量。如:x, y, z 5函数语句体函数语句体是放在一对花括号是放在一对花括号 中,由局部数据类中,由局部数据类型描述和功能实现两部分组成。型描述和功能实现两部分组成。 C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-866函数返回语句函数返回语句的形式有以下两种:的形式有以下两种:函数无返回值的情况:函数无返回值的情况:return;函数有返回值的情况:函数有返回值的情况:return(表达式的值表达式的值);在第种情况下要注意在第种情况下要注意“表达式的值表达式的值”的类型必须

7、与的类型必须与函数返回值的类型相一致。函数返回值的类型相一致。例如:求两个任意整数的绝对值的和,用函数例如:求两个任意整数的绝对值的和,用函数abs_sum()实现。实现。/*直接调用库函数来计算直接调用库函数来计算m和和n的绝对值的绝对值 */int abs_sum(int m, int n) return (abs(m)+abs(n); /*函数函数abs()是在头文件是在头文件math.h中声明的中声明的*/ C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-87函数定义如下:函数定义如下:int abs_sum(int m, int n) if

8、(m0) m=-m; if(n0) n=-n; return(m+n);6.1.2 函数声明和调用函数声明和调用 一函数的声明一函数的声明函数声明的一般形式:函数声明的一般形式:存储类型符存储类型符 返回值类型符返回值类型符 函数名函数名(形参说明表形参说明表);如:如:int abs-sun(int m, int n);C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-88二函数调用二函数调用函数调用是通过函数调用语句来实现的,分两种形式:函数调用是通过函数调用语句来实现的,分两种形式:无返回值的情况:无返回值的情况: 函数名函数名(实参表实参表);有

9、返回值的情况:有返回值的情况: 变量名函数名变量名函数名(实参表实参表);该变量名的类型必须与函数的返回值类型相同。该变量名的类型必须与函数的返回值类型相同。函数调用时都会去执行函数语句中的内容,函数执行完函数调用时都会去执行函数语句中的内容,函数执行完毕后,回到函数的调用处,继续执行下面的语句。毕后,回到函数的调用处,继续执行下面的语句。C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-896.1.3 函数的传值方式函数的传值方式 函数的传值方式函数的传值方式: 采用实参表将每一个实参的值相应地传递给每一个形采用实参表将每一个实参的值相应地传递给每一个

10、形参变量,形参变量在接收到实参表传过来的值时,会在内参变量,形参变量在接收到实参表传过来的值时,会在内存存临时开辟新的空间临时开辟新的空间,以保留形参变量的值,当函数执行,以保留形参变量的值,当函数执行完毕时,这些完毕时,这些临时开辟的内存空间会被释放临时开辟的内存空间会被释放,并且形参的,并且形参的值在函数中不论是否发生变化,值在函数中不论是否发生变化,都不会影响到实参变量的都不会影响到实参变量的值的变化值的变化,这就是函数的传值方式。,这就是函数的传值方式。自定义函数在程序中的使用顺序有两种形式:自定义函数在程序中的使用顺序有两种形式: 先进行函数声明,再进行函数调用,先进行函数声明,再进

11、行函数调用,函数定义放在函数定义放在函数调用之后。函数调用之后。函数声明在函数调用之前。函数声明在函数调用之前。 函数定义放在函数调用之前。函数定义放在函数调用之前。C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-810【例【例6-1】 编程序,通过调用函数编程序,通过调用函数abs-sum(),求任意,求任意两个整数的绝对值的和。两个整数的绝对值的和。/*exam6_1.c 调用函数求两整数绝对值的和调用函数求两整数绝对值的和*/#include int abs_sum(int m,int n);main()int x,y,z;scanf(%d%d,

12、&x,&y);z=abs_sum(x,y);printf(sum is %d,z);int abs_sum(int m,int n)if(m0)m=-m;if(n0)n=-n;return m+n;C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-811用传值方式调用函数时,实参也可以是函数调用语句用传值方式调用函数时,实参也可以是函数调用语句 【例【例6-2】求任意三个数的绝对值的和。】求任意三个数的绝对值的和。/*exam6_2.c 调用函数求三个整数绝对值的和调用函数求三个整数绝对值的和*/#include int abs_sum(

13、int m,int n);main()int x,y,z,sum;scanf(%d%d%d,&x,&y,&z);sum=abs_sum(abs_sum(x,y),z);printf(sum is %d,sum);int abs_sum(int m,int n)if(m0)m=-m;if(n0)n=-n;return m+n;程序运行结果程序运行结果:7 12 5 sum is 24C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-812注意:注意: 对于有返回值的函数,调用时若没有把它赋给某个变量,对于有返回值的函数,调用时若没有

14、把它赋给某个变量,仍然是可以的,只是函数的返回值有可能会被丢失。仍然是可以的,只是函数的返回值有可能会被丢失。【例【例6-3】 求任意两数的乘积。求任意两数的乘积。自定义一个函数自定义一个函数mul(),用于求两数的乘积,程序:,用于求两数的乘积,程序:/*exam6_3.c 求两个数的乘积求两个数的乘积*/#include float mul(float a,float b);main()float x,y,z;scanf(%f %f,&x,&y);z=mul(x,y); /* */x=x+10;y=y-10;mul(x,y); /* */C C 程序设计基础教程程序设计基础

15、教程第六章函数与宏定第六章函数与宏定义义2022-4-813x=x*2;y=y*2;printf(z=%f,mul(%f,%f)=%fn,z,x,y,mul(x,y); /* * /float mul(float a,float b)return a*b;程序运行结果程序运行结果:5 6 z=30.000000,mul(30.000000,-8.000000)=-240.000000C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-814程序说明程序说明: 注释注释处调用函数后的返回值赋给变量处调用函数后的返回值赋给变量z。 注释注释处调用函数后的返回值

16、没有赋给任何变量,处调用函数后的返回值没有赋给任何变量,函数的返回值被丢失。函数的返回值被丢失。 注释注释处调用函数后的返回值成为了处调用函数后的返回值成为了printf()函数的函数的参数。参数。C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-815 一变量的作用域一变量的作用域 变量的作用域:指的是变量的作用域:指的是变量的有效范围变量的有效范围,针对变量不同,针对变量不同的作用域,可把变量分为局部变量和全局变量。的作用域,可把变量分为局部变量和全局变量。局部变量局部变量:在函数内部或某个控制块的内部定义的变量:在函数内部或某个控制块的内部定义的变

17、量为局部变量,局部变量的有效范围只限于为局部变量,局部变量的有效范围只限于本函数内部本函数内部,退出函数,该变量自动失效。退出函数,该变量自动失效。 全局变量全局变量:在函数外面定义的变量称为全局变量,全局变:在函数外面定义的变量称为全局变量,全局变量的作用域是从该变量定义的位置开始,直到源文件结束。量的作用域是从该变量定义的位置开始,直到源文件结束。在在同一文件同一文件中的所有函数都可以引用全局变量。中的所有函数都可以引用全局变量。 C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-816局部变量和全局变量的局部变量和全局变量的作用域作用域如图所示:如

18、图所示:C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-817【例【例6-4】 变量作用域应用举例,阅读下面的程序,变量作用域应用举例,阅读下面的程序,注意区分局部变量和全局变量的作用域。注意区分局部变量和全局变量的作用域。/*exam6_4.c 变量作用域举例变量作用域举例*/#include void a( void );void b( void );void c( void );int x = 1;main()int x = 5;printf(local x in outer scope of main is %dn, x );C C 程序设计基

19、础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-818int x = 7;printf( local x in inner scope of main is %dn, x );printf( local x in outer scope of main is %dn, x );a();b();c();a();b();c();前三次输出结果前三次输出结果:local x in outer scope of main is 5local x in inner scope of main is 7local x in outer scope of main is 5C C 程

20、序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-819printf( local x in main is %dn, x );getchar();return 0;void a( void )int x = 25;printf( nlocal x in a is %d after entering an, x );+x;printf( local x in a is %d before exiting an, x );C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-820void b( void ) static int

21、 x = 50; printf( nlocal static x is %d on entering bn, x ); +x; printf( local static x is %d on exiting bn, x );void c( void )printf( nglobal x is %d on entering cn, x );x *= 10;printf( global x is %d on exiting cn, x );C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-821程序运行结果程序运行结果: 后后6次函数调用次函数调用local

22、 x in a is 25 after entering alocal x in a is 26 before exiting a local static x is 50 on entering blocal static x is 51 on exiting b global x is 1 on entering cglobal x is 10 on exiting c local x in a is 25 after entering alocal x in a is 26 before exiting a local static x is 51 on entering blocal

23、static x is 52 on exiting bglobal x is 10 on entering cglobal x is 100 on exiting c最后一次输出:最后一次输出:local x in main is 5C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-822二变量的存储类型二变量的存储类型 变量的存储类型:指的是变量的变量的存储类型:指的是变量的存储属性存储属性,它说明,它说明变量变量占用存储空间的区域。占用存储空间的区域。 在内存中,供用户使用的存储区由在内存中,供用户使用的存储区由程序区程序区、静态存储区静态存储区和和

24、动态存储区动态存储区三部分组成。三部分组成。 变量的存储类型有四种:变量的存储类型有四种:auto型、型、register型、型、static型和型和extern型。型。auto型型变量存储在内存的变量存储在内存的动态存储区动态存储区。register型变量保存在型变量保存在寄存器寄存器中。中。static型变量和型变量和extern型变量型变量存储在存储在静态存储器静态存储器。C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-823局部变量局部变量的存储类型缺省值为的存储类型缺省值为auto型型 。全局变量全局变量的存储类型缺省值为的存储类型缺省值为e

25、xtern型型 。auto型变量和型变量和register型变量只用于定义局部变量。型变量只用于定义局部变量。 static型变量即可定义成局部变量,又可定义成全局变量。型变量即可定义成局部变量,又可定义成全局变量。 【例【例6-5】 设计一个函数:设计一个函数:long fac(int n),可用来计算,可用来计算15的阶乘。的阶乘。分析:可在函数中定义一个分析:可在函数中定义一个static型变量,用来保存型变量,用来保存上次的计算结果。上次的计算结果。C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-824/*exam6_5.c 用用static型

26、变量保留上次阶乘的值型变量保留上次阶乘的值*/#include long fac(int n)static int f=1;f=f*n;return f;main()int i;for(i=1;i=5;i+)printf(%d!=%ldn,i,fac(i);程序运行结果程序运行结果:1!=1 2!=2 3!=6 4!=24 5!=120C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-825 一内部函数一内部函数 若函数的存储类型为若函数的存储类型为static型,则称其为型,则称其为内部函数内部函数或称或称静态静态函数函数,它表示在同一个程序中(由多个

27、源文件组成),该,它表示在同一个程序中(由多个源文件组成),该函数只能在一个文件中存在,在其它文件中不可使用。函数只能在一个文件中存在,在其它文件中不可使用。 如:如:static int fun-name();内部函数只能被其所在的源文件调用。内部函数只能被其所在的源文件调用。二外部函数二外部函数 若函数的存储类型定义为若函数的存储类型定义为extern型,则称其为型,则称其为外部函数外部函数,它表示该函数能被其它源文件调用。函数的缺省存储类它表示该函数能被其它源文件调用。函数的缺省存储类型为型为extern型。型。注意:注意:在需要用到外部函数的文件中,其函数声明必须在需要用到外部函数的文

28、件中,其函数声明必须用用extern进行说明。进行说明。C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-826例如:有两个源文件例如:有两个源文件file1.c和和file2.c如下所示:如下所示:/* file1.c 调用外部函数调用外部函数*/# include int mod(int a, int b);extern int add (int m, int n); /*外部函数声明外部函数声明*main() int x, y, result; scanf (“%d%d”, &x, &y); result=add(x,y); /*调

29、用外部函数调用外部函数*/ if (result 0) result=result-mod(x,y); printf(“result=%dn”, result);C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-827int mod(int a, int b) return(a%d);/* file2.c外部函数外部函数*/extern int add(int m, int n) return(m+n);说明:说明:1在文件在文件1(file1.c)中的函数声明:中的函数声明: int mod(int a, int b);实际上相当于:实际上相当于:ex

30、tern int mod(int a, int b);C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-8282在文件在文件2(file2.c)中的函数定义:中的函数定义: extern int add(int m, int n) return(m+n); 实际上相当于:实际上相当于:int add(int m, int n) return(m+n); 3由多个源文件组成一个程序时,由多个源文件组成一个程序时,main()函数只能函数只能出现在一个源文件中。出现在一个源文件中。C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2

31、022-4-8294多个源文件的连接方式有三种:多个源文件的连接方式有三种:将各源文件分别编译成目标文件,得到多个目标文件将各源文件分别编译成目标文件,得到多个目标文件(.obj后缀),然后用连接命令(后缀),然后用连接命令(tlink)把多个)把多个.obj文件文件连接起来,在连接起来,在Turbo c上用如下命令:上用如下命令: tlink file1.obj+file2.obj+filen.obj生成一个生成一个file1.exe的可执行文件。的可执行文件。建立项目文件(建立项目文件(.prj后缀),具体操作可参阅各种后缀),具体操作可参阅各种C编译手册。编译手册。 使用文件包含命令。使

32、用文件包含命令。 C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-830 C语言中一个函数中的语句可以是对另一个函数的调用。语言中一个函数中的语句可以是对另一个函数的调用。函数嵌套调用函数嵌套调用图例:图例:调用过程按图中箭头所示的方向和顺序进行,属于一种调用过程按图中箭头所示的方向和顺序进行,属于一种线性调用关系线性调用关系,每次调用后,最终返回到原调用点,继,每次调用后,最终返回到原调用点,继续执行以下语句。续执行以下语句。 C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-831C语言中还允许在函数中语言中

33、还允许在函数中调用自身调用自身,或函数之间相,或函数之间相互调用,这种调用方式称之为互调用,这种调用方式称之为递归递归。递归又分为。递归又分为直直接递归调用接递归调用和和间接递归调用间接递归调用。 直接递归调用;函数直接调用自身。直接递归调用;函数直接调用自身。间接递归调用:函数互相调用对方。间接递归调用:函数互相调用对方。直接递归:直接递归:int temp (int x) int y, z; z=temp(y); C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-832间接递归:间接递归:显然,递归有可能陷入无限递归状态,最终导致错误发显然,递归有可

34、能陷入无限递归状态,最终导致错误发生。因此,生。因此,设计一个递归问题必须具备两个条件设计一个递归问题必须具备两个条件:1后一部分与原始问题类似。后一部分与原始问题类似。2后一问题是原始问题的简化。后一问题是原始问题的简化。C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-833【例【例6-6】 编程,从键盘输入一个正整数编程,从键盘输入一个正整数n,求,求n!。n!的数字表达式为:的数字表达式为:n!=) 1()!1(*) 1, 0(1nnnn定义一个求定义一个求n!的函数:的函数:long fac(int n)long fac(int n) long

35、 result; if (n= = 0 | n= =1) result =1; else result=n*fac(n-1); return(result); C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-834完整程序如下:完整程序如下: /*exam6_6.c 用递归法求用递归法求n!*/#include long fac(int n)long result;if(n=0|n=1)result=1;elseresult=n*fac(n-1);return result;main()int x;long f;C C 程序设计基础教程程序设计基础教程

36、第六章函数与宏定第六章函数与宏定义义2022-4-835scanf(%d,&x);if(x1)设计一个函数:设计一个函数:long fibonacci (int n)用于计算数列用于计算数列中第中第n项的值,项的值, C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-837程序如下所示:程序如下所示: /*exam6_7.c 求第求第n项项Fibonacci数列的值数列的值*/#include long fibonacci(int n);main()int x=0;long result;doresult=fibonacci(x);printf(

37、fibonacci(%d)=%ldn,x,result);scanf(%d,&x);while(x!=-1);C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-838long fibonacci(int n)if(n=0|n=1)return n;elsereturn fibonacci(n-1)+fibonacci(n-2);C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-839以以x=4为例,下图说明了为例,下图说明了fibonacci函数是怎样计算函数是怎样计算fibonacci(4)的。图中把的。

38、图中把fibonacci简写成简写成f。C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-840【例【例6-12】 在屏幕上画一个在屏幕上画一个1818大小的棋盘。大小的棋盘。程序如下:程序如下: /*exam6_12.c 在屏幕上画一个棋盘在屏幕上画一个棋盘*/#include #include #include /*定义画棋盘所需的制表符定义画棋盘所需的制表符*/#define LU 0 xda /*左上角左上角*/#define RU 0 xbf /*右上角右上角*/#define LD 0 xc0 /*左下角左下角*/#define RD 0 x

39、d9 /*右下角右下角*/#define L 0 xc3 /*左边左边*/#define R 0 xb4 /*右边右边*/C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-841#define U 0 xc2 /*上边上边*/#define D 0 xc1 /*下边下边*/#define CROSS 0 xc5 /*十字叉十字叉*/*棋盘左上角坐标棋盘左上角坐标*/#define MAP_X 5#define MAP_Y 5void draw_cross(int x,int y);void draw_map();main() textmode(C40);

40、 draw_map();C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-842/*函数定义函数定义:*/void draw_map() /*画棋盘画棋盘*/int i,j;for(i=0;i19;i+)for(j=0;j19;j+)draw_cross(i,j);void draw_cross(int x,int y) gotoxy(x+MAP_X,y+MAP_Y);textcolor(GREEN);if(x=0 & y=0) putch(LU); /*画左上角画左上角*/ return; C C 程序设计基础教程程序设计基础教程第六章函数与宏

41、定第六章函数与宏定义义2022-4-843if(x=0 & y=18) putch(LD); /*画左下角画左下角*/ return; if(x=18 & y=0) putch(RU); /*画右上角画右上角*/ return; if(x=18 & y=18) putch(RD); /*画右下角画右下角*/ return; C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-844if(x=0) putch(L); /*画左边画左边*/ return; if(x=18) putch(R); /*画右边画右边*/ return; if(y=0) putch(U); /*画上边画上边*/ return; C C 程序设计基础教程程序设计基础教程第六章函数与宏定第六章函数与宏定义义2022-4-845if(y=18)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论