|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
函数的参数及传递方式
书本习题
函数的参数
函数的参数有两类——形式参数(简称形参)和实际参数(简称实参)。
函数定义时的参数称为形参,形参在函数为被调用时是没有确定值的,只是形式上的参数。
函数调用时使用的参数称为实参。
题1:将两个数由小到大排序输出
解:
- #include<stdio.h>
- int order(int a,int b) //a,b形参
- {
- int t;
- if(a>b) //如果a>b,就执行以下3条语句,交换a,b的值
- {
- t=a;
- a=b;
- b=t;
- }
- printf("从小到大的顺序为:%d %d\n",a,b); //输出交换后的a,b的值
- return a,b;
- }
- int main()
- {
- int x,y;
- printf("请输入两个整数:"); //从键盘输入两个整数
- scanf("%d%d",&x,&y);
- order(x,y); //x,y是实参
- return 0;
- }
复制代码
函数参数的传递方式
C语言规定,实参对形参的数据传递是“值传递”,即单向传递,只能把实参的值传递给形参,而不能把形参的值再传回给实参。
在内存当中,实参与形参是不同单元,不管名字是否相同,因此函数中对形参值的任何改变都不会影响实参的值。
题2:使用函数交换两个变量的值
解:
- #include<stdio.h>
- void swap(int a,int b) //定义swap函数
- {
- int temp;
- temp=a;
- a=b;
- b=temp; //交换a,b值的3条语句
- printf("a=%d,b=%d\n",a,b); //输出交换后的结果
- }
- int main()
- {
- int x,y;
- printf("请输入两个整数:\n");
- scanf("%d%d",&x,&y); //输入两个整数
- printf("调用函数之前:\n");
- swap(x,y); //调用函数swap()
- printf("调用函数之后:\n");
- printf("x=%d,y=%d\n",x,y); //输出调用swap函数之后x,y的值
- return 0;
- }
复制代码
函数的调用方式
函数调用的一般形式有以下两种
1.函数语句
当C语言中的函数只进行了某些操作而不返回结果时,使用这种形式,该形式作为一条独立的语句
如:
函数名(实参列表); //调用有参函数,实参列表中有多个参数,中间用逗号隔开
或
函数名(); //调用无参函数
2.函数表达式
当所调用的函数有返回值时,函数的调用可以作为表达式中的运算分量,参与一定的运算。
题3:编写一个函数,求任意两个整数的最小公倍数
解:
- #include<stdio.h>
- int sct(int m,int n) //定义函数sct求最小公倍数
- {
- int temp,a,b;
- if(m<n) //如果m<n,交换m,n的值,使m中存放较大的值
- {
- temp=m;
- m=n;
- n=temp;
- }
- a=m;
- b=n; //保留m,n原来的数值
- while(b!=0) //使用辗转相除法求两个数的最大公约数
- {
- temp=a%b;
- a=b;
- b=temp;
- }
- return (m*n/a); //返回两个数的最小公倍数,即两数相乘的积除以最大公约数
- }
- int main()
- {
- int x,y,g;
- printf("请输入两个整数:");
- scanf("%d%d",&x,&y);
- g=sct(x,y); //调用sct函数
- printf("最小公倍数为:%d\n",g); //输出最小公倍数
- return 0;
- }
复制代码
|
|