C_C++程序设计李云峰 第4章 利用函数编程

C_C++程序设计李云峰 第4章 利用函数编程

ID:40238390

大小:1.42 MB

页数:75页

时间:2019-07-28

C_C++程序设计李云峰 第4章 利用函数编程_第1页
C_C++程序设计李云峰 第4章 利用函数编程_第2页
C_C++程序设计李云峰 第4章 利用函数编程_第3页
C_C++程序设计李云峰 第4章 利用函数编程_第4页
C_C++程序设计李云峰 第4章 利用函数编程_第5页
资源描述:

《C_C++程序设计李云峰 第4章 利用函数编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章利用函数编程问题原由在C/C++语言中,怎样定义函数?怎样调用函数?怎样实现函数中参数的传递?怎样实现各函数间的数据共享?这就是本章所要讨论的问题。函数的基本概念、函数的调用方式、函数的参数传递、C语言对模块化编程的支持。教学重点能力要求掌握:函数的定义调用方法。了解:函数参数的传递机制。熟悉:函数调用方式。§4.5案例程序设计§4.4函数的定义§4.3函数的嵌套与递归§4.2函数调用§4.1函数的定义本章介绍的知识内容第4章利用函数编程4.1.1函数的引出【问题描述4-1】在这之前的程序设计中,我们

2、多次使用系统提供的函数,如使用printf()实现数据的输出,用sqrt()进行开方运算等。这些函数功能单一,使用方便,有效地减少了程序设计的工作量。但在程序设计中,经常遇到多次运用同一算法的程序实现问题,此时需要编写实现该算法的自定义函数,通过反复调用来实现最终目的,这不仅能避免程序重复编码,而且使得程序结构清晰,实现功能共享。现讨论求以下组合数的编程问题。4.1.1函数的引出[问题分析]求该组合数实际上就是计算各个阶乘,即把转换为求3个阶乘(n!、m!、(n-m)!)。计算阶乘的公式为k!=1×2×3×

3、…×k,按照我们已掌握的方法,计算阶乘可以用循环程序来实现,因此,可编写3个循环程序分别计算出n!、m!、(n-m)!,然后再按公式进行除法运算即可得到结果。算法描述如下:Stepl输入m和n。Step2计算n!。Step3计算m!。Step4计算(n-m)!。Step5计算n!/(m!*(n—m)!)。Step6输出计算结果。4.1.1函数的引出[问题点拨]上面的程序中,有三次计算阶乘运算。事实上,除了阶乘的次数不同外,代码是一样的。因此,我们可以设计一个求阶乘的通用程序模块(自定义函数)。floatfa

4、ctorial(intx)//定义函数,函数的功能是求x的阶乘{inti;floatf=1;for(i=1;i<=x;i++)f=f*i;return(f);//返回计算结果}4.1.1函数的引出【实例4-1】利用函数调用求组合运算的程序代码如下:#includefloatfactorial(intx)voidmain(){intm,n;floatc,c1,c2,c3;printf(“Pleaseinputm,n:”);scanf(“%d%d”,&m,&n);c1=factorial(n)

5、;c2=factorial(m);c3=factorial(n-m);c=cl/(c2*c3);printf(“c=n!/m!*(n-m)!)=%.2f”,c);}4.1.1函数的引出floatfactorial(intx)//函数定义说明,求x的阶乘{inti;floatf=1;for(i=1;i<=x;i++)f=f*i;return(f);//返回计算结果}我们把这种程序设计称为模块化程序设计,也是结构化程序设计的一条重要原则。由于C语言采用了函数模块化的结构,因而易于实现结构化程序设计,使得程序

6、层次结构清晰,便于程序的编写、阅读、调试,这就是采用函数模块化(自定义函数)的目的意义。4.1.2函数的定义函数定义,就是指定函数的名字、函数实现的功能、函数参数的个数与类型、函数返回值类型等。在C语言中,根据函数中是否存在参数,函数的定义形式分为三种。1.有参函数的定义格式有参函数的定义格式是ANSIC的标准格式,称为现代格式。定义有参函数的语句格式一般为:[<类型标识符>]<函数名>([形参表]){函数体return();}4.1.2函数的定义【格式说明】<类型标识符>是函数返回类型,用来说明该函数的类

7、型,它可以是基本数据类型,也可以是数组、指针、结构体、对象等类型。<函数名>是由程序员定义的标识,命名规则同变量名一样,但不能与系统关键字同名。“函数体”是用一对花括号{}括起来的语句,右括号后不带分号。[形参表]中的参数称为形式参数,简称形参。4.1.2函数的定义2.无参函数的定义格式无参函数的定义格式是传统格式。定义无参函数的语句格式有以下两种形式:或[<类型标识符>]<函数名>(void){函数体return语句}[<类型标识符>]<函数名>(){函数体return语句}【格式说明】与有参函数的定义格

8、式相比,函数名后面的括号中没有参数,是空的,即函数名(void)与函数名()是一样的涵义。4.1.2函数的定义【实例4-2】利用函数调用,输出以下字符********************Howdoyoudo!********************程序代码如下:#includeintmain(){voidprint_star();//声明print_star函数voidprint_messa

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。