[讨论]一些小程序的结果(急!)
之所以说“急”是因为明天就考试了,可是今天居然还有想不通的地方。汗颜。希望大家帮帮忙,不胜感激。。。第一题:
main()
{ int x=10,y=10,i;
for( i=0; x>8; y=++i)
printf("%d %d\n",x--,y);
}
这道题的运行结果是:10 109 1 其实结果是两组:第一组是10 10;第二组是:9 1。可是结果为什么是这个呢?我不明白的是for语句中的x>8这个表达式,for语句不是应该当x>8这个式子不成立的时候才退出循环执行打印吗?那么x是不变的,也就是说x>8始终都成立,这不就是死循环了么?为什么还能得出结果呢?
第二题:(其实这是一个很典型的题,可是我。。。。不说了,看题吧)
#indude(stdio.h)
main()
{ char c='A'; /*这里应该等于65*/
if('0'<=c<='9') /*这里应该是“48<=65<=57没错吧”*/
printf("YES"); /*可是,555,居然这个是输出结果??*/
else
printf(”NO”)"
}
谢谢谢谢你们!!!