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

1、第130题 (1.0分) 题号:167 下列语句中,不正确的是()。

A
 static char a[2]={1,2};
B
 static int a[2]={'1','2'};
C
 static char a[2]={'1','2','3'};
D
 static char a[2]={'1'};

答案解析

正确答案:C

解析:

这道题考查的是 C 语言中数组初始化的基本规则,特别是**初始化列表元素个数与数组定义长度之间的关系**。 ### 核心知识点 在 C 语言中,当定义数组并同时进行初始化时: 1. **初始化元素个数 < 数组长度**:剩余的元素会自动初始化为 0(对于字符型是 `\0`,整型是 `0`)。这是合法的。 2. **初始化元素个数 = 数组长度**:完全匹配,合法。 3. **初始化元素个数 > 数组长度**:**非法**。编译器会报错,因为试图将多于数组容量的数据存入数组,导致溢出。 --- ### 选项逐一分析 **A. `static char a[2]={1,2};`** * **分析**:定义了一个长度为 2 的字符数组 `a`,初始化列表中有 2 个整数 `{1, 2}`。 * **合法性**:合法。虽然用整数初始化字符数组,但 1 和 2 都在 `char` 的取值范围内,会发生隐式类型转换。元素个数等于数组长度,完全匹配。 * **结果**:正确。 **B. `static int a[2]={'1','2'};`** * **分析**:定义了一个长度为 2 的整型数组 `a`,初始化列表中有 2 个字符常量 `'1'` 和 `'2'`。 * **合法性**:合法。字符常量在 C 语言中本质上是整数(ASCII 码值),可以赋值给 `int` 类型。元素个数等于数组长度,完全匹配。 * **结果**:正确。 **C. `static char a[2]={'1','2','3'};`** * **分析**:定义了一个长度为 **2** 的字符数组 `a`,但初始化列表中提供了 **3** 个元素 `'1', '2', '3'`。 * **合法性**:**不合法**。初始化值的个数(3个)超过了数组定义的容量(2个)。这会导致编译错误("too many initializers")。 * **结果**:**错误**(符合题目要求选出的“不正确”项)。 **D. `static char a[2]={'1'};`** * **分析**:定义了一个长度为 2 的字符数组 `a`,初始化列表中只提供了 1 个元素 `'1'`。 * **合法性**:合法。第一个元素 `a[0]` 被初始化为 `'1'`,第二个元素 `a[1]` 会自动初始化为 `\0`(即 0)。 * **结果**:正确。 --- ### 结论 选项 **C** 试图用 3 个值初始化一个只能容纳 2 个元素的数组,违反了 C 语法规则。 因此,不正确的语句是 **C**。
题目纠错
c语言选择判断题库

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

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