44问答网
所有问题
main() { int x=3,y=0,z=0; if(x=y+z) printf("****"); else printf("####"); } 的输出结果是多少?
如题所述
举报该问题
推荐答案 2012-01-09
main() { int x=3,y=0,z=0; if(x=y+z) printf("****"); else printf("####"); } 的输出结果是多少?
if里面的东西是x=y+z这个是先执行y+z然后赋给X然后判断X的值真还是假,这里X会变成0是假的,所以执行的是第二句输出好多#######
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://44.wendadaohang.com/zd/6DV6ZZRYD.html
其他回答
第1个回答 2012-01-09
语句错误 if (x==y+z)才是条件 或者你可以加个循环 for(i=0,i<=3,i++) if(x==y+z)..................... .
第2个回答 2012-01-09
此题目分析如下:
主要是if语句的判断,x = y+z后,x为0,该条语句的结果也就是0,于是条件判断失败,执行else,所以结果为:####
第3个回答 2012-01-09
####
你的if里面是x=y+z,是赋值而不是x是否等于y+z。
按你真正意思应该是 if(x==y+z) 吧?
第4个回答 2012-01-09
****
1
2
下一页
相似回答
...
main ( )
{
int x=0
,y=0,z=0;
if (x=y+z)
printf(
“
***
”
);
else
...
答:
答案是B 因为C语言中"="是赋值号;
if
(x=y+z)是计算出y+z的值然后赋值给x,这个式子是永远成立的,所以会输出***;如果说要改错的话,应该改为if(x==y+z),构成逻辑表达式后,才符合程序设计的初衷。
main(){int
x=3,y=0,z=
5
;if(x=y+z)printf(
"
***
"
);else
printf("###...
答:
你确定是这个结果? 按道理来说
y+z
!=0所以括号里为真,所以运行
printf(
"
***
"); 另外判断的时候是可以加表达式的 只不过此时判断的是这个值是否相等,而是是否为0 我在本机上运行了这段程序,确实是
...
{
int x=0
,y=0,z=0;
if(x=y+z)
printf(
"
***
"
);
else
printf (
"##...
答:
解释:
if(x=y+z)
成立就执行输出
***
。否则就输出 至于x=y+z是赋值表达式来,赋值表达式的左边值是可以改变的。此处是把y+z值赋给x,即把0赋给x。所以此处的判断值是0,因此判断条件不成立。所以就执行
printf (
"###");
请阅读以下程序,该程序
答:
答案是C,打印三个*号
,if(x=y+
x)注意这是一个赋值表达式,把y+z的结果赋值给x,所以x等于5,if语句判断是非0都为真,所以打印三个*号,如果题目改成if
(x==y+z),
又不一样,变成了比较运算表达式,判断x是否等于y+z的结果,+号的运算优先级比==高,所以比较x和y+z的结果是否相等,显然...
大家正在搜
相关问题
main(){int x=3,y=0,z=5;if(x=y+...
{ int x=0,y=-1,z=1;if(x=y+z) p...
main() {int x=2,y=-1,z=2; if(x...
main() { int x=6,y=-4,z=3; if(...
#define F(x) x+y*z main() {int...
main() {int x=2,y=-1,z=2; if(x...
main() { int x=1,y=2,z=3; if(x...
main() {int x=4,y=0,z; x*=3+2;...