已知int a=18,b=4,c:,执行c=a/b/2:后,c的值是A. 2B. 2.25C. 9?

 我来答
匿名用户
2023-05-29
展开全部
当然不是这样。在c语言中,&&的优先级比||高,所以当这两个一起出现的时候,是先算&&再算||,
当然,||在c语言也有个陷阱。就是当||的前半部分为真的时候,就不执行后半部,只有前半部分为袭厅假的时候才执行后半部分。
本题中:a=b=c=1;
于是a,b,c的值都是1,
++a||++b&&++c;
中,&&的优先级高,所以先算++b&&++c,
再跟++a做||运算。
于是++a是||的前半部分。而++a的值此时是2,a的值就是2,即为真。于是就不做后半部分的运算。
也就没有++b&&++c的运算顷禅型。于是b,c的值还是都为1.
这下雀猜明名为什么是a=2
b=1
c=1,而不是a,b,c都为2的原因了吧。

  • 当然不是这样。在c语言中,&&的优先级比||高,所以当这两个一起出现的时候,是先算&&再算||,
    当然,||在c语言也有个陷阱。就是当||的前半部分为真的时候,就不执行后半部,只有前半部分为袭厅假的时候才执行后半部分。
    本题中:a=b=c=1;
    于是a,b,c的值都是1,
    ++a||++b&&++c;
    中,&&的优先级高,所以先算++b&&++c,
    再跟++a做||运算。
    于是++a是||的前半部分。而++a的值此时是2,a的值就是2,即为真。于是就不做后半部分的运算。
    也就没有++b&&++c的运算顷禅型。于是b,c的值还是都为1.
    这下雀猜明名为什么是a=2
    b=1
    c=1,而不是a,b,c都为2的原因了吧。

  • 当然不是这样。在c语言中,&&的优先级比||高,所以当这两个一起出现的时候,是先算&&再算||,
    当然,||在c语言也有个陷阱。就是当||的前半部分为真的时候,就不执行后半部,只有前半部分为袭厅假的时候才执行后半部分。
    本题中:a=b=c=1;
    于是a,b,c的值都是1,
    ++a||++b&&++c;
    中,&&的优先级高,所以先算++b&&++c,
    再跟++a做||运算。
    于是++a是||的前半部分。而++a的值此时是2,a的值就是2,即为真。于是就不做后半部分的运算。
    也就没有++b&&++c的运算顷禅型。于是b,c的值还是都为1.
    这下雀猜明名为什么是a=2
    b=1
    c=1,而不是a,b,c都为2的原因了吧。
    • 如果我的回答可以帮到您,请您采纳哦!

    推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

    为你推荐:

    下载百度知道APP,抢鲜体验
    使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
    扫描二维码下载
    ×

    类别

    我们会通过消息、邮箱等方式尽快将举报结果通知您。

    说明

    0/200

    提交
    取消

    辅 助

    模 式