执行下面程序的正确结果是( )。 main() { float a=1.9; switch (a) { case 0:printf("0000"); case 1:printf("1111");

admin2010-01-10  25

问题 执行下面程序的正确结果是(  )。    main()    {  float a=1.9;       switch  (a)       {  case 0:printf("0000");          case 1:printf("1111");          case 2:printf("3333");       }    printf("%f",  a);    }

选项 A、1.9
B、111133331.9
C、33331.9
D、1111233331.9

答案2

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

最新回复(0)