单选题
1、第282题 (1.0分) 题号:575 若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于 表达式(exp)的是()。
A
(exp==0)
B
(exp!=0)
C
(exp==1)
D
(exp!=1)
答案解析
正确答案:B
解析:
在 C 语言及许多类 C 语言中,条件表达式 `(exp) ? a++ : b--` 的执行逻辑取决于表达式 `exp` 的真假值。
**核心知识点解析:**
1. **布尔值的判定规则**:
* 在 C 语言中,**非零**值被视为“真”(True)。
* **零**值被视为“假”(False)。
2. **条件运算符的工作机制**:
* 如果 `exp` 的结果为“真”(即 `exp` 不等于 0),则执行 `?` 后面的部分(`a++`)。
* 如果 `exp` 的结果为“假”(即 `exp` 等于 0),则执行 `:` 后面的部分(`b--`)。
3. **选项分析**:
* 我们要找一个表达式,它的真假判断逻辑与原表达式中的 `(exp)` 完全一致。也就是说,当 `exp` 为非零时,该表达式也为真;当 `exp` 为零时,该表达式也为假。
* **A. `(exp==0)`**:当 `exp` 为 0 时结果为真,当 `exp` 非 0 时结果为假。这与原逻辑相反(原逻辑是 exp 非 0 为真)。
* **B. `(exp!=0)`**:当 `exp` 不为 0 时结果为真,当 `exp` 为 0 时结果为假。这与 C 语言中直接判断 `(exp)` 的逻辑完全一致。
* **C. `(exp==1)`**:只有当 `exp` 恰好等于 1 时才为真。如果 `exp` 是 2、-1 或其他非零值,原表达式 `(exp)` 判定为真,但 `(exp==1)` 判定为假。因此不等价。
* **D. `(exp!=1)`**:只要 `exp` 不等于 1 就为真。如果 `exp` 是 0,原表达式判定为假,但 `(exp!=1)` 判定为真。因此不等价。
**结论:**
表达式 `(exp)` 在条件判断中等价于判断 `exp` 是否非零,即 `(exp != 0)`。
因此,正确答案是 **B**。
题目纠错
c语言选择判断题库
相关题目
单选题
1、〖第17题〗635) 若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是()。
单选题
1、〖第16题〗720) 函数 rewind 的作用是()。
单选题
1、〖第15题〗692) 以下叙述中正确的是()。
单选题
1、〖第14题〗35) 已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为()。 char a='a'; a--; printf(”%d,%c\n”,a+'2'-'0',a+'3'-'0');
单选题
1、〖第13题〗633) 对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是()。
单选题
1、〖第12题〗641) 若有说明:int a[10];则对a数组元素的正确引用是()。
单选题
1、〖第11题〗384) 以下数据中,不正确的数值或字符常量是()。
单选题
1、〖第10题〗727) 以下read函数的调用形式中,参数类型正确的是()。
单选题
1、〖第9题〗656) 以下数组定义中不正确的是()。
单选题
1、〖第8题〗591) 设有 int x=11; 则表达式 (x++ * 1/3) 的值是()。
