问题 单项选择题

执行下面程序的正确结果是( )。
main()
float a=1.9;
switch (

A.
case 0:printf("0000");
 

答案

参考答案:B

解析: switch语句只接受int型变量,如果不是则隐式转换为int,由于C语言中float到int的转换是截尾取整,故在switch中从case 1:标号处开始执行,首先输出4个1。此时又因为case 2:之前并没有break;之类的跳转语句,所以case 2:标号处的语句也被执行,输出4个3。最后以默认的浮点数格式输出变量a,变量a在switch语句中并未被改变,故最后输出为1.900000,所以应该选择B。

单项选择题
判断题