(30)设函数fun的定义形式为 void fun(char ch,float x ) { … } 则以下对函数fun的调用语句中,正确的是 A)fun("abc",3.0); B)t=fun('D',16.5); C)fun('65',2.8); D)fun(32,32);为什么不是B or 而是DB中函数为什么没有返回值,而是void型的;‘65’不是可以在ASCII范围内对应一个值吗?是不是字符型只能是一位的,而不能是多位的,一个有t等于和没有的有什么不同?

问题描述:

(30)设函数fun的定义形式为 void fun(char ch,float x ) { … }
则以下对函数fun的调用语句中,正确的是 A)fun("abc",3.0); B)t=fun('D',16.5); C)fun('65',2.8); D)fun(32,32);
为什么不是B or 而是D
B中函数为什么没有返回值,而是void型的;
‘65’不是可以在ASCII范围内对应一个值吗?
是不是字符型只能是一位的,而不能是多位的,
一个有t等于和没有的有什么不同?

是D啊.
A中"abc"不是char ,而是string;
B中函数没有返回值,它是void型的;
C中'65'不是一个字符,是非法的表示,也不是string.
D中第一个32是作为字符强制转为char型,在编译是自动转换的,后面的32是int型,但也在编译时自动转换为float型.