- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C/C++语言程序设计辅导资料六
主 题: 第十五章 函数(一)
学习时间:201年月日-月日
内 容:
我们这周主要学习第十五章 函数(一)的相关内容,希望通过下面的内容能使同学们加深对本章相关知识点的理解。知识脉络:
1.函数的声明和调用
2.函数间的参数传递
3.内联函数
4.带缺省形参值的函数
5.函数重载
6.函数模板
7.C++系统函数重点与难点:
1.重点:函数的定义和调用以及函数间的参数传递,内联函数,带缺省形参值的函数。
2.难点:函数重载与函数模板,C++系统函数。
一、函数的声明
1、形式参数表
type1name1,type2name2,...,typennamen
2、函数的返回值
①由 return 语句给出,例如:return 0
②无返回值的函数(void类型),不必写return语句。
3、函数的调用
①调用前先说明函数原型:
在调用函数的说明部分,或程序文件开头所有函数之前,按如下形式说明:类型标识符 被调用函数名 (含类型说明的形参表);
②调用形式:函数名(实参列表)
③嵌套调用:函数不允许嵌套声明,但可以嵌套调用。
④递归调用:函数直接或间接调用自身。
二、函数调用的执行过程
1、函数调用的执行过程
2、嵌套调用
3、例:输入两个整数,求平方和
void main(void)
{
int a,b;
int fun1(int x,int y);
cinab;
couta、b的平方和:fun1(a,b)endl;
}
int fun1(int x,int y)
{
int fun2(int m);
return (fun2(x)+fun2(y));
}
int fun2(int m)
{
return (m*m);
}
运行结果:
3 4
a、b的平方和:25
4、递归调用
函数直接或间接地调用自身,称为递归调用。
5、递归过程的两个阶段:
(1)递推:
4!=4×3! → 3!=3×2! → 2!=2×1! → 1!=1×0! → 0!=1
(2)回归:
4!=4×3!=24←3!=3×2!=6←2!=2×1!=2←1!=1×0!=1←0!=1
三、函数的参数传递机制
1、按值调用
①在函数被调用时才分配形参的存储单元。
②实参可以是常量、变量或表达式。
③实参类型必须与形参相符。
④传递数值时是传递参数值,只能是把实参的数值传递给形参,反之则不可以,即单向传递。
2、例:求n!
分析:这是一个递归形式的公式,应该用递归函数实现。源程序:
#include iostream.h
long fac(int n)
{
long f;
if (n0)
coutn0,data error!endl;
else if (n==0)
f=1;
else
f=fac(n-1)*n;
return(f);
}
void main()
{
long fac(int n);
int n;
long y;
coutEnter a positive integer:;
cinn;
y=fac(n);
coutn!=yendl;
}
运行结果:
Enter a positive integer:8
8!=40320
3、引用调用
标识符的别名,用于取得变量的地址。关于引用的概念将在后续章节作详细地介绍。
四、内联函数声明与使用
1、声明时使用关键字 inline。
2、编译时在调用处用函数体进行替换,节省了参数传递、控制转移等开销。
3、注意:
①内联函数体内不能有循环语句和switch语句。
②内联函数的声明必须出现在内联函数第一次被调用之前。
③对内联函数不能进行异常接口声明。
4、内联函数应用举例
#includeiostream.h
inline double CalArea(double radius)
{
return 3.14*radius*radius;
}
int main( )
{
double r(3.0);
double area;
area=CalArea(r);
coutareaendl;
return 0;
}
五、本节题1、当一个函数无返回值时,函数的类型应定义为()。
A.void B.任意 C.int D.无
答案:A1、打印出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。例如,153=13+53+33
#include stdio.h
void main()
{
int i,j,k,n;
printf(水仙花数是:);
for(n=100;n1000;n++)
{
i=
文档评论(0)