题目
以下数组定义中错误的是 。A. int x[][3] = (0);B. int x[2][3] = ({1, 2), (3, 4), (5, 6)};C. int x[][3] = (1, 2, 3), (4, 5, 6)};D. int x[2][3] = (1, 2, 3, 4, 5, 6);
以下数组定义中错误的是 。
- A. int x[][3] = {0};
- B. int x[2][3] = {{1, 2}, {3, 4}, {5, 6}};
- C. int x[][3] = {1, 2, 3}, {4, 5, 6}};
- D. int x[2][3] = {1, 2, 3, 4, 5, 6};
题目解答
答案
B
解析
步骤 1:分析选项 A
选项 A 中的数组定义为 int x[][3] = {0};,这是一个二维数组,其中第一维的大小未指定,第二维的大小为 3。初始化时,数组中的所有元素都被设置为 0。这是合法的数组定义。
步骤 2:分析选项 B
选项 B 中的数组定义为 int x[2][3] = {{1, 2}, {3, 4}, {5, 6}};,这是一个 2 行 3 列的二维数组。但是,初始化时,只有前两行被赋值,第三行没有被赋值。这是非法的数组定义,因为数组的大小和初始化的元素数量不匹配。
步骤 3:分析选项 C
选项 C 中的数组定义为 int x[][3] = {1, 2, 3}, {4, 5, 6}};,这是一个二维数组,其中第一维的大小未指定,第二维的大小为 3。但是,初始化时,数组的元素被错误地分组。这是非法的数组定义,因为数组的初始化语法错误。
步骤 4:分析选项 D
选项 D 中的数组定义为 int x[2][3] = {1, 2, 3, 4, 5, 6};,这是一个 2 行 3 列的二维数组。初始化时,数组中的所有元素都被赋值。这是合法的数组定义。
选项 A 中的数组定义为 int x[][3] = {0};,这是一个二维数组,其中第一维的大小未指定,第二维的大小为 3。初始化时,数组中的所有元素都被设置为 0。这是合法的数组定义。
步骤 2:分析选项 B
选项 B 中的数组定义为 int x[2][3] = {{1, 2}, {3, 4}, {5, 6}};,这是一个 2 行 3 列的二维数组。但是,初始化时,只有前两行被赋值,第三行没有被赋值。这是非法的数组定义,因为数组的大小和初始化的元素数量不匹配。
步骤 3:分析选项 C
选项 C 中的数组定义为 int x[][3] = {1, 2, 3}, {4, 5, 6}};,这是一个二维数组,其中第一维的大小未指定,第二维的大小为 3。但是,初始化时,数组的元素被错误地分组。这是非法的数组定义,因为数组的初始化语法错误。
步骤 4:分析选项 D
选项 D 中的数组定义为 int x[2][3] = {1, 2, 3, 4, 5, 6};,这是一个 2 行 3 列的二维数组。初始化时,数组中的所有元素都被赋值。这是合法的数组定义。