Consider the following C function definition. int f(int x, int y) { for (int i…

2024

Consider the following C function definition.

                int f(int x, int y) {
                    for (int i = 0; i < y; i++) {
                        x = x + x + y;
                    }
                    return x;
                }

Which of the following statements is/are TRUE about the above function?

  1. A.

    If the inputs are x=20, y=10, then the return value is greater than 220

  2. B.

    If the inputs are x=20, y=20, then the return value is greater than 220

  3. C.

    If the inputs are x=20, y=10, then the return value is less than 210

  4. D.

    If the inputs are x=10, y=20, then the return value is greater than 220

Attempted by 235 students.

Show answer & explanation

Correct answer: B, D

Key idea: each loop iteration replaces x by 2*x + y, so after y iterations the value follows a simple recurrence.

  • Recurrence: x_{k+1} = 2*x_k + y with x_0 = initial x.

  • Closed form after n iterations: x_n = 2^n * x_0 + y*(2^n - 1).

Evaluate each given case (interpreting the notation like "2 20" as 2^20):

  • For x = 20, y = 10: 2^10 = 1024, so final x = 1024*20 + 10*(1024 - 1) = 20480 + 10230 = 30710. Compare: 30710 < 2^20 (1,048,576) and 30710 > 2^10 (1024).

  • For x = 20, y = 20: 2^20 = 1,048,576, so final x = 2^20*20 + 20*(2^20 -1) = 40*2^20 - 20 = 41,943,020, which is > 2^20.

  • For x = 20, y = 10 (statement saying it is less than 2^10): as above final is 30710, which is > 2^10, so that claim is false.

  • For x = 10, y = 20: final x = 2^20*10 + 20*(2^20 -1) = 30*2^20 - 20 = 31,457,260, which is > 2^20.

Conclusion: if the ambiguous notation is interpreted as exponentiation (e.g., "2 20" = 2^20), the true statements are the ones about (x=20, y=20) and (x=10, y=20); the statements about (x=20, y=10) being greater than 2^20 or less than 2^10 are incorrect. The answer key provided with the question appears inconsistent with this correct evaluation.

A video solution is available for this question — log in and enroll to watch it.

Explore the full course: Gate Guidance By Sanchit Sir