C语言程序设计 我是C语言初学者,这有一道程序设计的题,请高手们帮我解答一下,谢谢了

21)有以下程序
# include <stdio.h>
main()
{ int n=2,k=0;
while (k++ &&n++>2);
printf("%d %d\n",k,n);
}
我看程序的结果是 0 2 答案给的结果是1 2 请帮我分析并讲解一下,先谢谢了!

程序的结果就是1 2
k为0
0&&?为0
n++>2不执行,n的值不变
因为k++,k为1
结果是1 2追问

你好,问一下 0&&?为0什么意思 k=0,k++不是得1了么,不就是1&&n++>2了么,还有n++>2为什么不执行啊

追答

非零即真
&&是逻辑运算符,只有两边都为一才为真
k=0;
0&&0=0,0&&1=0
所以,n++>2不执行,n的值不变
k++是先用后加,你说的是++k,先加后用

追问

在麻烦问你一下是不是while里k++先用后加k=0了 后面的就直接不看了啊,所以就不执行n++>2

追答

先用后加,0&&任何数都为假,后面的不执行了,
然后k++,为1
输出1 2

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-06
不是0 和2 了。是1和2.while(k++)种k都加1了。所有k是1.
相似回答