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

1、第204题 (1.0分) 题号:590 若变量a与i已正确定义,且i已正确赋值,合法的语句是()。

A
 a==1
B
 ++i;
C
 a=a++=5;
D
 a=int(i);

答案解析

正确答案:B

解析:

这是一道关于 C 语言(或类 C 语言如 C++)基础语法的题目。我们需要分析每个选项是否符合语法规则,特别是区分“表达式”和“语句”的概念,以及赋值运算符的规则。 **正确答案:B** ### 详细解析: **1. 核心概念区分:表达式 vs 语句** 在 C 语言中,**表达式**(Expression)是由变量、常量、运算符组成的序列,它产生一个值。**语句**(Statement)是程序执行的基本单位,通常以分号 `;` 结尾。 * 虽然表达式加上分号可以构成“表达式语句”,但单纯的表达式(没有分号)在某些语境下(如作为独立的一行代码)是不完整的,或者被视为无操作。 * 更重要的是,我们要看该结构是否构成了合法的、可执行的指令。 **2. 逐项分析:** * **A. `a==1`** * **分析**:这是一个**关系表达式**,用于判断 `a` 是否等于 1。它的结果是一个布尔值(真或假)。 * **错误原因**:虽然 `a==1;` 是一个合法的表达式语句(尽管它没有副作用,编译器可能会警告),但在很多严格的语法考题语境中,单独写 `a==1` 而没有分号,或者将其视为一条“执行语句”时,它仅仅是一个计算过程,不改变任何变量的状态,且如果没有分号,它在语法上不是一个完整的语句。即使加上分号,它通常也被认为是一条“空操作”语句,不如 B 选项典型。但在单选题中,如果对比 B 选项,B 是明确的修改变量的语句。更关键的是,如果题目隐含要求是“能产生实际效果或标准格式的语句”,A 往往因为缺少分号(题目中未显示分号)或无副作用而被排除。*注:题目选项中 A 没有分号,因此它只是一个表达式,不是语句。* * **B. `++i;`** * **分析**:这是自增运算符的前缀形式。`++i` 是一个表达式,表示将 `i` 的值加 1。加上分号 `;` 后,构成了一个完整的**表达式语句**。 * **正确原因**:语法完全合法,且是一个标准的、有副作用(修改了 `i` 的值)的语句。 * **C. `a=a++=5;`** * **分析**:这里涉及赋值运算符 `=` 的结合性和左值(L-value)概念。 * **错误原因**:赋值运算符是右结合的,等价于 `a = (a++ = 5);`。 1. `a++` 的结果是一个**右值**(r-value),即 `a` 增加之前的值的副本。 2. 赋值运算符 `=` 的左边必须是一个**左值**(l-value),即一个可以被赋值的内存位置(如变量)。 3. 你不能给一个右值赋值(例如不能写 `5 = 5` 或 `(a+1) = 5`)。因此,`a++ = 5` 是非法的,因为 `a++` 不是左值。 4. 此外,即使在某些允许复杂赋值的语言中,对同一变量在一次语句中多次修改(`a` 和 `a++`)也会导致**未定义行为**(Undefined Behavior)。 * **D. `a=int(i);`** * **分析**:这看起来像函数调用风格的类型转换。 * **错误原因**: 1. 在标准 **C 语言**中,强制类型转换的语法是 `(type)expression`,即应该写成 `a = (int)i;`。`int(i)` 是 C++ 中的函数风格转换写法,在纯 C 中是语法错误。 2. 即使是在 C++ 中,虽然 `int(i)` 是合法的,但这类题目通常基于 C 语言标准。在 C 语言语境下,这是错误的语法。 3. 另外,如果 `a` 已经被定义为整型,这种转换也是多余的,但主要错误在于语法格式不符合 C 语言规范。 ### 总结: * **A** 缺少分号,仅为表达式,非完整语句。 * **B** 是合法的自增语句,语法正确且有实际意义。 * **C** 试图给右值赋值,语法错误。 * **D** 使用了 C++ 风格的类型转换,在 C 语言中非法(应为 `(int)i`)。 因此,最合法且标准的语句是 **B**。
题目纠错
c语言选择判断题库

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

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