有以下程序: #include<stdio.h> main() { int i=1,j=1,k=2; if((j++||k++)&&i++) printf("%d,%d,%d\n",i,j,k); } 执行后输

admin2009-01-15  19

问题 有以下程序:    #include<stdio.h>    main()    {  int i=1,j=1,k=2;       if((j++||k++)&&i++)  printf("%d,%d,%d\n",i,j,k);    }    执行后输出结果是(    )。

选项 A、1,1,2
B、2,2,1
C、2,2,2
D、2,2,3

答案4

解析 该题目的关键是要搞清楚“&&”和“||”两个逻辑运算符的运算功能。运算符“&&”和“||”是双目运算符,要求有两个运算量。在逻辑与运算中,只有当“&&”运算符前面运算量的值为真时,才需要判断后面的值;若为假,就不必判断后面的值。而在逻辑或运算中,只要“||”运算符前面的值为真,就不再判断后面的值;只有前面的值为假,才判断后面的值。本题中 j++的值为真,因此不进行k++运算,k值保持不变,(j++||k++)的值为真,继续计算i++,计算后i值为2。
转载请注明原文地址:https://kaotiyun.com/show/NsXp777K
0

最新回复(0)