In a row-major order, elements which are stored in adjacent locations constitute a row, whereas in a column-major order the elements which are stored in adjacent locations constitute a column.
Coming to the above example, if the order was column-major order, then a[1][1] and a[2][1] would be adjacent memory locations. However since &a[1][1] is 1000 and &a[2][1] is 1010, clearly this is not column-major order.
Therefore the answer should be row-major, with number of columns equaling 4, ie, array[] of array[4] of int. I have not come across "matrix major" order before. Wikipedia has a nice explanation on differences between row and column major order: https://en.wikipedia.org/wiki/Row-_and_column-major_order