c语言编程函数例题,C语言编程-函数( 常见例题 ).ppt

C语言编程-函数( 常见例题 )

6.1.2 程序的结构 6.1.3 函数的分类 6.1.4 函数的定义 【例6-2】编写求两个整数的较大值函数max()。 【例6-2】包含无参但有返回值函数的C程序例。 2.有参函数 【例6-2】包含有参有返回值函数的C程序示例。 【例6-2】有参无返回值函数的C程序示例。 #include void pyramid(int n) {int i,j; for(i=1; i<=n; i++) { for(j=1;j<=n-i;j++) printf(“ ”); for(j=1;j<=i;j++) printf(“%d ”,i); printf("\n"); }} void main( ) { int n; scanf("%d", &n); pyramid(m); } 3. 空函数 4.传统风格的函数定义 6.1.5 函数设计的基本原则 1、函数的规模要小,尽量控制在50行代码以内。 2、函数的功能要单一,不要让它身兼数职。 3、每个函数只有一个入口和出口。 4、在函数入口处清楚地定义函数的行为。 5、在函数的入口处对参数的有效性进行检查。 6、当函数需要返回值时,应确保函数中的所有控制分支都有返回值;函数无返回值时需在void中声明。 6.2 验证哥德巴赫猜想 ① 为被调函数局部变量(含定义的变量和形参)开辟存储单元。 ② 将实参的值复制给形参。 ③ 流程从主调函数的调用处转移到被调函数,执行被调函数体中语句序列。 ④ 当执行到被调函数“return (表达式);”语句时,返回到主调函数,将表达式的值作为函数值替换“函数名(实际参数表)”,结束被调函数的执行;如无return语句,则遇函数体右花括号“}”结束被调函数的执行。 ⑤ 释放局部变量的存储单元,流程从被调函数转移到主调函数的调用处。 ⑥ 继续从主调函数的调用处向下执行。 return(表达式);或 return 表达式; 功能:1、计算表达式的值,并作为函数值返回给主调函数。 2、一个函数中允许有多个return语句,但每次调用只执 行一个return语句,只能返回一个函数值。 6.2.4 函数的声明 #include main() { int a,b; float aver(int x, int y); float ave; scanf("%d,%d",&a,&b); ave=aver(a,b); printf("ave=%7.2f\n",ave); } float aver(int x, int y) { float z; z=(x+y)/2.0; return z; } 6.3.2 函数的嵌套调用 C语言中函数的定义都是相互平行、相互独立。 函数不能嵌套定义,但可以嵌套调用。 【例6-8】分析下面程序,其功能是通过函数计算s=1!+2!+3!+…+10!。 double sum(int m) { double s=0, mul(); int i; for(i=1;i<=m;i++) s=s + mul(i); return s; } 该程序中,主函数调用了sum函数,而在sum函数中又调用了mul函数。在一个函数被调用的过程中又调用另一个函数,这就是函数的嵌套调用。本例函数嵌套调用的执行过程如图所示。 递归调用:在函数调用过程中直接或间接调用自己。 直接递归:函数不断直接调用自己; 间接递归:函数循环间接调用自己。 n!= 1×2×3×…×n=[1×2×3×…×(n-1)]×n =n×(n-1)! 也就是说,要求n!可先求(n-1)!。同样,要求(n-1)!先求(n-2)!,...,要求2!先求1!。而1!=1 , 0!=1。则有: void main( ) {int m; long f; do{ printf("输入m (m>0):"); scanf("%d",&m); } while(m<=0); f=fact(m); printf("%d!=%ld\n", m, f); } 该程序中,主函数调用了fact函数,而在fact函数中又调用了自身fact函数。程序执行流程如图所示: 【例6-11】复合语句中的局部变量 #include main() { int t=10; { int t=20;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值