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

1、〖第2题〗441) 下列语句中,不正确的是()。

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(对于静态存储期 `static` 的变量,即使不显式初始化也是 0)。 2. 如果初始化列表中的元素个数**等于**数组大小,所有元素都被正确初始化。 3. 如果初始化列表中的元素个数**多于**数组大小,编译器会报错(Error),因为这是非法的内存访问定义,超出了数组边界。 我们逐项分析: * **A. `static char a[2]={1,2};`** * 数组 `a` 大小为 2。 * 初始化列表中有 2 个元素:`1` 和 `2`。 * 元素个数等于数组大小,合法。`a[0]=1`, `a[1]=2`。 * **结论:正确。** * **B. `static int a[2]={'1','2'};`** * 数组 `a` 大小为 2,类型为 `int`。 * 初始化列表中有 2 个字符常量 `'1'` 和 `'2'`。在 C 语言中,字符常量可以提升为整数(ASCII 码值)。 * 元素个数等于数组大小,合法。`a[0]='1'` (即 49), `a[1]='2'` (即 50)。 * **结论:正确。** * **C. `static char a[2]={'1','2','3'};`** * 数组 `a` 大小为 2。 * 初始化列表中有 **3** 个元素:`'1'`, `'2'`, `'3'`。 * 初始化元素的个数(3)**大于**数组定义的大小(2)。 * 这违反了 C 语言语法规定,编译器会抛出“too many initializers”(初始化项过多)的错误。 * **结论:不正确。** * **D. `static char a[2]={'1'};`** * 数组 `a` 大小为 2。 * 初始化列表中只有 1 个元素:`'1'`。 * 元素个数少于数组大小,合法。`a[0]='1'`,剩余的 `a[1]` 会自动初始化为 `0`(因为它是 `static` 变量,且部分初始化后剩余部分补零)。 * **结论:正确。** ### 最终答案: 题目要求选出**不正确**的语句,因此答案是 **C**。
题目纠错
c语言选择判断题库

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

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