C语言程序设计课程课件之第三章模块化程序设计.ppt
《C语言程序设计课程课件之第三章模块化程序设计.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计课程课件之第三章模块化程序设计.ppt(71页珍藏版)》请在课桌文档上搜索。
1、第 三 章,模块化程序设计,引出,如果程序中有多个数,多处需要判断是否是素数,怎么办?反复书写那段重复的代码?解决办法:将判断素数的功能用一个独立的模块来实现,即自定义函数;在main函数中反复调用此功能模块就可以了。,for(i=2;i=x/2)printf(yesn);else printf(non);,main()int a,b;printf(input a number:);scanf(%d%d,模块化的优点:实现了代码的复用;编程效率高;代码少;功能分解,易于实现;便于合作开发大型项目等。,void sushu(int x)int i;for(i=2;i=x/2)printf(yes
2、n);else printf(non);,教学要求,1掌握函数定义的一般形式。2掌握函数调用的两种方式。3理解函数形参与实参的对应关系、参数传递方法及函数返回值的概念。4掌握指针的含义。5掌握指针作为函数参数的数据传递特点。,3.2 函数的定义,函数的定义位置:应写在其它函数的外面,前后都可以,但不能写在内部。函数的定义形式:第一行写函数名和括号 第二行开始是函数体,用大括号扩起来,如:,函数名称用户自定,函数定义的基本知识,函数定义的声明:函数被调用在前面,而函数定义书写在后面的,需要在使用该函数前进行声明。函数声明的形式:将函数定义的第一行信息重新写一遍,末尾加分号。,void sushu
3、(int x);main()sushu(a);void sushu(int x),声明可以放在调用之前的任意位置处。,main()float add(float x,float y);float a,b,c;scanf(%f,%f,float add(float a,float b);,float add(float,float);,函数声明的几种变通形式:,函数定义的高级知识,函数的参数函数的返回值,主调函数,自定义函数,参数,返回值,int sushu(int x),函数的形式分类1,有参函数无参函数,函数的形式分类2,有返回值函数无返回值函数,无论有参、无参,函数名后的括号不能省略。,无
4、参函数定义,通常也无返回值,仅需书写:void 函数名();例如:void clrscr();void draw()main()draw();draw();如果有返回值,则写明返回值类型,例如 char getchar();ch=getchar();,特点:空括号,有参函数定义,需写明参数的个数和类型:类型 函数名(类型 参数1,类型 参数2,)如:int sushu(int n);float fun(int m,int n);【强调】:形参定义时需分别写明它们的类型,类型相同不能只写一个,例如下错误:float fun(int m,n);,例如:求两个数的最大值的函数参数设计:max(),f
5、loat x,float y,float,函数定义分析练习,分析设计函数首部信息:实验4-1-4:float fun(int n)实验4-1-5:float fun(int m,int n)实验4-1-7:void fun(),有返回值函数定义,有返回值函数,在函数体内用return语句返回处理的结果值。如:int sushu(int x)int i;for(i=2;i=x/2;i+)if(x%i=0)return 0;return 1;return语句的两个功能:返回值、结束函数调用。,如果函数不返回值,则名称前写void,如:void draw(int x,int y)如果定义函数时名称前
6、没写明类型,默认为int类型,如:draw(int x,int y),【注意】:如果函数体内return语句返回值的类型与定义的函数名前类型不同,则以函数名前面的类型为准,系统会自动进行类型转换,可能会产生误差或错误。,?,函数定义练习,例:编写一个函数,其功能是求m的n次方,即mn。,分析:函数参数 函数返回值,2个,int类型参数返回值为float或double类型,函数首部信息如下:double fun(int m,int n),double fun(int m,int n)int i;double t=1;for(i=1;i=n;i+)t=t*m;return t;,main()int
7、 a,b;double c;printf(input two numbers:);scanf(%d%d,return(表达式);return 表达式;,形参在括号中定义后,直接在函数中使用,不能再次定义。,函数调用,形参和实参,形参:定义时括号内的参数叫做形式参数,简称形参。实参:调用是给予的实际数值叫做实际参数,简称实参。,形参和实参:个数相同、类型一致、一一对应。例如求m的n次方的函数:float fun(int m,int n)调用时如果求4的5次方,只能书写fun(4,5);不能写为fun(5,4);,有返回值函数调用,double fun(int m,int n)int i;doub
8、le t=1;for(i=1;i=n;i+)t=t*m;return t;,main()int a,b;double c;printf(input two numbers:);scanf(%d%d,赋 值,实参可以是常量、变量、表达式等。如:fun(2,8)fun(3,1+5),有返回值函数调用,输 出,double fun(int m,int n)int i;double t=1;for(i=1;i=n;i+)t=t*m;return t;,main()int a,b;printf(input two numbers:);scanf(%d%d,有返回值函数调用,double jiecheng
9、(int n)int i;double t=1;for(i=1;i=n;i+)t=t*i;return t;,main()int a,i;double b=0;scanf(%d,表达式运算,有返回值函数调用,b=jiecheng(a);b=b+jiecheng(i);printf(%.0lfn,jiecheng(a);,总结:将函数调用看做一个可以利用的值。函数调用一般不作为独立语句存在。jiecheng(a);,?,无返回值函数调用,编写一个函数,其功能画m行n列的矩形。,分析:函数参数 函数返回值,2个,int类型参数无返回值,为void,函数首部信息如下:void draw(int m,
10、int n),void draw(int m,int n)int i,j;for(i=1;i=m;i+)for(j=1;i=n;i+)printf(“*”);printf(“n”);,void main()int x,y;scanf(“%d%d”,总结:函数调用作为独立语句存在。,函数调用总结:两种形式:有返回值函数调用看做一个可以利用的值。无返回值函数调用作为独立语句存在。,本次课内容小节,函数定义的基本形式函数定义的参数表达函数定义的返回值类型函数调用的实参表达函数调用的2种形式,编程练习,编写一个函数,判断一个给定的数是否是水仙花数。编写一个函数,功能是输出如下三角形图案。,函数编程练习
11、,编写函数,求三角形面积。函数参数:三角形的三条边 函数返回值:三角形面积。,3-3,编程练习(实验题目),编写函数判断一个数是否是完数。完数:一个数如果恰好等于它的因子之和,这个数就是完数,例如6的因子为1、2、3,而61+2+3,因此6是完数。要求函数返回整型值。,3-4,3.7 库函数的使用,参考书后附录,P303注意包含相应的头文件。注意理解参数的类型和含义。,3.8局部变量与全局变量,局部变量-内部变量在函数内定义的变量是局部变量,其作用域:只在本函数内有效声明:不同函数中可定义的局部变量可同名,占不同内存单元形参属于局部变量在复合语句中也可以定义它的局部变量,其作用域是只在此复合语
12、句中有效。,i有效,全局变量-外部变量函数外部定义的变量称为全局变量其作用域为定义位置后的任何函数,int a=13,b=-8;int max()int z;z=ab?a:b;return(z);main()printf(“a=%d,b=%d,a,b);printf(max=%d,max();,例 全局变量举例,int max(int x,int y)int z;z=xy?x:y;return(z);main()printf(“a=%d,b=%d,a,b);printf(max=%d,max(a,b);int a=13,b=-8;,编译出错,因为全局变量的作用域为定义位置后的任何函数,全局变量
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 课程 课件 第三 模块化 程序设计
链接地址:https://www.desk33.com/p-241829.html