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

1、〖第9题〗656) 以下数组定义中不正确的是()。

A
 int a[2][3];
B
 int b[][3]={0,1,2,3};
C
 int c[100][100]={0};
D
 int d[3][]={{1,2},{1,2,3},{1,2,3,4}};

答案解析

正确答案:D

解析:

这道题考查的是 C 语言中二维数组的定义和初始化规则。我们需要逐一分析每个选项,找出不符合语法规则的那一个。 **选项分析:** * **A. `int a[2][3];`** * **分析**:这是标准的二维数组定义方式。明确指定了行数为 2,列数为 3。 * **结论**:正确。 * **B. `int b[][3]={0,1,2,3};`** * **分析**:在二维数组初始化时,如果提供了初始值列表,可以省略第一维(行数)的大小,编译器会根据初始值的个数和第二维(列数)的大小自动计算行数。这里列数为 3,初始值有 4 个,编译器会将其处理为两行(第一行 `{0,1,2}`,第二行 `{3,0,0}`,不足补零),因此行数为 2。 * **结论**:正确。 * **C. `int c[100][100]={0};`** * **分析**:定义了大小为 $100 \times 100$ 的二维数组,并进行了初始化。`{0}` 表示将数组的第一个元素初始化为 0,其余未显式指定的元素也会默认初始化为 0。这是合法的完全或部分初始化方式。 * **结论**:正确。 * **D. `int d[3][]={{1,2},{1,2,3},{1,2,3,4}};`** * **分析**:在 C 语言中,定义二维数组时,**第二维(列数)的大小不能省略**。编译器需要知道每一行有多少个元素,才能正确地计算内存布局和地址偏移。虽然第一维(行数)在特定条件下可以省略,但第二维必须明确指定。此外,即使假设列数被推断,C 语言也不支持这种 jagged array(参差不齐的数组,即每行长度不同)的直接定义方式,二维数组在内存中是连续存储的矩形块,每行的列数必须固定。 * **结论**:**不正确**。 **总结:** C 语言规定,在定义二维数组时,可以省略第一维的大小(前提是进行了初始化),但**绝对不能省略第二维的大小**。选项 D 省略了第二维的大小,因此是错误的定义。 **正确答案:D**
题目纠错
c语言选择判断题库

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

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