dkfr.net
当前位置:首页 >> 有以下程序 mAin( ) { int i=1,j=1,k=2; iF((j++||... >>

有以下程序 mAin( ) { int i=1,j=1,k=2; iF((j++||...

选 C , k++不执行

给不给好评

2 2 2 3 3 2 4 4 2 …… 或运算时,如果||左边为真,右边不再计算。与远算时,&&左边为真时,右边必须要计算

逻辑或“ || ” 只要有一个为真则为真 假如: “||”左边为真时,“||”后面的语句不再执行 < 语句为真 > “||”左边为假时,继续判断“||”后面的值 若为真则真 若为假则假 ==》 因为 (j++)为真 所以 (k++)就不再执行 ==》j=2; k=2; 逻辑与“ && ”只要...

个人觉得这题答案应该是2,2,2. 原因是:if((j++||k++) && i++) 首先执行的是j++,返回true,此时j=2。 但是后面的||部分(即k++)是不执行的,此时仍然是k=2。 然后再执行i++,返回true,此时i=2。 最后输出2,2,2 补充: 但是后面的||部分(即k+...

1,2,2 原因: j++ ,k++ ,i++ 都是先判断然后再进行自增运算 ||逻辑或 左侧为假则对右侧进行运算 左侧为真则不对右侧进行运算直接返回真 && 逻辑且 左侧为真则对右侧进行运算 左侧为假则不对右侧进行运算直接返回假 所以j为非零 直接返回真 并j++...

逻辑或“ || ” 只要有一个为真则为真 假如: “||”左边为真时,“||”后面的语句不再执行 < 语句为真 > “||”左边为假时,继续判断“||”后面的值 若为真则真 若为假则假 ==》 因为 (j++)为真 所以 (k++)就不再执行 ==》j=2; k=2; 逻辑与“ && ”只要...

结果为:2,2,2 当j++ 执行后,整体值为1,j的值为2,发生逻辑或短路,k++就不执行了,所以k的最终值不变,仍为2;

#include int main() { int i = 1,j = 2,k = 3; if(i++ == 1 && //先判断 i == 1 再运算 i = i + 1 (++j==3 || //先运算 j = j + 1 再判断 j == 3 k++==3)) //先判断 k == 3 再运算 k = k + 1 printf("%d %d %d\n", i, j, k); return 0; } //运...

if(i++==1&&(++j==3||k++==3)) 先看 i ++== 1, 因为是++在后面,所以语句执行完才i才会变成2, 所以i++ == 1, true,。 后面++j==3||k++==3, ++j, ++ 在前面,所以执行的时候j就等于3了,而k++ ==3 是|| , 只要++j == 3 成立,他就立即返回...

网站首页 | 网站地图
All rights reserved Powered by www.dkfr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com