PUERTA | GATE-CS-2016 (Conjunto 2) | Pregunta 22

El valor impreso por el siguiente programa es

void f(int* p, int m)
{
    m = m + 5;
    *p = *p + m;
    return;
}
void main()
{
    int i=5, j=10;
    f(&i, j);
    printf("%d", i+j);
}

(A) 10
(B) 20
(C) 30
(D) 40

Respuesta: (C)
Explicación:

#include"stdio.h"

void f(int* p, int m)
{
    m = m + 5;
    *p = *p + m;
    return;
}
int main()
{
    int i=5, j=10;
    f(&i, j);
    printf("%d", i+j);
}

Para i, se pasa la dirección. Para j, se pasa el valor. Entonces, en la función f, p contendrá la dirección de i y m contendrá el valor 10. La primera declaración de f() cambiará m a 15. Luego, se agregará 15 al valor en la dirección p. Hará i = 5+15 = 20. j seguirá siendo 10. imprimir declaración imprimirá 20+10 = 30. Entonces la respuesta es (C).

Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *