¿Cuál es la salida del siguiente programa?
(Suponga que se incluyen las directivas de preprocesador adecuadas y que no hay ningún error de sintaxis)
main ( ) { char S[ ] = "ABCDEFGH"; printf ("%C", *(&S[3])); printf ("%s", S + 4); printf ("%u", S); /* Base address of S is 1000 */ }
(A) ABCDEFGH1000
(B) CDEFGH1000
(C) DDEFGHH1000
(D) DEFGH1000
Respuesta: (D)
Explicación:
main ( ) { char S[ ] = "ABCDEFGH"; printf ("%C", *(&S[3])); printf ("%s", S + 4); printf ("%u", S); /* Base address of S is 1000 */ }
Del programa anterior:
printf («%C», *(&S[3])); imprimirá el carácter en *(&S[3]), es decir, D.
printf (“%s”, S + 4); imprimirá una string a partir de S + 4, es decir, EFGH.
imprimirf («%u», S); imprimirá la dirección de S, es decir, 1000.
Dado que no hay una nueva instrucción de línea, DEFGH1000 será la salida.
Entonces, la opción (D) es correcta.
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