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

1、第271题 (1.0分) 题号:588 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是()。

A
1
B
2
C
2
D
2.5

答案解析

正确答案:C

解析:

**解析:** 本题考查 C 语言中逗号表达式、赋值运算符以及数据类型转换的规则。 1. **分析表达式结构**: 表达式为 `x=1, y=x+3/2`。这是一个逗号表达式,其运算顺序是从左到右依次计算各个子表达式,整个逗号表达式的值是**最后一个子表达式的值**。 2. **逐步计算**: * **第一步:计算 `x=1`** * 将整数 `1` 赋值给 double 类型的变量 `x`。 * 发生隐式类型转换,`x` 的值变为 `1.0`。 * 该子表达式的值为 `1.0`。 * **第二步:计算 `y=x+3/2`** * 首先计算加法右侧的 `3/2`。在 C 语言中,两个整数相除,结果仍为整数(截断小数部分)。因此,`3/2` 的结果是 `1`(而不是 1.5)。 * 接下来计算 `x + 1`。此时 `x` 为 `1.0`(double 类型),`1` 为 int 类型。根据类型提升规则,int 会被提升为 double,即 `1.0 + 1.0`。 * 结果为 `2.0`。 * 将 `2.0` 赋值给 double 类型的变量 `y`,所以 `y` 的值为 `2.0`。 * 该子表达式(赋值表达式)的值即为赋值后 `y` 的值,也就是 `2.0`。 3. **确定最终结果**: * 逗号表达式的值取最后一个子表达式 `y=x+3/2` 的值,即 `2.0`。 * 题目问的是表达式的值。虽然结果是 double 类型的 2.0,但在选项中没有区分 2 和 2.0 的格式差异,通常数值上等价于 2。 * 观察选项: A. 1 B. 2 C. 2 D. 2.5 * 这里选项 B 和 C 都是 2,可能是排版重复或原题有误,但根据计算结果,数值应为 2。如果必须选一个且答案为 C,则选择 C。需要注意的是,如果题目考察的是精度或类型显示,2.0 在数值上等于 2。而 D 选项 2.5 是常见的干扰项,误以为 `3/2` 等于 1.5。 **易错点提示:** * 很多初学者会错误地认为 `3/2` 等于 `1.5`,从而得出 `1.0 + 1.5 = 2.5`,进而误选 D。切记:**整数除以整数,结果还是整数**。若要得到 1.5,应写成 `3.0/2` 或 `3/2.0`。 **结论:** 表达式的值为 2.0,对应选项中的数值 2。 故正确答案为 **C**(注:B 和 C 选项内容相同,均为正确数值,依题库标准答案选 C)。
题目纠错
c语言选择判断题库

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

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