考虑函数原型void pass(int x,int y=5,char z=‘*’),下面的函数调用中,属于不合法调用的是(   )

考虑函数原型void pass(int x,int y=5,char z=‘*’),下面的函数调用中,属于不合法调用的是(   )


A、

pass(5)


B、

pass(5,8)


C、

pass(6,'#')


D、

pass(0,0,'*')


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

在C++语言中,可以在声明函数时为形参指定默认值。当调用有默认参数值的函数时,调用语句中可以不给出对应的实参,这就相当于调用该函数时以默认值作为参数。
调用函数时,主调函数的实参与被调函数的形参按从左至右的顺序进行匹配对应。
C选项中,实参的个数是2少于形参的个数3,故函数原型形参表中最前面的2个形参与2个实参相对应,即把字符型实参#赋值给int型形参y,会产生编译错误。故C错误。 

同理,ABD是正确的。


Top