"> ">

考虑函数原型int fun1(float x,char y="$",int a=9,char b="@"),下面的函数调用中,属于不合法调用的是(   )

考虑函数原型int fun1(float x,char y="$",int a=9,char b="@"),下面的函数调用中,属于不合法调用的是(   )


A、

fun1(3.14)


B、

fun1(3.14,"#")


C、

fun1(3.14,"$","@")


D、

fun1(3.14,"#",7,"@")


【正确答案】:C
【题目解析】:

在C++语言中,可以在声明函数时为形参指定默认值。当调用有默认参数值的函数时,调用语句中可以不给出对应的实参,这就相当于调用该函数时以默认值作为参数。

调用函数时,主调函数的实参与被调函数的形参按从左至右的顺序进行匹配对应。

C选项中,实参的个数是3少于形参的个数4,故函数原型形参表中最前面的3个形参与3个实参相对应,即把字符型实参@赋值给int型形参a,会产生编译错误。选C。

同理,ABD是正确的。


Top