鱼C论坛

 找回密码
 立即注册
查看: 329|回复: 6

[已解决]考试有道题感觉答案给错了,问问大家

[复制链接]
发表于 2021-5-16 20:38:28 | 显示全部楼层 |阅读模式
3鱼币
7.已知有声明“int a=0,b=2;”,则执行语句“b=--a||++b;”后,变量b的值为(   )。
A.0                    B.1                            C.2                            D.3
答案:C


答案不应该是1么??,求解
最佳答案
2021-5-16 20:38:29
是这道题本身就有问题,我感觉这道题的答案是 “不是A”
逻辑或运算符的结果是 “真或假”
在C/C++中 0 表示假,非0表示真
所以我认为这道题的正确答案是 “不是A”,因为B C D都为真,都是对的
在我这边,编译器给出的结果是1
  1. $ cat main.c
  2. #include <stdio.h>

  3. int main(void) {
  4.     int a = 0, b = 2;
  5.     b = --a || ++b;
  6.     printf("%d\n", b);
  7.     return 0;
  8. }
  9. $ ./main
  10. 1
  11. $
复制代码

最佳答案

查看完整内容

是这道题本身就有问题,我感觉这道题的答案是 “不是A” 逻辑或运算符的结果是 “真或假” 在C/C++中 0 表示假,非0表示真 所以我认为这道题的正确答案是 “不是A”,因为B C D都为真,都是对的 在我这边,编译器给出的结果是1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-5-16 20:38:29 | 显示全部楼层    本楼为最佳答案   
是这道题本身就有问题,我感觉这道题的答案是 “不是A”
逻辑或运算符的结果是 “真或假”
在C/C++中 0 表示假,非0表示真
所以我认为这道题的正确答案是 “不是A”,因为B C D都为真,都是对的
在我这边,编译器给出的结果是1
  1. $ cat main.c
  2. #include <stdio.h>

  3. int main(void) {
  4.     int a = 0, b = 2;
  5.     b = --a || ++b;
  6.     printf("%d\n", b);
  7.     return 0;
  8. }
  9. $ ./main
  10. 1
  11. $
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-5-23 17:43:02 | 显示全部楼层
应该是答案给错了
b=--a||++b // 表达式中优先级的顺序为 --/++ > || > =
                  // 因此可以看成是 b = ( --a || ++b ) ,  --a = -1, 所以 ( --a || ++b )表达式为真(1), 所以b = 1,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-5-24 10:17:08 | 显示全部楼层
首先,b=-1,没有造成短路,执行||后面的++b,然后b就从2变成3了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-5-24 11:08:43 | 显示全部楼层
178 发表于 2021-5-24 10:17
首先,b=-1,没有造成短路,执行||后面的++b,然后b就从2变成3了

你这是Python的语法吧,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2021-5-24 14:17:57 | 显示全部楼层
经典++ -- 哈哈

栈中八个字节分别储存a和b  
第7行: a-1
8行:与0比较  发现不为真 继续(没短路
10 b+1  
11 与0比较  为真     ( --a || ++b ) 整体为真  
13  0x1 移到寄存器  
16 寄存器的值移到栈中b位置   
最后弹出  给a,b  
我这个反编译答案是1


QQ截图20210524141044.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2021-6-10 13:53:10 | 显示全部楼层
谢谢大家之前我因为考试看到这题当时没想出来,这几天考完了回来才看到评论。我的想法也是答案应该是1逻辑值非零。具体的话上课老师并没有给出相关解释。应该就是如大家所说题目是选错误的项
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1

GMT+8, 2021-6-23 17:00

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表