答案是A和D都对。
分析:
1. !a与a==0的等价性
对于表达式!a:
当a的值为0时,!a的结果为1(逻辑真);
当a的值为非0时,!a的结果为0(逻辑假)。
对于表达式a==0:
当a的值为0时,表达式结果为1(条件成立);
当a的值为非0时,表达式结果为0(条件不成立)。
结论:两种表达式的运算结果完全一致,因此!a等价于a==0。
2. !a与!a==1的等价性
对于表达式!a==1:
根据运算符优先级,!的优先级高于==,因此该表达式等价于(!a)==1。
当a的值为0时:子表达式!a的结果为1,此时1==1成立,整体结果为1;
当a的值为非0时:子表达式!a的结果为0,此时0==1不成立,整体结果为0。
对比!a的运算结果(a=0时为1,a≠0时为0),可知两者的结果完全一致。
结论:!a等价于!a==1。
3. 综合等价关系
通过上述分析可明确:
表达式!a既等价于a==0,也等价于!a==1。
上面分析,认为答案不是A和D的吧友看懂了吗?