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

1、第44题 (1.0分) 题号:496 double x;scanf( );不可以赋值给x变量的常量是()。

A
123
B
100000
C
 A'
D
 ”abc”

答案解析

正确答案:D

解析:

这道题考察的是 C 语言中 `scanf` 函数的用法以及数据类型的匹配规则,同时也涉及常量的类型识别。 **正确答案:D** ### 详细解析: 1. **题目分析**: * 变量 `x` 被定义为 `double` 类型(双精度浮点型)。 * 题目问的是“不可以赋值给 x 变量的常量”。虽然题干中 `scanf( );` 写法不完整(通常应为 `scanf("%lf", &x);`),但核心考点在于:**哪个选项代表的常量值或类型无法合法地转换或赋值给一个 double 类型的变量**,或者在 `scanf` 的语境下,哪种输入格式是完全错误的。 * 更准确的理解是:题目可能意在考察哪些常量**本身**不能作为数值赋给 double 变量,或者在 `scanf` 读取时,哪种格式符对应的输入会导致错误。但结合选项来看,这是一道关于**常量类型兼容性**的基础题。 2. **选项逐一分析**: * **A. `123`** * 这是一个整型常量(int)。 * 在 C 语言中,整型可以自动隐式转换为双精度浮点型(double)。 * 如果使用 `scanf("%lf", &x)` 并输入 `123`,或者在代码中执行 `x = 123;`,都是完全合法的,`x` 的值将变为 `123.0`。 * **结论**:可以赋值。 * **B. `100000`** * 这也是一个整型常量(int)。 * 同样,整型可以隐式转换为 double。 * `x = 100000;` 是合法的,`x` 的值将变为 `100000.0`。 * **结论**:可以赋值。 * **C. `'A'`** (注意:原题中显示为 ` A' `,推测为字符常量 `'A'`) * 这是一个字符常量(char)。 * 在 C 语言中,字符本质上是一个整数(ASCII 码值)。`'A'` 的 ASCII 值是 65。 * 字符型可以隐式转换为整型,进而转换为双精度浮点型。 * `x = 'A';` 是合法的,`x` 的值将变为 `65.0`。 * **结论**:可以赋值。 * **D. `"abc"`** * 这是一个**字符串常量**(string literal),其类型是 `char *`(指向字符数组的指针)或 `char[]`。 * **关键错误点**:字符串 `"abc"` 代表的是一个内存地址(指针),而不是一个数值。 * 你不能将一个字符串指针直接赋值给一个 `double` 类型的变量。即 `x = "abc";` 是**非法**的,编译器会报错(类型不兼容:不能将 `char *` 转换为 `double`)。 * 即使是在 `scanf` 的语境下,如果用 `%s` 读取字符串到 `&x`(double 地址),也是严重的类型错误和内存越界风险;如果用 `%lf` 读取,输入 `"abc"` 会导致读取失败,但题目问的是“常量”,侧重于赋值操作的合法性。从常量类型角度看,字符串常量无法转化为 double 数值。 * **结论**:**不可以**赋值。 ### 总结: * 整数(A、B)和字符(C)都可以隐式转换为 `double` 类型。 * 字符串(D)是指针类型,不能转换为 `double` 数值类型,因此不能赋值给 `double` 变量 `x`。 故答案选 **D**。
题目纠错
c语言选择判断题库

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

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