单选题
1、第267题 (1.0分) 题号:649 若有说明: int a[3][4]={0};则下面正确的叙述是()。
A
只有元素a[0][0]可得到初值0
B
此说明语句不正确
C
数组a中各元素都可得到初值,但其值不一定为0
D
数组a中每个元素均可得到初值0
答案解析
正确答案:D
解析:
**解析:**
在 C 语言中,数组的初始化遵循以下规则:
1. **部分初始化与默认值**:
当对数组进行初始化时,如果提供的初始值个数少于数组元素的总个数,或者像本题一样使用 `{0}` 这种形式,编译器会将未显式指定初值的剩余元素自动初始化为 **0**(对于整型数组)或空字符(对于字符数组等)。
2. **`{0}` 的特殊含义**:
语句 `int a[3][4]={0};` 的含义是将数组 `a` 的第一个元素 `a[0][0]` 显式初始化为 0。根据 C 语言标准,其余所有未被显式初始化的元素(即 `a[0][1]` 到 `a[2][3]`)都会自动被初始化为 0。因此,整个二维数组的所有 12 个元素(3行 × 4列)的值均为 0。
3. **选项分析**:
* **A 错误**:不仅是 `a[0][0]`,其他元素也会因为默认初始化规则而得到值 0。
* **B 错误**:该说明语句是完全合法且常见的 C 语言语法。
* **C 错误**:虽然各元素都得到了初值,但对于 `int` 类型,未指定的部分确定性地被初始化为 0,而不是“不一定为 0”。
* **D 正确**:数组 `a` 中的所有元素(共 12 个)均被初始化为 0。
**结论:**
正确答案是 **D**。
题目纠错
c语言选择判断题库
相关题目
单选题
1、〖第32题〗603) 以下符合C语言语法的赋值表达式是()。
单选题
1、〖第31题〗601) 下面四个选项中,均是不合法的浮点数的选项是()。
单选题
1、〖第30题〗730) 若以”a+”方式打开一个已存在的文件,则以下叙述正确的是()。
单选题
1、〖第29题〗734) 以下可作为函数fopen中第一个参数的正确格式是()。
单选题
1、〖第28题〗400) 下列语句的输出结果是()。 printf(”%d\n”,(int)(2.5+3.0)/3);
单选题
1、〖第27题〗47) 执行下列语句后,a和b的值分别为()。 int a,b; a=1+'a'; b=2+7%-4-'A';
单选题
1、〖第26题〗664) 以下正确的函数定义形式是()。
单选题
1、〖第25题〗01) 以下数据中,不正确的数值或字符常量是()。
单选题
1、〖第24题〗92) 下面选择中正确的赋值语句是(设char a[5],*p=a;)()。
单选题
1、〖第23题〗647) 以下能对二维数组a进行正确初始化的语句是()。
