C问问哥哥们一个C语言的一个常识点的问题,I AM A NEW FISH !
23)若有如下语句int x=3;
do{ printf("%d\n",x-=2);}
while(!(--x));
则上面程序段
A)输出的是1
B)输出的是1和-2
C)输出的是3和0
D)是死循环
分析: do-while 语句的一般格式为:do 循环体语句 while(表达式);先执行循环体语句一次,再判断表达式的值,若为真则继续执行循环,否则终止循环。本题中,先执行printf(“%d\n”,x=-2)后,值为x=x-2,即为1。判断表达式的值,!(--x)为真,x=0,继续循环。再次执行循环体语句后,x=-2,此时表达式!(--x)的值为多少啊? 他们说为0 为甚呀 非负数还可能是1呢 难道这是规定的吗?