一道关于C语言的题目
执行下列语句后a的值为(),b的值为()。inta,b,c;a=b=c=1;++a||++b&&++c;A)错误1B)22C)21D)11答案C为什么?...
执行下列语句后a的值为( ),b的值为( )。
int a, b, c;
a=b=c=1;
++a|| ++b && ++c;
A) 错误 1 B) 2 2 C) 2 1 D) 1 1
答案C 为什么? 展开
int a, b, c;
a=b=c=1;
++a|| ++b && ++c;
A) 错误 1 B) 2 2 C) 2 1 D) 1 1
答案C 为什么? 展开
6个回答
展开全部
我只能说这种题目都是2的,根据每个编译器的不同运算次序是不同的,出来的答案无法保证,一般不使用复杂的自加自减运算,按左右顺序的话答案是C没错正如楼上2为讲的先做++a然后就不算了,编译器不同答案不同
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
|| 为短路或(| 为逻辑或),短路或的特点是当前面条件为真时整个句子必然为真,所以不再判断后面的条件是否成立(后面的条件直接跳过),短路或在程序执行过程中可以节省一部分时间,所以很常用。
所以题中++b没有执行,所以答案为C
所以题中++b没有执行,所以答案为C
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
++a|| ++b && ++c
在上述逻辑表达式中计算机执行++a后没有继续执行++b
所以a=a+1 而b还是b=1;
计算机之所以后面没有执行,因为在逻辑表达式求解时,只有在必须执行下一个逻辑运算符才能求出表达式的解。
该题目中只有++a为假(0)时才执行++b,因为++a为真所以对于“||”左边为真右面就不用执行
在上述逻辑表达式中计算机执行++a后没有继续执行++b
所以a=a+1 而b还是b=1;
计算机之所以后面没有执行,因为在逻辑表达式求解时,只有在必须执行下一个逻辑运算符才能求出表达式的解。
该题目中只有++a为假(0)时才执行++b,因为++a为真所以对于“||”左边为真右面就不用执行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先a,b,c都为1
然后计算++a|| ++b && ++c;
先算++a,值为2,也就是为真
所以不用运算++b && ++c
得到结果是a为2,b和c都为1
这涉及到或运算和与运算的知识点,百度下就知道了
然后计算++a|| ++b && ++c;
先算++a,值为2,也就是为真
所以不用运算++b && ++c
得到结果是a为2,b和c都为1
这涉及到或运算和与运算的知识点,百度下就知道了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a=b=c=1;执行完后a=1,b=1
++a||++b&&++c 这里先执行++a使得a=2了,然后这个表达式已经成立,不会再执行后面的||++b&&++c了,所以a=2,b=1
++a||++b&&++c 这里先执行++a使得a=2了,然后这个表达式已经成立,不会再执行后面的||++b&&++c了,所以a=2,b=1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询