有以下程序: main() { int y=10; while(y--); printf("y=%d\n",y); } 程序执行后的输出结果是( )。

admin2009-01-15  17

问题 有以下程序:    main()    { int   y=10;      while(y--);  printf("y=%d\n",y);    }    程序执行后的输出结果是(    )。

选项 A、y=0
B、y=-1
C、y=1
D、while构成无限循环

答案2

解析 本题中有一个陷阱,很多考生会根据程序的书写格式来判断:while循环的循环体为 printf("y=%d\n",y);语句。其实while的循环体是一条空语句,即y--后面的那个分号就是while的循环体。所以本题只要弄清楚表达式y--何时为“假”,即等于0,就能得出结果了。因为--运算符是后缀形式,所以表达式y--的值是y自减之前的值,即y等于。时,表达式y--就等于0了。但此时的y还要被减1,所以循环结束后,y的值为-1。故应该选择B。
转载请注明原文地址:https://jikaoti.com/ti/WmK0FFFM
0

最新回复(0)