A-A+
有以下程序 main() { int i=1 j=1 k=2; if((j++||k++)&
问题详情
有以下程序 main() { int i=1,j=1,k=2; if((j++||k++)&& i++) cout<<i<<","<<j<<","<<k<<endl; } 执行后输出结果是
A.1,1,2
B.2,2,1
C.2,2,2
D.2,2,3请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:C
解析:本题考查逻辑表达式及自增运算符的联合使用。考生要注意本题里面隐藏的考点:&&和||在左侧表达式为真或假时,将不再进行该逻辑操作符右侧表达式的运算,即j++本身为非零,故k++不再执行。如对表达式a&&b&&c,实际执行情况是当a非0时,再判断b,a、b均非0,再判断c。而对表达式a||b||,c,若a为非0,不必判断b和c,结果一定为1。