题目
3.若有定义int a[2][3];则合法引用数组元素的是()。A. a[0][1/2]B. a[1][2]C. a[2][3]D. a[1][3]
3.若有定义int a[2][3];则合法引用数组元素的是()。
A. a[0][1/2]
B. a[1][2]
C. a[2][3]
D. a[1][3]
题目解答
答案
A. a[0][1/2]
解析
本题考查二维数组元素的合法引用。解题思路是明确二维数组的下标范围,对于定义为 int a[m][n]; 的二维数组,其行下标范围是从 0 到 m - 1,列下标范围是从 0 到 n - 1,然后依次分析每个选项的下标是否在合法范围内。
选项A
对于表达式 a[0][1/2],先计算 1/2,在C语言中,两个整数相除结果为整数,所以 1/2 的结果为 0。那么该表达式就变为 a[0][0],行下标为 0,列下标为 0,对于定义 int a[2][3]; 来说,行下标范围是 0 到 1,列下标范围是 0 到 2,此下标是合法的。
选项B
对于表达式 a[1][2],行下标为 1,列下标为 2。虽然行下标 1 在 0 到 1 的范围内,但列下标 2 超出了 0 到 2 的范围(因为数组下标是从 0 开始的,合法列下标最大为 2 - 1 = 1),所以该引用不合法。
选项C
对于表达式 a[2][3],行下标为 2,列下标为 3。行下标 2 超出了 0 到 1 的范围,列下标 3 超出了 0 到 2 的范围,所以该引用不合法。
选项D
对于表达式 a[1][3],行下标为 1,列下标为 3。行下标 1 在 0 到 1 的范围内,但列下标 3 超出了 0 到 2 的范围,所以该引用不合法。