int a=10,b=20,c=30,d; d=++a<=10||b-->=20||c++; printf("%d %d %d %d\n",a,b,c,d);求高手分析此程序段
6个回答
展开全部
主要运算部分:d=++a<=10||b-->=20||c++;
首先执行++a<=10||b-->=20,a自增1后为11,则++a<=10为假,b为20,则b-->=20为真(b的自减运算在之后执行,故b的输出值将会是19)
至此++a<=10||b-->=20的结果为真,程序不再继续执行||c++的内容,故c的值不发生变化
最终输出结果为 11 19 30 1
首先执行++a<=10||b-->=20,a自增1后为11,则++a<=10为假,b为20,则b-->=20为真(b的自减运算在之后执行,故b的输出值将会是19)
至此++a<=10||b-->=20的结果为真,程序不再继续执行||c++的内容,故c的值不发生变化
最终输出结果为 11 19 30 1
追问
那这段程序的结果呢:
int i=8,j=10;
printf("%d,%d,%d,%d",i,j,++i,j++);
追答
9,10,9,10
建议自己编译运行
展开全部
结果是a=11,b=19,c=31,d=1吗?
++a,a=10+1=11,a<=10为假,继续判断
b--后b=19,>=20为假,继续判断
c++后c=31,为真,所以d=1
所以输出结果为11,19,31,1
++a,a=10+1=11,a<=10为假,继续判断
b--后b=19,>=20为假,继续判断
c++后c=31,为真,所以d=1
所以输出结果为11,19,31,1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义了a=10,在a++时a完成自加。所以a是11.++a是先加再比较。所以++a<=11为假。b在b--时完成自减。b为19.||表示或。b--大于等于20为真。因为b--是先比较在减的。所以后面的不运行了。所以d为真为1了。c不变。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a=11;
b=19;
c=31;
d=1;
d=........;这个表达式为真
++a;的意思是先+1;再运算表达式,a++;相反
||表示或运算,只要表达式中有真就为真,全假为假
b=19;
c=31;
d=1;
d=........;这个表达式为真
++a;的意思是先+1;再运算表达式,a++;相反
||表示或运算,只要表达式中有真就为真,全假为假
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这程序主要的是看运算符的优先级,知道优先级就能看出来了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询