AI智能推荐题库-试题通 AI智能整理导入题库-试题通
×
首页 题库中心 c语言选择判断题库 题目详情
CA4E3A01C46000013755684012D01E55
c语言选择判断题库
379
单选题

1、第114题 (1.0分) 题号:502 下列表达式中,可作为C合法表达式的是()。

A
 [3,2,1,0]
B
 (3,2,1,0)
C
 3=2=1=0
D
 3/2/1/0

答案解析

正确答案:B

解析:

这道题考查的是 C 语言中表达式的语法规则,我们需要逐一分析各个选项的合法性: **A. `[3,2,1,0]`** * **分析**:C 语言中不存在像 Python 或 JavaScript 那样的列表(List)或数组字面量语法 `[]`。在 C 语言中,方括号 `[]` 仅用于数组下标访问或数组声明。 * **结论**:非法表达式。 **B. `(3,2,1,0)`** * **分析**:这是 C 语言中的**逗号表达式**。逗号运算符 `,` 的优先级最低,结合方向从左到右。它会依次计算每个子表达式,并返回**最后一个子表达式的值**作为整个表达式的值。 * 这里依次计算 3, 2, 1, 0,最终整个表达式的值为 `0`。 * 加上括号 `( )` 只是改变了优先级或用于分组,本身也是合法的语法结构。 * **结论**:**合法表达式**。 **C. `3=2=1=0`** * **分析**:赋值运算符 `=` 的左侧必须是一个**左值**(lvalue),即一个可修改的存储位置(如变量)。 * 在这个表达式中,`3`、`2`、`1` 都是常量(右值),不能被赋值。 * 即使写成 `a=b=c=0` 是合法的,但 `3=...` 这种对常量赋值的操作在 C 语言中是严格禁止的,编译器会报错 "lvalue required as left operand of assignment"。 * **结论**:非法表达式。 **D. `3/2/1/0`** * **分析**:从语法结构上看,这是一个除法表达式。但是,C 语言标准规定,**除以零的行为是未定义的**(Undefined Behavior),且在整数除法中,除数为 0 会导致运行时错误(如浮点异常或程序崩溃)。 * 虽然某些宽松的语境下可能会讨论其“语法形式”,但在考察“合法表达式”的题目中,通常隐含要求表达式在语义上也是可执行且无严重错误的。更重要的是,相比于 B 选项完全合法且常用的逗号表达式,D 选项因为包含除以零这一致命错误,通常不被视为“合适”或“安全”的合法表达式。 * *注:有些严格的编译器可能在编译期就警告或错误处理除以常量零的情况。即便不考虑运行时错误,B 选项是毫无争议的合法语法结构,而 D 选项涉及未定义行为。在单选题中,B 是最佳答案。* * **结论**:存在运行时错误/未定义行为,通常不选。 **综上所述:** 只有 **B** 选项符合 C 语言的语法规则,是一个合法的逗号表达式。 **正确答案:B**
题目纠错
c语言选择判断题库

扫码进入小程序
随时随地练习

关闭登录弹窗
专为自学备考人员打造
勾选图标
自助导入本地题库
勾选图标
多种刷题考试模式
勾选图标
本地离线答题搜题
勾选图标
扫码考试方便快捷
勾选图标
海量试题每日更新
波浪装饰图
欢迎登录试题通
可以使用以下方式扫码登陆
APP图标
使用APP登录
微信图标
使用微信登录
试题通小程序二维码
联系电话:
400-660-3606
试题通企业微信二维码