1.) ¿Cuál será el resultado del siguiente código?
#include <stdio.h> int main(void) { int y, z; int x = scanf("%d %d", &y, &z); printf("%d", x); return 0; }
Aporte:
12 10
a)12
b)2
c)Error de sintaxis
d)10
Answer : b
Explicación: scanf() devuelve el número de variables que almacenó con éxito.
2. ¿Cuál será el resultado del siguiente código?
#include <stdio.h> int main(void) { printf("%d", printf("geeksforgeeks")); return 0; }
a)Error de sintaxis
b)geeksforgeeks
c)geeksforgeeks13
d)13
Answer : c
Explicación:() devuelve la longitud de la salida (impresa por printf) como un número entero.
3. ¿Cuál será el resultado del siguiente código?
#include <stdio.h> int add(int a, int b) { if (a != 0 && b != 0) return printf("%*c%*c", a, '.', b, '.'); else return a != 0 ? a : b; } int main() { int A = 0, B = 0; scanf("%d %d", &A, &B); printf("Required sum is %d", add(A, B)); return 0; }
Aporte:
22 10
a)42
b)Error de compilación
c)La suma requerida es 32
d)32
Answer : c
Explicación: printf() agrega cualquier número sin usar el operador de suma.
4. ¿Cuál será el resultado del siguiente código?
#include <stdio.h> int main() { printf("%m"); return 0; }
a) Éxito
b)Error de compilación
c)%m
d)Ninguno de los anteriores.
Answer : a
Explicación: «%m» cuando se usa dentro de printf() imprime «Éxito». La conversión ‘%m’ es una extensión de la biblioteca GNU C.
5. ¿Cuál será el resultado del siguiente código?
#include <stdio.h> double m[] = { 7709179928849219.0, 771 }; int main() { m[1]-- ? m[0] *= 2, main() : printf((char*)m); }
a) C++ apesta
b)Error de compilación
c)714
d)770
Answer: a
Explicación:
el número 7709179928849219.0 tiene la siguiente representación binaria como un doble de 64 bits:
01000011 00111011 01100011 01110101 01010011 00101011 00101011 01000011
+^^^^^-^ ——– ——^— – ——– ——–
+ muestra la posición de la señal; ^ del exponente, y – de la mantisa (es decir, el valor sin el exponente).
Dado que la representación usa un exponente binario y una mantisa, al duplicar el número, el exponente se incrementa en uno. Este programa lo hace exactamente 771 veces, por lo que el exponente que comenzó en 1075 (representación decimal de 10000110011) se convierte en 1075 + 771 = 1846 al final; la representación binaria de 1846 es 11100110110. El patrón resultante se ve así:
01110011 01101011 01100011 01110101 01010011 00101011 00101011 01000011
——– ——– ——– ——– ——– ——– ——– ——–
0x73 ‘s’ 0x6B ‘k’ 0x63 ‘c’ 0x75 ‘u’ 0x53 ‘S’ 0x2B ‘+’ 0x2B ‘ +’ 0x43 ‘C’
Este patrón corresponde a la string que vemos impresa, solo que al revés. Al mismo tiempo, el segundo elemento de la array se convierte en cero, proporcionando un terminador nulo, lo que hace que la string sea adecuada para pasar a printf().
6. ¿Cuál será el resultado del siguiente código?
#include <stdio.h> int main() { printf("geeksforgeeks"); brk(0); }
a)geeksforgeeks
b)Error de compilación
c)El programa no terminará
d)Ninguno de los anteriores
Answer : a
Explicación: brk(0) finaliza el programa y actúa como declaración de retorno.
Este artículo es una contribución de Nikita Tiwari . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
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