- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在函数调用期间-合肥师范学院.ppt
第七章 函数;本章要点;§7.1 概述;;§7.2 标准库函数;;§7.3 函数的定义和返回值;void printstar( )
{ int i;
for(i=1; i=30; i++ )
printf (* ) ;
} ;;说明:
在同一个函数内可根据需要在多处设置return语句,函数执行过程中遇到任何一个return语句时,都将立即返回到调用该函数的地方。
如果函数中没有return语句,程序的流程一直执行到函数末尾的右花括号“}”处,然后返回到调用该函数的地方并返回一个不确定的、无用的函数值。
为了明确表示“不返回值”,可以用“void”定义“无类型”(或称“空类型”)函数。
如果需要从被调函数中带回一个确定的值,被调函数中必须包含return 语句。;§7.4 函数的调用和函数的声明;main()
{ int m,n; long cmn;
printf(input m,n:);
scanf(%d%d,m,n);
cmn=fac(m)/fac(n)/fac(m-n);
printf(%ld\n,amn);
};;2、函数的声明
在一个函数中调用另一函数(即被调函数)必须具备以下三个条件:;函数声明的一般形式:
类型标识符 被调函数的函数名([形式参数表]);
这种包含参数和返回值类型的函数声明称为函数原型。; #include “stdio.h”
main ( )
{ int a, b,c;
max (int x, int y); /* 函数说明*/
scanf (“%d %d”,a,b);
c=max (a,b); /* 函数调用*/
printf (“%d\n”,c);
}
int max (int x,int y) /*函数定义*/
{
return (xy ? x: y);
};☆ ☆ ☆函数调用中的特殊运用-函数的嵌套调用和递归调用☆ ☆ ☆;} ;函数的递归
一个函数直接或间接地调用该函数本身,称为函数的递归调用。;long fac( int n)
{ long f;
if (n==0|| n==1) f= 1;
else f= n* fac(n-1) ;
return(f);
}
main( )
{ long nf ;
nf=fac(3);
printf (“3!=%ld\n”,nf);
};§7.5 调用函数和被调用函数之间的数据传递;main ( )
{ int a, b,c;
int max (int x, int y);
scanf (“%d%d”,a,b);
c=max ( a , b );
printf (“%d\n”,c);
}
int max (int x , int y )
{
return (xy ? x: y);
};main ( )
{
int a, b;
scanf (“%d” ,b);
a=ab(b);
printf (“%d %d”,b,a);
};在被定义的函数中,必须指定形参的类型。
实参与形参应在位置、个数、类型上保持一致。如果实参为整型而形参为实型,或者相反,则发生“类型不匹配”的错误。但字符型与整型可以互相通用。
C语言规定,实参变量对形参变量的数据传递是“单向值传递”。即数据只能由实参传给形参,而不能由形参传回给实参。 ;void swap( int a, int b){ int t; t=a;
a=b;
b=t;}
main(){ int x,y; scanf(“%d%d”,x,y); printf(“ %d ,%d\n”,x,y) ;
swap(x,y); printf(“ %d ,%d\n”,x,y) ;
};程序举例;C语言中的每个变量和函数都有两个属性:数据类型和数据的存储类别。数据的存储类别指的是数据在内存中的存储方法。分为:静态存储类和动态存储类。变量的存储类别
文档评论(0)