c语言中怎么调用函数?谢谢

如题所述

C语言中,函数调用的一般形式为:

函数名(实际参数表)

对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数、变量或其它构造类型数据及表达式。各实参之间用逗号分隔。

#include<stdio.h>
int fun(int x, int y); // 函数声明,如果函数写在被调用处之前,可以不用声明
void main()
{
int a=1, b=2, c;
c = fun(a, b); // 函数的调用,调用自定义函数fun,其中a,b为实际参数,传递给被调用函数的输入值
}
// 自定义函数fun
int fun(int x, int y)  // 函数首部
{  // {}中的语言为函数体
return x>y ? x : y;  // 返回x和y中较大的一个数
}

扩展资料

C语言中不允许作嵌套的函数定义。因此各函数之间是平行的,不存在上一级函数和下一级函数的问题。但是C语言允许在一个函数的定义中出现对另一个函数的调用。

这样就出现了函数的嵌套调用。即在被调函数中又调用其它函数。这与其它语言的子程序嵌套的情形是类似的。其关系可表示如图。 

图表示了两层嵌套的情形。其执行过程是:执行main函数中调用a函数的语句时,即转去执行a函数,在a函数中调用b 函数时,又转去执行b函数,b函数执行完毕返回a函数的断点继续执行,a函数执行完毕返回main函数的断点继续执行。

参考资料:函数调用_百度百科

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-06-22

C语言中,函数调用的一般形式为:函数名(实际参数表)对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数、变量或其它构造类型数据及表达式。各实参之间用逗号分隔。

#include<stdio.h>

int fun(int x, int y); // 函数声明,如果函数写在被调用处之前,可以不用声明

void main()

{

int a=1, b=2, c;

c = fun(a, b); // 函数的调用,调用自定义函数fun,其中a,b为实际参数,传递给被调用函数的输入值

}

// 自定义函数fun

int fun(int x, int y)  // 函数首部

{  // {}中的语言为函数体

return x>y ? x : y;  // 返回x和y中较大的一个数

}

函数实参

函数作为另一个函数调用的实际参数出现。这种情况是把该函数的返回值作为实参进行传送,因此要求该函数必须是有返回值的。例如: printf("%d",max(x,y)); 即是把max调用的返回值又作为printf函数的实参来使用的。在函数调用中还应该注意的一个问题是求值顺序的问题。

所谓求值顺序是指对实参表中各量是自左至右使用呢,还是自右至左使用。对此,各系统的规定不一定相同。介绍printf 函数时已提到过,这里从函数调用的角度再强调一下。

以上内容参考:百度百科-函数调用

本回答被网友采纳
第2个回答  2014-02-16
#include<stdio.h>
int main()
{
int max2(int a,int b);
int max4(int a,int b,int c,int d);//这里叫做函数声明,就是说,如果你在这段代码中要用到这个函数就得先在前面声明,当然如果你把函数体写在主函数前面就可以省略词句,一般的较大的程序会将函数单独写,然后在主函数里要声明,
int a,b,c,d,max;//定义5个整形变量
printf("please enter 4 number:\n");//提示输入4个整数
scanf("%d,%d,%d,%d,%d",&a,&b,&c,&d);//输入4个整数(你输入了5个),这句有点毛病,就是你在输入4个整数时中间必须用英文逗号隔开,一般我们这样写scanf("%d%d%d%d",&a,&b,&c,&d);中间用空格分开
max=max4(a,b,c,d);//调用max4函数,将abcd中最大的数返回并赋值给max
printf("the max number is:\n%d\n",max);//输出最大数
return 0;
}
int max4(int a,int b,int c,int d)  //这是函数具体的实现代码,这句是函数名,它和前面的声明不同之处就是没后面的分号,大括号内为函数代码,这个函数的作用是从4个数中选出最大的数,
{
int max2(int a,int b);
int m;
m=max2(a,b);
m=max2(m,c);
m=max2(m,d);
return(m);
}
int max2(int a,int b)//这是从两个中选出最大的数
{                                
if(a>=b)
return a;
else
return b;
}

#include<stdio.h>//简化代码如下
int max2(int a,int b)
{                                
return a>b? a:b;
}
int max4(int a,int b,int c,int d)
{
    int m;
    m=max2(a,b);
    m=max2(m,c);
    m=max2(m,d);
    return(m);
}
int main(void)
{
    int a,b,c,d,max;
    printf("please enter 4 number:\n");
    scanf("%d%d%d%d",&a,&b,&c,&d);
    max=max4(a,b,c,d);
    printf("the max number is: %d\n",max);
    return 0;
}

希望可以帮到你。

第3个回答  2015-05-19

C语言调用函数就是先定义并声明函数,之后再根据定义函数的格式调用。


下面举例来说明函数调用方法:

#include<stdio.h>
int fun(int x, int y); // 函数声明,如果函数写在被调用处之前,可以不用声明
void main()
{
    int a=1, b=2, c;
    c = fun(a, b); // 函数的调用,调用自定义函数fun,其中a,b为实际参数,传递给被调用函数的输入值
}
// 自定义函数fun
int fun(int x, int y)  // 函数首部
{  // {}中的语言为函数体
    return x>y ? x : y;  // 返回x和y中较大的一个数
}

第4个回答  2006-03-23
修改后可以运行的程序:
#include <stdio.h>
#include<conio.h>
int sum(int x,int y)
{ int z;
z=x+y;
printf("z=%d",z);
return z;
}
void main()
{ int a,b,s;
printf("Input a and b:");
scanf("%d,%d",&a,&b);
s=sum(a,b);
getch();
}
改正的错误:
1.printf("z=%d",z);无%d,则不能输出z值
2.scanf("%d",&a); &表示输入到a
3.用到getch();时需加头文件#include<conio.h>
4.无返回值函数需加void
相似回答