马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
}
|