C语言程序设计教程函数和预处理命令.ppt





《C语言程序设计教程函数和预处理命令.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计教程函数和预处理命令.ppt(77页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2005年3月22005年3月3C程序程序源程序文件源程序文件n函数函数1函数函数m 源程序文件源程序文件1函数函数1函数函数n2005年3月4程序运行情况如下:程序运行情况如下:Enter an integer number:2 2 * 2 * 2 = 8程序的执行总是程序的执行总是从从main函数开始函数开始2005年3月5 一个一个C源程序可以由一个或多个源程序文件组源程序可以由一个或多个源程序文件组成。成。C编译系统在对编译系统在对C源程序进行编译时是以文件源程序进行编译时是以文件为单位进行的。为单位进行的。 一个一个C源程序文件可以由一个或多个函数组成。源程序文件可以由一个或多个函数
2、组成。所有函数都是独立的。主函数可以调用其它函数,所有函数都是独立的。主函数可以调用其它函数,其它函数可以相互调用。其它函数可以相互调用。 在一个在一个C程序中,有且仅有一个主函数程序中,有且仅有一个主函数main。C程序的执行总是从程序的执行总是从main函数开始,调用其它函数函数开始,调用其它函数后最终回到后最终回到main函数,在函数,在main函数中结束整个程函数中结束整个程序的运行。序的运行。2005年3月62005年3月7程序的输出结果如下:程序的输出结果如下:* Welcome to China*2005年3月8函数类型函数类型 函数名函数名( (类型名类型名 形式参数形式参数1
3、, ) ) 说明语句说明语句 执行语句执行语句 例如:求两个数的最大值。例如:求两个数的最大值。 int max(int x,int y) int z; z = x y ? x : y; return( z );类型省略时类型省略时默认为默认为int类型类型没有形式参数没有形式参数为为无参函数无参函数 2005年3月9int max(x,y) int x,y;或或int max(int x,y) 形参也可以这样定义形参也可以这样定义 2005年3月10函数名(实参表列)函数名(实参表列)在在C语言中,把函数调用也作为一个表达式。语言中,把函数调用也作为一个表达式。因此凡是表达式可以出现的地方都
4、可以出现函数因此凡是表达式可以出现的地方都可以出现函数调用。例如:调用。例如: welcome( ); if (iabs (a)max) max=iabs(a); m=max(c,max(a,b);函数调用的一般形式:函数调用的一般形式:2005年3月11程序输出结果:程序输出结果:5050思思考:考:两两个个程程序序有有何何不不同同程序输出结果:程序输出结果:50502005年3月12void 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);
5、printf(na=%d,b=%dn,a,b);程序输出结果:程序输出结果:x=20,y=10a=10,b=20形式参数(形参)形式参数(形参)【例例7.4】编一程序,将主函数中的两个变量的值传编一程序,将主函数中的两个变量的值传递给递给swap函数中的两个形参,交换两个形参的值。函数中的两个形参,交换两个形参的值。单向值传递单向值传递2005年3月13 当函数被调用时才给形参分配内存单元。调用结当函数被调用时才给形参分配内存单元。调用结束,所占内存被释放。束,所占内存被释放。 实参可以是常量、变量或表达式,但要求它们有实参可以是常量、变量或表达式,但要求它们有确定的值。确定的值。 实参与形参
6、类型要一致,字符型与整型可以兼容实参与形参类型要一致,字符型与整型可以兼容。 实参与形参的个数必须相等。在函数调用时,实实参与形参的个数必须相等。在函数调用时,实参的值赋给与之相对应的形参。参的值赋给与之相对应的形参。“单向值传递单向值传递”。2005年3月14程序输出结果:程序输出结果:a=9,b=52005年3月15说明:说明:函数的类型函数的类型决定了函数返决定了函数返回值的类型。回值的类型。若省略函数的若省略函数的类型,系统默类型,系统默认其为认其为int型。型。无返回值的无返回值的函数应将其类函数应将其类型定义为型定义为void 2005年3月16如果不一致,系统自动将表达式类型转如
7、果不一致,系统自动将表达式类型转换为函数类型换为函数类型2005年3月17思考:思考:若要得到单精度实型的圆面积,程序应如何修改若要得到单精度实型的圆面积,程序应如何修改程序运行情况如下:程序运行情况如下:2 122005年3月18void swap(int x, int y) main( ) swap(a,b); 2005年3月19第二种形式省略了参数名,此种形式也称为第二种形式省略了参数名,此种形式也称为函数的原型函数的原型。2005年3月20main( ) void calc(float x,float y,char opr); float a,b; char opr; printf(n
8、Input expression:); scanf(%f%c%f,&a,&opr,&b); calc(a,b,opr);void calc(float x,float y,char opr) switch(opr) case +:printf(%5.2f%c%5.2f=%6.2fn,x,opr,y,x+y);return; case -:printf(%5.2f%c%5.2f=%6.2fn,x,opr,y,x-y);return; case *:printf(%5.2f%c%5.2f=%6.2fn,x,opr,y,x*y);return; case /:printf(%5.2f%c%5.2f=
9、%6.2fn,x,opr,y,x/y);return; default :printf(Operator err! n); 对被调函对被调函数的声明数的声明2005年3月21图图 7.2 验证哥德巴赫猜想验证哥德巴赫猜想输入输入n的值的值 for (a=6; a=n; a+=2) for(b=3;b=a/2;b+=2) b是素数是素数 ? T F c=a-b c是素数?是素数? T F 输出:输出: a、b、c的值的值 break;2005年3月22/* 穷举法判断素数穷举法判断素数 */int prime(int n) int i; for (i=2; i=sqrt(n); i+) if (
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 教程 函数 预处理 命令

限制150内