下列表达式中,不满足”当x的值为偶数时值为真,为奇数时值为假“要求的...
发布网友
发布时间:2024-07-13 06:45
我来回答
共3个回答
热心网友
时间:2024-08-05 21:34
这是运算符的优先级问题
A。.x%2==0即.(x%2)==0 ,x为偶,这x%2结果为0,0==0结果为真
B..!x%2!=0 即 ((!x)%2)!=0 由于先运算!x,所以结果跟x是否为偶数没有关系
C。由于x是整数,x/2结果也为整数,例9/2=4,偶数时x/2*2=x,结果为真,奇数时x/2*2不等于x
D。应该很好理解吧....
热心网友
时间:2024-08-05 21:37
A选项 很容易判断满足上面叙述;
B选项 考察逻辑非(!)与取余(%)的优先级,逻辑非的优先级为2,取反为3,所以先计算取反,可以判断不完全满足上述要求;
C选项 x为int类型时,遵从取整数的原则,如x是奇数3,那么左式就等于-1,即奇数时为假;
D选项 与A对应,表达式为0则为假,表达式为非零则为真
热心网友
时间:2024-08-05 21:35
A, 对2取余为0,即为偶数,很标准的方式
B,!的优先级高于!=,x为非0偶数时,!x即为0,0%2==0,所以!x%2!=0的判断就不对了
C,x/2*2,等同于(x>>1)<<1的意思就是剔除了二进制的最低位把它变成偶数,如果剔除二进制最低位后仍然相等,则表示x是偶数
D,跟A等同。逻辑判断(表达式==0)就表示(!表达式)