选a还是选c啊?为什么?

以下函数定义,正确的是:

A.
int fun(int a, int b)
{
int a = a+b;
return a;
}

B.
void fun(int a, int b)
{
return a+b;
}

C.
int fun(float a, float b)
{
return a+b;
}

D.
int fun(int a, int b);
{
return a+b;
}

选C,A中定义的形参a与局部变量a冲突了

选d,
a函数:a重定义了
c函数:int fun()说明一个返回int型变量,而a,b是float型,返回的也是float型,与函数定义的不符,也会出现一些错误。比如传入的a=1.4,b=2.0,调用fun(a,b)的结果是3,而不是3.4。

选D错了,后面还有个';'分号。退而求其次,只有选 C了。

我感觉还是c,D明显不是定义,只是一个函数声明。
C虽然返回值类型不匹配,但是会自动转换的,只是编译的时候多一个警告。