文档介绍:*
单元七 函数
C 语言程序设计
*
概述
① 程序结构清晰,可读性好。
② 减少重复编码的工作量。
③ 可多人共同编制一个大程序,缩短程序设计周期,提高程序设计和调试的效率。
使用函数的
好处
…
…
C程序
源程序文件n
函数1
函数m
… …
源程序文件1
函数1
函数n
*
【】求一个整数的立方。
int cube (int x) /* 函数定义 */
{ return (x * x * x); }
main( )
{ int f, a;
printf("\nEnter an integer number:");
scanf("%d", &a);
f = cube (a);
printf("%d * %d * %d = %d\n", a, a, a, f);
}
程序运行情况如下:
Enter an integer number:2
2 * 2 * 2 = 8
函数调用
程序的执行总是
从main函数开始
*
⑷ 函数的种类
从函数定义形式分:
① 有参函数:
在主调(用)函数和被调(用)函数之间通过参数进行数据传递, 如:
int cube (int x) { … }
② 无参函数:
如:getchar( )
在调用无参函数时,主调函数不需要将数据传递给无参函数。
从使用的角度看:
① 标准函数(库函数)
库函数是由系统提供的。如:getchar( )、sin(x)等。在程序中可以直接调用它们。附录A列出了C的部分库函数。
② 用户自定义函数。
如:。
*
【】无参函数的定义与调用。
void welcome ( )
{ printf("*********************************\n");
printf(" Welcome to China \n");
printf("*********************************\n");
}
main( )
{ welcome( );}
程序的输出结果如下:
*********************************
Welcome to China
*********************************
*
函数的定义
函数定义的一般形式
函数类型 函数名(类型名 形式参数1,… )
{ 说明语句
执行语句
}
例如:求两个数的最大值。
int max(int x,int y)
{ int z;
z = x > y ? x : y;
return( z );
}
类型省略时默认为int类型
没有形式参数为无参函数
*
函数名(实参表列)
在C语言中,把函数调用也作为一个表达式。因此凡是表达式可以出现的地方都可以出现函数调用。例如:
① welcome( );
② if (iabs (a)>max) max=iabs(a);
③ m=max(c,max(a,b));
函数的调用
函数调用的一般形式:
*
int sum100( )
{ int i,t=0;
for (i=1; i<=100; i++)
t+=i;
return (t);}
main( )
{ int s;
s=sum100( );
printf("%d\n", s);
}
程序输出结果:
5050
int sum ( int x )
{ int i,t=0;
for (i=1; i<=x; i++)
t+=i;
return (t);
}
main( )
{ int s;
s=sum (100);
printf("%d\n", s);
}
【】求1~100的累加和。
思考:两个程序有何不同
程序输出结果:
5050
?
2005年3月
*
void swap(int x, int y)
{ int z;
z=x; x=y; y=z;
printf("\nx=%d,y=%d",x ,y);
}
main( )
{ int a= 10,b=20;
swap(a,b);
printf("\na=%d,b=%d\n",a,b);
}
函数参数与函数的返回值
1.函数的形式参数与实际参数
程序输出结果:
x=20,y=10
a=10,b=20
形式参数(形参)
实际参数(实参)
【