《计算机语言编程函数.ppt》由会员分享,可在线阅读,更多相关《计算机语言编程函数.ppt(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机语言编程函数现在学习的是第1页,共31页本章要点本章要点函数的定义,函数的定义域,函数的值域函数的定义,函数的定义域,函数的值域什么是函数的参数?在函数调用时,参数什么是函数的参数?在函数调用时,参数是如何传递的?是如何传递的?在使用函数的过程中,要注意哪些问题?在使用函数的过程中,要注意哪些问题?怎样确定函数的参数?怎样确定函数的参数?如何使用局部变量和全局变量?如何使用局部变量和全局变量?现在学习的是第2页,共31页1 计算圆柱体积计算圆柱体积1.1 程序解析程序解析-计算圆柱体积计算圆柱体积 例例1 1 输入圆柱输入圆柱体体的高和半径,求圆柱体积的高和半径,求圆柱体积volume=
2、*r2*h。要求定义和调用函数要求定义和调用函数cylinder(r,h)计算圆计算圆柱体的体积。柱体的体积。现在学习的是第3页,共31页#include#include void main(void)void main(void)/*/*计算圆柱体积计算圆柱体积计算圆柱体积计算圆柱体积*/double height,radius,volume;double height,radius,volume;double cylinder(double r,double h);double cylinder(double r,double h);/*/*函数声明函数声明函数声明函数声明*/printf
3、(Enter radius and height:);printf(Enter radius and height:);scanf(%lf%lf,&radius,&height);scanf(%lf%lf,&radius,&height);volume=volume=cylinder(radius,height)cylinder(radius,height);/*/*调用函数调用函数调用函数调用函数*/printf(Volume=%.3fn,volume);printf(Volume=%.3fn,volume);double cylinder(double r,double h)double
4、cylinder(double r,double h)/*/*定义求圆柱体积的函数定义求圆柱体积的函数定义求圆柱体积的函数定义求圆柱体积的函数*/double result;double result;result=3.14159*r*r*h;result=3.14159*r*r*h;/*/*计算体积计算体积计算体积计算体积*/return result;return result;/*/*返回结果返回结果返回结果返回结果*/Enter radius and height:3.0 10Volume=282.743现在学习的是第4页,共31页1.2 函数的定义函数的定义 函数是指完成一个特定工作
5、的独立程序模块。函数是指完成一个特定工作的独立程序模块。函数是指完成一个特定工作的独立程序模块。函数是指完成一个特定工作的独立程序模块。库函数:由库函数:由库函数:由库函数:由C C语言系统提供定义语言系统提供定义语言系统提供定义语言系统提供定义(如如如如scanfscanf()()、printf()printf()等等等等)自定义函数:需要用户自己定义自定义函数:需要用户自己定义自定义函数:需要用户自己定义自定义函数:需要用户自己定义如计算圆柱体体积函数如计算圆柱体体积函数如计算圆柱体体积函数如计算圆柱体体积函数cylindercylinder()()()()main()main()也也也也
6、是是是是一一一一个个个个函函函函数数数数,C C程程程程序序序序由由由由一一一一个个个个main()main()和和和和多多多多个个个个其其其其它它它它函函函函数构成。数构成。数构成。数构成。程程程程序序序序中中中中一一一一旦旦旦旦调调调调用用用用了了了了某某某某个个个个函函函函数数数数,该该该该函函函函数数数数就就就就会会会会完完完完成成成成一一一一些些些些特特特特定定定定的工作,然后返回到调用它的地方。的工作,然后返回到调用它的地方。的工作,然后返回到调用它的地方。的工作,然后返回到调用它的地方。函函函函数数数数经经经经过过过过运运运运算算算算,得得得得到到到到一一一一个个个个明明明明确确
7、确确的的的的运运运运算算算算结结结结果果果果,并并并并需需需需要要要要回回回回送送送送该该该该结结结结果。例如,函数果。例如,函数果。例如,函数果。例如,函数cylinder()cylinder()返回圆柱的体积。返回圆柱的体积。返回圆柱的体积。返回圆柱的体积。函数完成一系列操作步骤,不需要回送任何运算结果。函数完成一系列操作步骤,不需要回送任何运算结果。函数完成一系列操作步骤,不需要回送任何运算结果。函数完成一系列操作步骤,不需要回送任何运算结果。现在学习的是第5页,共31页1返回运算结果的函数定义返回运算结果的函数定义函数类型函数类型 函数名(形参表)函数名(形参表)/*函数首部函数首部*
8、/*函数体函数体*/函数实现过程函数实现过程 return 表达式;表达式;把函数运算的结果回送给主函数把函数运算的结果回送给主函数把函数运算的结果回送给主函数把函数运算的结果回送给主函数函数返回值的类型函数返回值的类型函数返回值的类型函数返回值的类型没有分号只能返回一个值只能返回一个值现在学习的是第6页,共31页形参类型类型类型类型1 1 参数参数参数参数1 1,类型,类型,类型,类型2 2 参数参数参数参数2 2,类型,类型,类型,类型n n 参数参数参数参数n n参数之间用逗号分隔,每个参数前类型都必须分别写明参数之间用逗号分隔,每个参数前类型都必须分别写明参数之间用逗号分隔,每个参数前
9、类型都必须分别写明参数之间用逗号分隔,每个参数前类型都必须分别写明函数类型函数类型函数类型函数类型 函数名函数名函数名函数名(形参表形参表形参表形参表)函数实现过程函数实现过程函数实现过程函数实现过程 return return 表达式;表达式;表达式;表达式;不能写成不能写成 double r,hdouble cylinder(double cylinder(double r,double hdouble r,double h)double result;double result;result=3.1415926*r*r*h;result=3.1415926*r*r*h;return re
10、sult;return result;现在学习的是第7页,共31页double cylinder(double r,double h)double cylinder(double r,double h)/*/*函数首部函数首部函数首部函数首部*/*/*函数体,写在一对大括号内函数体,写在一对大括号内函数体,写在一对大括号内函数体,写在一对大括号内*/double result;double result;result=3.1415926*r*r*h;result=3.1415926*r*r*h;/*/*计算圆柱体积计算圆柱体积计算圆柱体积计算圆柱体积*/return result;return
11、 result;/*/*返回运算结果返回运算结果返回运算结果返回运算结果*/分析函数的定义分析函数的定义函数类型函数类型函数类型函数类型函数名函数名函数名函数名形参表形参表形参表形参表与函数类型一致与函数类型一致与函数类型一致与函数类型一致现在学习的是第8页,共31页2不返回运算结果的函数定义不返回运算结果的函数定义void 函数名(参数表)函数名(参数表)函数名(参数表)函数名(参数表)/*/*函数首部函数首部*/*/*函数体函数体函数体函数体*/函数实现过程函数实现过程 return;/*/*可以省略可以省略return*/表示不返回结果表示不返回结果表示不返回结果表示不返回结果不能省略不
12、能省略不能省略不能省略voidvoid否则否则否则否则,函数类型被函数类型被函数类型被函数类型被默认默认默认默认为为为为intint现在学习的是第9页,共31页例例2 输出输出5之内的数字金字塔。之内的数字金字塔。#include int main(void)void pyramid(int n);/*函数声明函数声明*/pyramid(5);/*调用函数,输出数字金字塔调用函数,输出数字金字塔*/return 0;void pyramid(int n)/*函数定义函数定义*/int i,j;for(i=1;i=n;i+)/*需要输出的行数需要输出的行数*/for(j=1;j=n-i;j+)/
13、*输出每行左边的空格输出每行左边的空格*/printf();for(j=1;j=i;j+)/*输出每行的数字输出每行的数字*/printf(%d,i);/*每个数字的前后各有一个空格每个数字的前后各有一个空格*/putchar(n);1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 现在学习的是第10页,共31页1.3 函数的调用函数的调用定义一个函数后,就可以在程序中调用这定义一个函数后,就可以在程序中调用这个函数。个函数。调用标准库函数时,在程序的最前面用调用标准库函数时,在程序的最前面用#include#include命令包含相应的头文件。命令包含相应的头文件。调用自定义函数时
14、,程序中必须有与调用调用自定义函数时,程序中必须有与调用函数相对应的函数定义。函数相对应的函数定义。现在学习的是第11页,共31页1 1函数调用的形式和过程函数调用的形式和过程使用返回值:使用返回值:volume=cylinder(radius,height);printf(“%f n”,cylinder(radius,height);完成操作完成操作:pyramid(5);常用于常用于常用于常用于voidvoidvoidvoid类型函数的调用类型函数的调用类型函数的调用类型函数的调用常用于返回结果的函数的调用常用于返回结果的函数的调用常用于返回结果的函数的调用常用于返回结果的函数的调用常量、
15、变量、表达式常量、变量、表达式常量、变量、表达式常量、变量、表达式函数名(函数名(实参表实参表)现在学习的是第12页,共31页函数调用的过程函数调用的过程 计计计计算算算算机机机机在在在在执执执执行行行行程程程程序序序序时时时时,从从从从主主主主函函函函数数数数mainmainmainmain开开始始执执行行,如如果果遇遇到到某某个个函函数数调调用用,主主函函数数被被暂暂停停执执行行,转转而而执执行行相相应应的的函函数数,该该函函数数执执行行完完后后,将将返返回回主主函函数数,然然后后再再从从原原先先暂暂停停的的位位置置继继续续执执行。行。函函数数遇遇returnreturn或或或或最最后后的
16、的大大括括号号,返回主函数返回主函数mainmain调用函数调用函数调用函数调用函数f f结束结束结束结束函数函数函数函数f f结束结束结束结束执执执执行行行行函数调用流程函数调用流程函数调用流程函数调用流程现在学习的是第13页,共31页分析函数调用的过程分析函数调用的过程#include#include int main(void)int main(void)double height,radius,volume;double height,radius,volume;double cylinder(double r,double h);double cylinder(double r,do
17、uble h);printf(Enter radius and height:);printf(Enter radius and height:);scanf(%lf%lf,&radius,&height);scanf(%lf%lf,&radius,&height);volume=volume=cylinder(radius,height)cylinder(radius,height);printf(Volume=%.3fn,volume);printf(Volume=%.3fn,volume);return 0;return 0;double cylinder(double r,double
18、 h)double cylinder(double r,double h)double result;double result;result=3.1415926*r*r*h;result=3.1415926*r*r*h;return result;return result;调用调用调用调用函数函数函数函数实参实参实参实参形参形参形参形参执行函数中的语句执行函数中的语句执行函数中的语句执行函数中的语句返回调用它的地方返回调用它的地方返回调用它的地方返回调用它的地方现在学习的是第14页,共31页2参数传递参数传递 函数函数函数函数定义定义时的参数被称为时的参数被称为时的参数被称为时的参数被称为
19、形式参数形式参数(简称(简称(简称(简称形参形参形参形参)double cylinder(double double cylinder(double r r,double,double h h);函数函数调用调用调用调用时的参数被称为时的参数被称为时的参数被称为时的参数被称为实际参数实际参数实际参数实际参数(简称(简称(简称(简称实参实参实参实参)volume=cylinder(volume=cylinder(radius,heightradius,height););实参实参实参实参形参形参形参形参 在参数传递过程中,实参把值复制给形参。在参数传递过程中,实参把值复制给形参。在参数传递过程中
20、,实参把值复制给形参。在参数传递过程中,实参把值复制给形参。形参和实参形参和实参形参和实参形参和实参一一对应一一对应一一对应一一对应:数量一致,类型一致,顺序一致:数量一致,类型一致,顺序一致:数量一致,类型一致,顺序一致:数量一致,类型一致,顺序一致 形参形参形参形参:变量,用于接受实参传递过来的值:变量,用于接受实参传递过来的值:变量,用于接受实参传递过来的值:变量,用于接受实参传递过来的值 实参实参实参实参:常量、变量或表达式:常量、变量或表达式:常量、变量或表达式:常量、变量或表达式单向传递单向传递单向传递单向传递现在学习的是第15页,共31页3函数结果返回函数结果返回函数返回的两种情
21、况函数返回的两种情况完完成成确确定定的的运运算算,有有一一个个运运算算结结果果返返回回给给主主调调函数。(函数。(有返回值有返回值)完完成成指指定定工工作作,没没有有确确定定的的运运算算结结果果需需返返回回给给主调函数(函数类型主调函数(函数类型void)。)。(无返回值无返回值)函数结果返回的形式:函数结果返回的形式:return 表达式;表达式;return (表达式表达式);二者作用相同二者作用相同二者作用相同二者作用相同现在学习的是第16页,共31页例例例例3 3 判断奇偶数的函数判断奇偶数的函数判断奇偶数的函数判断奇偶数的函数even(n)定义一个判断奇偶数的函数定义一个判断奇偶数的
22、函数定义一个判断奇偶数的函数定义一个判断奇偶数的函数even(n)even(n),当,当,当,当n n为偶数时返回为偶数时返回为偶数时返回为偶数时返回1 1,否则,否则,否则,否则返回返回返回返回0 0。如何调用该如何调用该如何调用该如何调用该函数?函数?函数?函数?void main()void main()int n,flag;int n,flag;printf(printf(请输入一个正整数请输入一个正整数请输入一个正整数请输入一个正整数:);:);scanf(%d,&n);scanf(%d,&n);flag=even(n);flag=even(n);if(flag)printf(%d
23、if(flag)printf(%d是偶数是偶数是偶数是偶数 n,n);n,n);else printf(%d else printf(%d是奇数是奇数是奇数是奇数 n,n);n,n);int int eveneven(int nint n)/*/*函数首部函数首部函数首部函数首部*/if(n%2=0)if(n%2=0)/*/*判别奇偶数判别奇偶数判别奇偶数判别奇偶数*/return 1;return 1;/*/*偶数返回偶数返回偶数返回偶数返回1 1*/*/else else return 0;return 0;/*/*奇数返回奇数返回奇数返回奇数返回0 0*/*/函数没有声明,函数没有声明,
24、函数没有声明,函数没有声明,可可可可以吗以吗以吗以吗?为什么为什么为什么为什么?现在学习的是第17页,共31页4函数原型声明函数原型声明函数类型函数类型 函数名函数名(参数表参数表);例如:例如:例如:例如:double cylinder(double r,double h);double cylinder(double r,double h);void pyramid(int n);void pyramid(int n);函数必须先定义后调用,将主调函数放在被调函数的函数必须先定义后调用,将主调函数放在被调函数的函数必须先定义后调用,将主调函数放在被调函数的函数必须先定义后调用,将主调函数放
25、在被调函数的后面,就像变量先定义后使用一样。后面,就像变量先定义后使用一样。后面,就像变量先定义后使用一样。后面,就像变量先定义后使用一样。如果自定义函数在主调函数的后面,就需要在函数调用前,如果自定义函数在主调函数的后面,就需要在函数调用前,如果自定义函数在主调函数的后面,就需要在函数调用前,如果自定义函数在主调函数的后面,就需要在函数调用前,加上函数原型声明。加上函数原型声明。加上函数原型声明。加上函数原型声明。函数声明:说明函数的类型和参数的情况,以保证程函数声明:说明函数的类型和参数的情况,以保证程函数声明:说明函数的类型和参数的情况,以保证程函数声明:说明函数的类型和参数的情况,以保
26、证程序编译时能判断对该函数的调用是否正确。序编译时能判断对该函数的调用是否正确。序编译时能判断对该函数的调用是否正确。序编译时能判断对该函数的调用是否正确。只写函数定义中的第只写函数定义中的第1 1 1 1行行行行(函数首部函数首部函数首部函数首部),并以分号结束。,并以分号结束。,并以分号结束。,并以分号结束。现在学习的是第18页,共31页2 使用函数编写程序使用函数编写程序例例4 4 输输输输入入入入精精精精度度度度e e,使使用用格格里里高高利利公公式式求求的的近近似似值值,精精确确到到最最后后一一项项的的绝绝对对值值小小于于e e。要要求求定定义义和和调调用函数用函数 funpi(e)
27、求求求求的近似值的近似值。现在学习的是第19页,共31页/*用公式计算用公式计算的近似值,精度为的近似值,精度为e*/#include#include int main(void)double e,pi;double funpi(double e);printf(Enter e:);scanf(%lf,&e);pi=funpi(e);printf(pi=%fn,pi);return 0;double funpi(double e)int denominator,flag;double item,sum;flag=1;denominator=1;item=1.0;sum=0;while(fabs
28、(item)=e)item=flag*1.0/denominator;sum=sum+item;flag=-flag;denominator=denominator+2;return sum*4;return sum*4;Enter e:0.0001pi=3.1418现在学习的是第20页,共31页例例5 5 求求求求100100100100以内的全部素数,每行输出以内的全部素数,每行输出以内的全部素数,每行输出以内的全部素数,每行输出1010个。素数就是只个。素数就是只个。素数就是只个。素数就是只能被能被能被能被1 1 1 1和自身整除的正整数,和自身整除的正整数,和自身整除的正整数,和自身整
29、除的正整数,1 1 1 1不是素数,不是素数,不是素数,不是素数,2 2 2 2是素数。是素数。要求定义和调用函数要求定义和调用函数要求定义和调用函数要求定义和调用函数prime(m)prime(m)判断判断判断判断mm是否为素数是否为素数是否为素数是否为素数,当当当当m为素数时返回为素数时返回为素数时返回为素数时返回1 1,否则返回否则返回否则返回否则返回0 0。算法描述:算法描述:算法描述:算法描述:对对对对2 2100100100100之间的每个数进行判断,若是素之间的每个数进行判断,若是素之间的每个数进行判断,若是素之间的每个数进行判断,若是素数,则输出该数数,则输出该数数,则输出该数
30、数,则输出该数。for(m=2;m=100;m+)for(m=2;m=100;m+)if(if(mm是素数是素数是素数是素数)printf(%d,m);printf(%d,m);prime(m)!=0prime(m)!=0现在学习的是第21页,共31页#include#include#include#include int main(void)int main(void)int count,m;int count,m;int prime(int m);int prime(int m);/*/*函数声明函数声明*/*/count=0;count=0;for(m=2;m=100;m+)for(m=
31、2;m=100;m+)if(if(prime(m)!=0 prime(m)!=0 )printf(%6d,m);printf(%6d,m);count+;count+;if(count%10=0)printf(n);if(count%10=0)printf(n);printf(n);printf(n);/*/*函数定义函数定义函数定义函数定义*/*/int int primeprime(int m)(int m)int i,n;int i,n;if(m=1)if(m=1)returnreturn 0 0;n=sqrt(m);n=sqrt(m);for(i=2;i=n;i+)for(i=2;i=
32、n;i+)if(m%i=0)if(m%i=0)return return 0 0;return return 1 1;现在学习的是第22页,共31页3 变量与函数变量与函数3.1 3.1 局部变量和全局变量局部变量和全局变量局部变量局部变量在函数内定义的变量(在函数内定义的变量(在函数内定义的变量(在函数内定义的变量(包括形参包括形参包括形参包括形参)作用范围:作用范围:作用范围:作用范围:本函数内部本函数内部本函数内部本函数内部定义在复合语句内的变量定义在复合语句内的变量定义在复合语句内的变量定义在复合语句内的变量作用范围:作用范围:作用范围:作用范围:复合语句内部复合语句内部复合语句内部复
33、合语句内部全局变量全局变量在函数以外定义的变量,不从属于任一函数。在函数以外定义的变量,不从属于任一函数。作用范围:作用范围:作用范围:作用范围:从定义处到源文件结束从定义处到源文件结束从定义处到源文件结束从定义处到源文件结束(包括各函数包括各函数包括各函数包括各函数)现在学习的是第23页,共31页例例6 6 在复合语句中定义局部变量。在复合语句中定义局部变量。#include#include int main(void)int main(void)int int a;a;a a=1;=1;/*/*复合语句开始复合语句开始复合语句开始复合语句开始*/int b=2;int b=2;b b=a
34、a+b b;a a=a a+b b;/*/*复合语句结束复合语句结束复合语句结束复合语句结束*/printf(%d ,printf(%d ,a a););return 0;return 0;b:b:小范围内的临时变量小范围内的临时变量 4现在学习的是第24页,共31页例例例例7 全局变量定义全局变量定义#include stdio.h#include stdio.hint x;int x;/*/*定义全局变量定义全局变量定义全局变量定义全局变量x x*/*/int f()int f()int x=4;int x=4;/*/*x x为局部变量为局部变量为局部变量为局部变量*/return x;r
35、eturn x;int main(void)int main(void)int a=1;int a=1;x x=a a;/*/*对对对对全局变量全局变量全局变量全局变量 x x 赋值赋值赋值赋值*/*/a=f();a=f();/*a/*a的值为的值为的值为的值为4*/4*/int b=2;int b=2;b=a+b;b=a+b;/*b/*b的值为的值为的值为的值为4*/4*/x x=x x+b;+b;/*/*全局变量运算全局变量运算全局变量运算全局变量运算*/printf(%d%d,a,printf(%d%d,a,x x););return 0;return 0;4,7若局部变若局部变若局部变
36、若局部变量与全局量与全局量与全局量与全局变量变量变量变量同名同名同名同名,局部变量局部变量局部变量局部变量有效有效时,时,时,时,全局变量全局变量全局变量全局变量无效无效。这。这。这。这被称为被称为被称为被称为同同名覆盖名覆盖。现在学习的是第25页,共31页 自动变量自动变量自动变量自动变量(autoauto):普通的局部变量普通的局部变量普通的局部变量普通的局部变量int x,y;int x,y;autoauto int x,y;int x,y;char c1;char c1;autoauto char c1;char c1;函数调用时,定义变量,分配存储单元函数调用时,定义变量,分配存储单
37、元。函数调用结束,收回存储单元函数调用结束,收回存储单元。全局变量:从全局变量:从程序程序程序程序执行开始,到程序的结束执行开始,到程序的结束执行开始,到程序的结束执行开始,到程序的结束,存储单元始存储单元始存储单元始存储单元始终保持终保持终保持终保持。变量生命周期变量生命周期变量生命周期变量生命周期变量从定义开始分配存储单元,到运行结束存储单元被回变量从定义开始分配存储单元,到运行结束存储单元被回变量从定义开始分配存储单元,到运行结束存储单元被回变量从定义开始分配存储单元,到运行结束存储单元被回收的整个过程。收的整个过程。收的整个过程。收的整个过程。3.2 变量生命周期和静态局部变量变量生命
38、周期和静态局部变量现在学习的是第26页,共31页存储类型:存储类型:动态存储:自动变量动态存储:自动变量静态存储:静态存储:全局变量全局变量、静态局部变量静态局部变量用户存储空间用户存储空间存储区存储区数数据据区区静态存储区静态存储区动态存储区动态存储区现在学习的是第27页,共31页static 类型名类型名 变量表变量表作用范围:同局部变量作用范围:同局部变量生命周期:同全局变量生命周期:同全局变量静态局部变量静态局部变量现在学习的是第28页,共31页例例8 静态局部变量示例静态局部变量示例#include#include void fun(int k)void fun(int k);int
39、 main(void)int main(void)int k;int k;for(k=1;k=3;k+)for(k=1;k=3;k+)fun(k);fun(k);return 0;return 0;void fun(int k)void fun(int k)static int a;static int a;printf(%d,a);printf(%d,a);a+=k;a+=k;0,1,3,静态变量会记住前一次调用时留下来的值静态变量会记住前一次调用时留下来的值静态变量会记住前一次调用时留下来的值静态变量会记住前一次调用时留下来的值静态变量的初值默认为静态变量的初值默认为0现在学习的是第29页
40、,共31页本章小结本章小结1.1.函数的定义与调用函数的定义与调用2.2.函数参数的传递与返回值函数参数的传递与返回值(数字金字塔、计算数字金字塔、计算的近似值、求的近似值、求100100以内的全部素数以内的全部素数)。3.3.函数的形参和实参,它们的区别以及用法函数的形参和实参,它们的区别以及用法(例例3 )。)。4.4.全局变量和局部变量(全局变量和局部变量(例例7)。)。5.5.静态变量和自动变量,作用域与生存期静态变量和自动变量,作用域与生存期(例例8)。)。现在学习的是第30页,共31页本本讨讨论论旨旨在在掌掌握握C C语语语语言言言言中中中中函函函函数数数数的的的的定定定定义义义义
41、和和和和设设设设计计计计,掌掌掌掌握握握握函函函函数数数数之之之之间间间间的的的的调调调调用用用用关关关关系系系系及及及及参参参参数数数数传传传传递递递递,深深深深入入入入理理理理解解解解递递递递归归归归函函函函数数数数的的的的设设设设计计计计方法和调用方法。方法和调用方法。方法和调用方法。方法和调用方法。具具具具体体体体要要要要求求求求:编编编编写写写写由由由由函函函函数数数数构构构构成成成成的的的的C语语言言程程序序,分分析析函函数数调用过程中的参数传递,给出递归函数实现的方法。调用过程中的参数传递,给出递归函数实现的方法。1、编编写写一一个个程程序序确确定定作作为为输输入入数数据据的的日日期期是是一一年年中中的的第第几几天天。函函数数的的参参数数月月、日日、年年为为整整数数。定定义义一一个函数个函数leap,若年份是闰年返回若年份是闰年返回若年份是闰年返回若年份是闰年返回1 1,否则返回,否则返回,否则返回,否则返回0 0。2 2、用递归方法实现对一个、用递归方法实现对一个、用递归方法实现对一个、用递归方法实现对一个整数整数进行进行进行进行逆序逆序输出。输出。输出。输出。讨论讨论-函数及其构成函数及其构成现在学习的是第31页,共31页
限制150内