以下能正确定义数组并正确赋初值的语句是()。 a. int n=5, b[n][n]; b. int a[1][2]={{1}, {3}}; c. int c[2][ ]={{1, 2}, {3, 4}}; d. int d[3][2]={{1, 2}, {34}};
时间: 2023-05-31 21:18:49 浏览: 1352
C语言第五章复习题 5 数组.doc
### 回答1:
正确的语句是b. int a[1][2]={{1}, {3}};和d. int d[3][2]={{1, 2}, {34}};,它们都定义了二维数组并正确赋初值。a选项中,数组b的第一维大小n是变量,不符合定义数组的规则;c选项中,第二维大小未指定,也不符合定义数组的规则。
### 回答2:
正确的语句是b和d。
选项b中,先定义了一个整数变量n并赋值为5,但是在定义二维数组b时使用了n这个变量,这是错误的,因为数组的大小必须是常量。如果想要定义n*N的二维数组,应该使用动态内存分配来实现。
选项c中,定义了一个大小为2*N的二维数组c,但是第二维的大小未指定,这是错误的。在定义数组时,必须指定每个维度的大小。
选项d中,定义了一个大小为3*2的二维数组d,并且正确地赋初值。每个花括号内部都是对应行的元素,如果列数不足会自动补零。
因此,选项b和d都是正确的。选项a和c都存在错误。在定义数组时,必须指定每个维度的大小,并且大小必须是常量。赋初值时,需要注意数组的维度和元素的个数要一致。
### 回答3:
正确的语句是b、c、d,即选项b、c、d中的语句都可以正确的定义数组并赋初值。
选项a中,虽然第一个语句成功定义了变量n为5,但是第二个语句中定义的数组b[n][n]是不合法的。在定义数组时,方括号内需要指明数组的大小,而数组的大小必须是常量表达式。变量n虽然在第一行中被定义为常量5,但是在第二行中使用n定义数组大小是不合法的,因为n是变量,而不是常量表达式。
选项b中,定义了一个2行1列的数组a,并指定了初值。由于该数组是一维数组,所以只需要使用一个大括号括起来所有的初值,并用逗号分隔即可。
选项c中,定义了一个2行未知列数的数组c,并指定了初值。由于对于已知行数的二维数组,每一行的列数必须相同,所以使用空方括号[ ]表示未定列数,而在实际赋初值时,必须指定具体的列数,因为初值确定了每一行的列数。
选项d中,定义了一个3行2列的数组d,并指定了初值。初值的第二行只有一个元素,由于每行必须有两个元素,所以缺失的元素会被自动补0。
阅读全文