Consider the following two C code segments. Y and X are one- and…
GATE · 2015 · CS · Set 3 · Computer Science & IT
Consider the following two C code segments. Y and X are one- and two-dimensional arrays of size n and n x n respectively, where 2 <= n <= 10. Assume that in both code segments, elements of Y are initialized to 0 and each element X[i][j] of array X is initialized to i+j. Further assume that when stored in main memory all elements of X are in the same main memory page frame.
Code segment 1:
// initialize elements of Y to 0
// initialize elements of X[i][j] of X to i+j
for (i=0; i<n; i++)
Y[i] += X[0][i];Code segment 2:
// initialize elements of Y to 0
// initialize elements of X[i][j] of X to i+j
for (i=0; i<n; i++)
Y[i] += X[i][0];Which of the following statements is/are correct?
S1: Final contents of array Y will be same in both code segments
S2: Elements of array X accessed inside the for loop shown in code segment 1 are contiguous in main memory
S3: Elements of array X accessed inside the for loop shown in code segment 2 are contiguous in main memory
- A.
Only S2 is correct
- B.
Only S3 is correct
- C.
Only S1 and S2 are correct
- D.
Only S1 and S3 are correct
Attempted by 95 students.
Sign up free to check your answer
Sign up freeLoading lesson…