首页 > 试题广场 >

下列函数定义中,会出现编译错误的是哪个?

[不定项选择题]
下列函数定义中,会出现编译错误的是()
  • max(int x,int y,int *z)
    {   int z;
        z=x>y?x:y;
        return z;
    }
  • int max(int x,y)
    {   *z=x>y?x:y;}
  • max (int x,int y)
    {   int z;
        z=x>y?x:y;
        return(z);
    }
  • int max(int x,int y)
    {   return(x>y?x:y);}
A.
max(int x,int y,int *z)
{   int z;
    z=x>y?x:y;
    return z;
}
B.
int max(int x,y)
{   *z=x>y?x:y;}
C.
max (int x,int y)
{   int z;
    z=x>y?x:y;
    return(z);
}
D.
int max(int x,int y)
{   return(x>y?x:y);}
这里先做一下说明:
对于C而言:答案为AB
A.形参z和函数体中的局部变量z重名了,报错:z重定义
B.函数体中的未在使用之前先定义,报错:z为定义的标识符
C.正确。C语言函数返回类型省缺,默认返回类型为int
D.正确。
对于C++而言:答案为ABC
A.首先C++语言是严格类型检查,不允许函数没有返回类型。报错:缺少显示返回类型int。其次,形参z和函数体中的局部变量z重名了,报错:z重定义
B.函数体中的未在使用之前先定义,报错:z为定义的标识符
C.同A选项,C++语言是严格类型检查,不允许函数没有返回类型。报错:缺少显示返回类型int。
D.正确。

发表于 2022-11-28 11:14:32 回复(2)
A、B定义的函数均默认为int型;D定义的函数为int类型;B定义的函数中函数首部形参表错误,应改为 int max(int x,int y),此外,函数中没有定义z变量,也没有返回语句。所以B会出现编译错误。
编辑于 2021-11-12 16:04:35 回复(0)
同志们,要注意审题啊,A选项的Z,函数体内的int型变量Z隐藏了形参int *型的变量Z,一不注意就选错了
发表于 2018-07-19 09:46:09 回复(6)
#include<stdio.h>

max()
{

}
main()
{
    return 0;
}
其实这个题目还是考虑C与C++的区别,
对于C语言,返回值没写就默认int类型;
对于C++,返回值必须写出来,否则,编译出错!
发表于 2019-03-18 11:24:06 回复(2)
C语言:选AB C++:选ABC 考C就考C,考C++就考C++,C语言专项练习里老是串出来个C++题做什么?
发表于 2023-01-10 09:29:49 回复(0)
首先,c++不同于c语言,他有更严格的类型检查,参数不写返回类型,不会默认为int。A,C错误。
其次,A中参数列表中int *z;与函数体中int z;构成冲突;
B中参数列表错误y的类型未声明;
发表于 2021-11-15 19:54:21 回复(0)
B选项的(int x,y)错
发表于 2019-01-14 00:03:03 回复(0)

C语言:

  1. 函数可以有返回值,也可以没有返回值(使用 void 关键字)。
  2. 如果函数有返回值,必须在函数定义时声明返回值类型,并使用 return 语句在函数体内返回具体的值。
  3. 函数的返回值只能是一个值,不能是多个值或者复杂的数据类型。如果需要返回多个值,可以通过指针参数或者结构体来实现。

C++语言:

  1. 函数可以有返回值,也可以没有返回值(使用 void 关键字)。
  2. 如果函数有返回值,必须在函数定义时声明返回值类型,并使用 return 语句在函数体内返回具体的值。
  3. C++支持函数重载,即可以有多个同名函数,只要它们的参数列表不同。
  4. C++可以返回复杂的数据类型,如自定义的类、结构体、指针等。
发表于 2023-09-26 09:28:29 回复(0)
A是怎样正确的请问
发表于 2021-05-10 00:41:30 回复(1)
b.形参类型不能省
发表于 2020-03-02 17:00:48 回复(0)
A和C没有声明函数返回类型,B中y没有定义类型
发表于 2022-09-27 21:05:44 回复(0)
A、C错哪儿了哦
发表于 2022-09-24 19:55:31 回复(0)
请问C的错误在哪?

发表于 2022-08-09 22:52:43 回复(0)
C 选项  max函数没有返回类型
发表于 2022-07-26 16:43:41 回复(0)
C选项如图,C++不支持默认返回值。必须显示写出来
编辑于 2022-07-11 11:47:07 回复(0)
c为什么错?
发表于 2022-07-08 10:02:57 回复(0)
为啥C是错的?C语言的阔以编译通过运行啊。
编辑于 2022-04-01 11:07:00 回复(1)
没有题目,我选了D……
发表于 2022-01-28 11:38:03 回复(1)
发表于 2021-12-22 22:52:18 回复(0)
这个A选项没从重定义??不会编译出错??
发表于 2021-03-18 12:33:05 回复(2)