执行c语言语句"int a=3,b=4,c;c=a++>3||--b<4;"后变量C的值
1个回答
展开全部
C=1;
题目考点为 各 运算符的优先级,及执行方向。
题目中,前缀自减、后缀自增的运算符等级 高于 判断运算符 大于、小于的等级,而 判断运算符又 高于 逻辑运算符 逻辑或(||) 的等级,而逻辑运算符的等级又高于 赋值运算符(=)的等级,所以结果,式子是这样滴:
c=((a++)>3) ||((--b)<4);
执行方向及顺序:
上面的式子,其结构如:c= X || Y;逻辑或的执行方向为 从左往右,先执行 X部分,就是(a++)>3,a++为后缀自增加,再语句结束后,才会进行自增加。也就是说,此时,a没有加,还是3;a>3不成立。即a>3 结果为 假的,=0; X部分为0,不能判断 X ||Y 的结果,所有还得执行 Y部分,(--b)<4,--b为前缀自减,语句执行时,先减1,后运行。所以,此时b已经减1,b=3;b<4成立,即b<4 结果为 真的,=1;
最后 c=0 ||1=1;
题目考点为 各 运算符的优先级,及执行方向。
题目中,前缀自减、后缀自增的运算符等级 高于 判断运算符 大于、小于的等级,而 判断运算符又 高于 逻辑运算符 逻辑或(||) 的等级,而逻辑运算符的等级又高于 赋值运算符(=)的等级,所以结果,式子是这样滴:
c=((a++)>3) ||((--b)<4);
执行方向及顺序:
上面的式子,其结构如:c= X || Y;逻辑或的执行方向为 从左往右,先执行 X部分,就是(a++)>3,a++为后缀自增加,再语句结束后,才会进行自增加。也就是说,此时,a没有加,还是3;a>3不成立。即a>3 结果为 假的,=0; X部分为0,不能判断 X ||Y 的结果,所有还得执行 Y部分,(--b)<4,--b为前缀自减,语句执行时,先减1,后运行。所以,此时b已经减1,b=3;b<4成立,即b<4 结果为 真的,=1;
最后 c=0 ||1=1;
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询