PUERTA | Sudo GATE 2020 Mock I (27 de diciembre de 2019) | Pregunta 62

Considere el siguiente programa en C:

#include <stdio.h>
#include <string.h>
  
void geek1(char *s1, char *s2) {
    char *temp;
    temp = s1;
    s1 = s2;
    s2 = temp;
}
void geek2(char **s1, char **s2) {
    char *temp;
    temp = *s1;
    *s1 = *s2;
    *s2 = temp;
}
int main() {
    char *str1 = "for geek", *str2 = "by geek";
    geek1(str1, str2);
    printf("%s %s", str1, str2);
    geek2(&str1, &str2);
    printf(" %d", (int) strlen(str1));
    return 0;
}

La última impresión se imprimirá _______________.
(A) 2
(B) 7
(C) 3
(D) Ninguno de estos

Respuesta: (B)
Explicación: La primera función geek1 no intercambiará strings, por lo que la primera impresión es geek por geek.
Ahora, la función geek2 intercambiará la string y strlen(str1) devolverá la longitud de la string «por geek», que es 7 .

La opción (B) es correcta.
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 *