考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
全国  |             |          |          |          |          |         
  当前位置:计算机等级 > 二级考试 > C语言程序设计 > C语言辅导 > 文章内容
  

全国计算机等级考试二级C语言入门教程(75)

中华IT学院   【 】  [ 2016年2月19日 ]

函数的嵌套调用

C语言中不允许作嵌套的函数定义。因此各函数之间是平行的,不存在上一级函数和下一级函数的问题。 但是C
语言允许在一个函数的定义中出现对另一个函数的调用。这样就出现了函数的嵌套调用。即在被调函数中又调用其它
函数。 这与其它语言的子程序嵌套的情形是类似的。其关系可表示如图5.2。

表示了两层嵌套的情形。其执行过程是:执行 main函数中调用 a函数的语句时,即转去执行 a函数,在 a

函数中调用b 函数时,又转去执行b函数,b函数执行完毕返回 a函数的断点继续执行,a 函数执行完毕返回main

函数的断点继续执行。

[例 5.8]计算s=2  2!+3  2!

本题可编写两个函数,一个是用来计算平方值的函数 f1, 另一个是用来计算阶乘值的函数 f2。主函数先调 f1计算出

平方值, 再在 f1中以平方值为实参,调用 f2计算其阶乘值,然后返回f1,再返回主函数,在循环程序中计算累加

和。

long f1(int p)

{

int k;

long r;

long f2(int);

k=p*p;

r=f2(k);

return r;

}

long f2(int q)

{

long c=1;

int i;

for(i=1;i<=q;i++)

c=c*i;

return c;

}

main()

{

int i;

long s=0;

for (i=2;i<=3;i++)

s=s+f1(i);


printf("\ns=%ld\n",s);
}
long f1(int p)
{
……
long f2(int);
r=f2(k);
……
}
long f2(int q)
{
……
}
main()
{ ……
s=s+f1(i);
……
}

首页 1 2 3 4 尾页
分享到:
本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2006-2017 中华考试网(Examw.com) All Rights Reserved  营业执照