单选题
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语言选择判断题库
相关题目
单选题
1、第215题 (1.0分) 题号:162 设j和k都是int类型,则for循环语句 for(j=0,k=0;j<=9&&k!=876;j++) scanf(”%d”,&k);()。
单选题
1、第214题 (1.0分) 题号:192 下面选择中正确的赋值语句是(设char a[5],*p=a;)()。
单选题
1、第213题 (1.0分) 题号:600 若有说明语句:char c='\72';则变量c()。
单选题
1、第212题 (1.0分) 题号:688 若a=1,b=2则 a|b的值是()。
单选题
1、第211题 (1.0分) 题号:622 putchar函数可以向终端输出一个()。
单选题
1、第210题 (1.0分) 题号:493 C语言的注释定界符是()。
单选题
1、第209题 (1.0分) 题号:177 以下描述中,正确的是()。
单选题
1、第208题 (1.0分) 题号:577 在C语言中,int、char和short三种类型数据在内存中所占用的字节数()。
单选题
1、第207题 (1.0分) 题号:201 当定义一个结构体变量时,系统分配给它的内存是()。
单选题
1、第206题 (1.0分) 题号:624 以下关于运算符优先顺序的描述中正确的是()。
