问题 单项选择题

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

A.y=0

B.y=-1

C.y=1

D.while构成无限循环

答案

参考答案:B

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

填空题
单项选择题