网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月03日漏签0天
c语言吧 关注:798,922贴子:4,358,109
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 27回复贴,共1页
<<返回c语言吧
>0< 加载中...

这个第17题是不是有争议啊

  • 只看楼主
  • 收藏

  • 回复
  • Tony他0
  • 低能力者
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • XeO2
  • 小吧主
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
A和D都是对的,标准明确说过!a和a==0等价


2025-08-03 12:41:30
广告
不感兴趣
开通SVIP免广告
  • 坐等繁华落幕
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
!a做判断条件时,如果a为真值那么结果为假,如果a为假值那么结果为真。而C语言中所有非0值都可以是真值,所以当a是不为1的真值时(例如2),D选项就不符合!a的逻辑了。


  • 香菜味包子
  • 超能力者
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
AD应该都对,考试的话听老师的
硬要说的话,if(p == 0)这样可能会有类型转化?但是a== 0和!a确实是等价的


  • fbvcgbn
  • 酱油
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这就是为什么现代C++提倡在条件表达式里不要用!a这种,要写清a==0还是a==false还是a==nullptr


  • 逐个按
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
答案是a,D是不对的。


  • 浩南锡
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
D运行不了


  • 逐个按
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
a=2时!a的结果是false,!a==1的结果是true。D怎么就对了?


2025-08-03 12:35:30
广告
不感兴趣
开通SVIP免广告
  • 遂逸
  • 帕秋莉糕
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
答案是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的吧友看懂了吗?


  • GTA小鸡
  • 吧主
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
A和D都是对的


  • 贴吧用户_GN81EbW
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
老出这种垃圾题目,国内老师水是真的水


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 27回复贴,共1页
<<返回c语言吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示