ЁЯУв Too many exams? DonтАЩt know which one suits you best? Book Your Free Expert ЁЯСЙ call Now!


    Question

    A C function print_matrix(int rows, int cols, int

    matrix[rows][cols]) is designed to print a matrix. #include void print_matrix(int rows, int cols, int matrix[rows][cols]) { ┬а ┬а for (int i = 0; i
    A It will print the matrix correctly. Correct Answer Incorrect Answer
    B It will print the matrix and then attempt to access memory out of bounds, potentially causing a segmentation fault. Correct Answer Incorrect Answer
    C It will print only the first row. Correct Answer Incorrect Answer
    D It will print only the first column. Correct Answer Incorrect Answer
    E A compile-time error will occur due to incorrect loop bounds. Correct Answer Incorrect Answer

    Solution

    Correct Answer: B (The outer loop i <= rows will iterate for i = 0, 1, 2. For i = 2, it tries to access matrix[2], which is out of bounds for a 2-row matrix (indices 0 and 1).) тАв Dry Run: o Call print_matrix(2, 3, my_matrix): rows is 2, cols is 3. o The outer loop for (int i = 0; i <= rows; i++) will iterate for i = 0, i = 1, and i = 2. o When i = 0: The first row (matrix[0]) is printed correctly. o When i = 1: The second row (matrix[1]) is printed correctly. o When i = 2: The loop attempts to access matrix[2]. For a 2x3 matrix, the valid row indices are 0 and 1. Accessing matrix[2] is an out-of-bounds memory access. o This out-of-bounds access will lead to undefined behavior, most likely a segmentation fault (program crash). тАв Why Correct Answer (B): It will print the matrix and then attempt to access memory out of bounds, potentially causing a segmentation fault. o The first two rows will be printed correctly. Then, the loop will try to access a non-existent third row (matrix[2]), causing a memory access violation.

    Practice Next
    More IT Operating System Questions
    ask-question