main() {int y=10; while(y--);printf("y=%d\n",y); }为什么答案是-1啊
作者&投稿:答蓝 (若有异议请与网页底部的电邮联系)
如果x和y都已正确声明并赋值,那么这4个选项都是正确的,所以这是扯淡题……y=int(x);是把x强制为int型赋给y,int两边有没有()都是合法的。
while(y--);
在while的括号内是一个表达式y--
由于--在后面,故先判断y的值是否为真(即是否不为0),在判断之后再进行-1的操作
由于在while的括号时候紧跟着分号,则该循环是空循环;
当y = 0时跳出循环,当y = 0判断为假之后执行--操作,
故printf输出的y = -1
最后有分号,因此一直执行while循环,直到y=0为止,退出循环,执行后面的printf语句。
从y=10开始,依次对y的值进行判断,只要不等于0,就y自减1,继续执行while循环。
一直到y=0,不满足循环条件,退出循环,执行y--,y自减1,变成-1
因此最后输出y=-1
本题的关键是注意while(y--);最后有分号,因此一直执行while循环,直到不满足循环条件,才退出while循环,执行后面的printf语句。
y--是先取y值,然后在减一
当y--为0时,while(0)是假,所以循环退出,此时y自身在减一变成-1.
while(y--);等价于while(y--!=0);
最后有分号,因此一直执行while循环,直到y=0为止,退出循环,执行后面的printf语句。
从y=10开始,依次对y的值进行判断,只要不等于0,就y自减1,继续执行while循环。
一直到y=0,不满足循环条件,退出循环,执行y--,y自减1,变成-1
督初氢溴:[选项] A. )-1 B. )1 C. )8 D. )0 ,
红塔区18685349364: #include void main() { int y=10; do{ y--; } while(--y); printf("%d\n",y--); }怎么回事? - ?
督初氢溴:[答案] #include
红塔区18685349364: 求c语言最后的结果是多少, main( ) { int y=10; do(y -- ;)while( - ?
督初氢溴: 你的代码是这样的吧: main() {int y = 10;do{y--;}while(--y);printf("%d\n",y--);}y=10 第一次循环: y--,y=9; --y,y=8,true; 第二次循环: y--,y=7; --y,y=6,true; …… 第五次循环: y--,y=1; --y,y=0,0,false; 先输出0,后y--,y=-1;
红塔区18685349364: main() { int y=10; do{y -- ;}while(--y); printf("%d\n",y--); } 求输出结果,详细解及思路 - ?
督初氢溴: main() { int y=10; do{y--;}//这一句做完,y=9 while(--y);//这一句做完,y=8 printf("%d\n",y--); } 所以 过程如下; y--之后:y=9; --y:y=8 y--:y=7 --y:y=6 y--:y=5 --y:y=4 y--:y=3 --y:y=2 y--:y=1 --y:y=0 循环停止 然后输出:0 之后,y的值变为-1
红塔区18685349364: # include <stdio.h> void main() { int y=10; while(y -- ); printf("y=%d",y); } - ?
督初氢溴: # includevoid main() { int y=10; /*y的初始值为10;*/ while(y--);/*注意:while()后有分号“;”,而不是while(){} 所以:下面的语句跟上面的while不是一个整体.while()括号中的数>0为真,==0为假.开始:y=10,判断>0,真,执行y-1=9 y=9,判断>0,真,执行y-1=8 . . . y=1,判断>0,真,执行y-1=0 y=0,判断==0,假,执行y-1=-1 退出循环,此时的y=-1*/ printf("y=%d",y); }
红塔区18685349364: #include <stdio.h> main () { int y=10; do{y -- ;}while(--y); printf("%d\n",y--) 该运行结果是多少 解释 - ?
督初氢溴: 1 运行结果是:02 原因:do {y--;} while(--y);//这个循环的结束条件是--y为0,也就是y的值为0;printf("%d\n",y--) ;//输出y的值0,再使y值减1,y值最后为-1,但输出的是0.
红塔区18685349364: main()int y=10;do{y - =2;}while(y-->7);printf(“%d”,y - ?
督初氢溴: main() { int y=10;do{y-=2;}while(y-->7);printf("%d",y); } 运行结果:4说明: 第一次进入循环时:y=y-2=10-2=8然后判断y=8大于7为真,马上y--=8-1=7,再返回do再一次进入循环 第二次进入循环时:y=y-2=7-2=5然后判断y=5,大于7为假,马上y--=5-1=4,然后退出循环,执行一个输出语句 结果y=4
红塔区18685349364: #include<stdio.h> main() {int y=10; while(y -- ); printf(”Y=%d\n”,Y) - ?
督初氢溴: 看错了,循环没有包括输出,while(y--); 分开了,只能到-1结束循环,然后打印
红塔区18685349364: 以下程序运行后的输出结果是(). main() { int y=10; while(y--); printf...?
督初氢溴: 程序的执行过程是 第一次 do语句后y=9 while循环条件判断后 y=8 第二次 do语句后y=7 while循环条件判断后 y=6 第三次 do语句后y=5 while循环条件判断后 y=4 第四次 do语句后y=3 while循环条件判断后 y=2 第五次 do语句后y=1 while循环条件判断后 y=0 退出循环 打印输出前先计算--y 所以y=-1 程序最后输出结果是-1