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