
#include<stdio.h> void main() {int x=-1; do {x=x*x;} while(!x);//逻辑加? printf("%d",x); }
5个回答
展开全部
1.当x=-1时,得到x=(-1)*(-1)=1;
2.这时会判断条件的不满足while;
3.所以这时程序就会跳出来的,这时输出结果是1;
4.注while循环语句和for循环语句是不同的,while语句是先执行语句,然后再判断条件。for循环语句是先判断条件,然后再执行里面的语句。希望能帮助到你。O(∩_∩)O
2.这时会判断条件的不满足while;
3.所以这时程序就会跳出来的,这时输出结果是1;
4.注while循环语句和for循环语句是不同的,while语句是先执行语句,然后再判断条件。for循环语句是先判断条件,然后再执行里面的语句。希望能帮助到你。O(∩_∩)O
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
!x就是指当while(0)时候,停止运行。 x=x*x 结果是1
!x是0跳出循环。所以结果X是1
!x是0跳出循环。所以结果X是1
更多追问追答
追问
!(-1)的话是不也是0?
追答
-1就是-1,!是非的意思。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
void main()
{
int x=-1;
do
{x=x*x;}
while(!x);//判断条件,非0为1,非(除零以外的数)=0,括号内若为0,跳出循环,不 为 0, 进入循环
printf("%d",x);
}
void main()
{
int x=-1;
do
{x=x*x;}
while(!x);//判断条件,非0为1,非(除零以外的数)=0,括号内若为0,跳出循环,不 为 0, 进入循环
printf("%d",x);
}
追问
逻辑加的时候 是不只要不是零,结果都为1,eg:7&&(-1)=1??
追答
嗯 不错 只要不是零就对 这个涉及到补码反码的问题 如果想明白你可以看看书
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我了个蛋疼这死循环啊,!X代表非0,x相乘就是1然后进入循环出不来了,不会有输出的。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
do {
x=x*x; //x=-1, X*X的值为1即现在x的值为1
} while(!x);//1的非为0
所以最后输出值为1.
x=x*x; //x=-1, X*X的值为1即现在x的值为1
} while(!x);//1的非为0
所以最后输出值为1.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询