输出应该是y=-1吧
注意一下while后面有一个分号,也就是说,这个while循环只是做y--。
while(y--);
(y--算拿y来用了,再拿y来减一)
对于这题来说我们知道,while()什么时候跳出循环呢?是括号的值为0的时候。也就是说:y--=0,这时先是算y=0然后y再减1,也就是y=-1了。
运行结果为10,20
因为虽然在fun函数中进行了a,b值的交换,
但是a,b仅仅是fun函数的内部变量,他们的值的变化不影响main函数中的x,y的值,所以x,y还是10,20。
具体执行过程:
main函数中调用func(),并将x,y的值赋给fun()函数的两个临时变量a,b
在fun函数中交换a,b的值
退出fun函数,输出main函数中的x,y值
输出结果是n=4。
看这个循环的执行:
for(i=2;i<5;i++)
{ do
{ if(i%3) continue;
n++;
} while(!i);
n++;
}
i=2:i%3(i除以3取余为2),if条件成立,continue执行,后续n++不执行,直接判断while(!i),i不为0,!i为假,退出do/while循环,执行while后面的n++,n=1,再执行下一次for循环
i=3:i%3(i除以3取余为0),if条件不成立,n++执行,n=2。再判断while(!i),i不为0,!i为假,退出do/while循环,执行while后面的n++,n=3,再执行下一次for循环
i=4:i%3(i除以3取余为1),if条件成立,continue执行,后续n++不执行,直接判断while(!i),i不为0,!i为假,退出do/while循环,执行while后面的n++,n=4,再执行下一次for循环
最后,n=4。
以上就是关于1.有以下程序 main() { int y=10; while(y--); printf("y=%d\n",y); } 程序执行后的输出结果是() A) y全部的内容,包括:1.有以下程序 main() { int y=10; while(y--); printf("y=%d\n",y); } 程序执行后的输出结果是() A) y、分析以下程序的运行结果( )、有以下程序 main( ) { int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; } wh等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)