Engineering Questions with Answers - Multiple Choice Questions

# Data Structure MCQ – Matrix

1 - Question

What is the order of a matrix?
a) number of rows X number of columns
b) number of columns X number of rows
c) number of rows X number of rows
d) number of columns X number of columns

Explanation: The order of the matrix is the number of rows X number of columns.

2 - Question

Which of the following property does not hold for matrix multiplication?
a) Associative
b) Distributive
c) Commutative

Explanation: In matrix multiplication, AB != BA

3 - Question

How do you allocate a matrix using a single pointer in C?(r and c are the number of rows and columns respectively)
a) int *arr = malloc(r * c * sizeof(int));
b) int *arr = (int *)malloc(r * c * sizeof(int));
c) int *arr = (int *)malloc(r + c * sizeof(int));
d) int *arr = (int *)malloc(r * c * sizeof(arr));

Explanation: Total number of elements in the matrix will be r*c

4 - Question

Select the code snippet which performs matrix multiplication.(a and b are the two given matrices, resultant marix is c)
a)

```for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
for (int k = 0; k < n; k++)
{
c[i][j] = c[i][j] + a[i][k] * b[k][j];
}
}
}```

b)

```for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
for (int k = 0; k < n; k++)
{
c[i][j] = c[i][j] * a[i][k] * b[k][j];
}
}
}```

c)

```for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
for (int k = 0; k < n; k++)
{
c[i][j] = c[i][j] + a[i][k] + b[k][j];
}
}
}```

d)

```for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
for (int k = 0; k < n; k++)
{
c[i][j] = c[i][j] + a[i][j] + b[k][j];
}
}
}```

Explanation: The corresponding elements from the row and column are multiplied and a cumulative sum is formed.

5 - Question

What does the following piece of code do?

for(int i = 0; i < row; i++)
{
for(int j = 0; j < column; j++)
{
if(i == j)
sum = sum + (array[i][j]);
}
}
System.out.println(sum);
a) Normal of a matrix
b) Trace of a matrix
c) Square of a matrix
d) Transpose of a matrix

Explanation: Trace of a matrix is the sum of the principal diagonal elements.

6 - Question

If row-major order is used, how is the following matrix stored in memory?
a b c
d e f
g h i
a) ihgfedcba
b) abcdefghi

Explanation: It starts with the first element and continues in the same row until the end of row is reached and then proceeds with the next row. C follows row-major order.

7 - Question

If column-major order is used, how is the following matrix stored in memory?
a b c
d e f
g h i
a) ihgfedcba
b) abcdefghi

Explanation: It starts with the first element and continues in the same column until the end of column is reached and then proceeds with the next column. Fortran follows column-major order.

8 - Question

Which of the following don’t use matrices?
a) In solving linear equations
b) Image processing
c) Graph theory
d) Sorting numbers

Explanation: Numbers uses arrays(1-D) for sorting not matrices(2-D arrays). Solving linear equations is a separate field in Mathematics involving matrices, Image processing stores the pixels in the form of matrices, and the graphs are represented with the help of matrices to indicate the nodes and edges.

9 - Question

Which of the following is an advantage of matrices?
a) Internal complexity
b) Searching through a matrix is complex
c) Not space efficient
d) Graph Plotting

Explanation: Adjacency and Incidence Matrices are used to store vertices and edges of a graph. It is an advantage to plot graphs easily using matrices. But Time complexity of a matrix is O(n2) and sometimes the internal organization becomes tedious. They are all disadvantages of matrices.

10 - Question

Matrix A when multiplied with Matrix C gives the Identity matrix I, what is C?
a) Identity matrix
b) Inverse of A
c) Square of A
d) Transpose of A