Pregunta 1
¿Cuántas veces se llamará a main()?
C
main() { printf("\n main Called Again"); main(); }
Respuesta: Bucle infinito
Descripción: No hay ninguna condición en main() para detener la llamada recursiva de main(), por lo tanto, se llamará un número infinito de veces.
Pregunta 2
Adivina la salida del siguiente programa:
C
#include<stdio.h> int main() { int x = 10; float y = 10.0; if (x == y) printf("x and y are equal"); else printf("x and y are not equal"); }
Respuesta: x e y son iguales
Descripción: si (x == y) aquí estamos comparando si (10 == 10.0), por lo tanto, esta condición se cumple. Debido a que no podemos comparar int
y float, entonces int se convierte en float y luego se compara. Por lo tanto, imprime «x e y son iguales».
Pregunta 3
¿cuál será el resultado del siguiente código?
C
#include<string.h> main() { char *str1 = "abcd"; char str2[] = "abcd"; printf("%d %d %d", sizeof(str1), sizeof(str2), sizeof("abcd")); }
Respuesta: 8 5 5
Descripción:
Se imprime el primer tamaño del puntero de carácter, que es 8 en la máquina en la que se ejecuta este programa. Luego se imprime el tamaño de la string str2 cuyo tamaño es 5 (incluido el carácter de terminación ‘/0’). El tercero es similar al segundo.
Pregunta 4
¿Cuál será la salida del siguiente programa c?
C
#include "stdio.h" int main() { int _ = 18; int __ = 38; int ___; ___ = _ + __; printf ("%i", ___); return 0; }
Respuesta: 56
Descripción: el nombre de la variable solo puede tener un guión bajo.
Pregunta 5
Qué se imprimirá como resultado de la siguiente operación:
C
main() { int x = 41, y = 43; x = y++ + x++; y = ++y + ++x; printf ("%d %d", x , y); }
Respuesta: 86 130
Descripción: en realidad depende del compilador. Después de x = y++ + x++, el valor de x se vuelve 85 y y se convierte en 44, y y = ++y + ++x se calculará como y = (44) + (86). Después del cálculo y se convierte en 130.
Pregunta 6
Qué se imprimirá como resultado de la siguiente operación:
C
main() { int x = 7; printf ("%d, %d, %d", x, x<<5, x>>5); }
Respuesta: 7, 224, 0
Descripción: Como x = 7, el primer %d da 7, el segundo %d tomará el valor de x después de cambiarlo a la izquierda cinco veces, y el cambio se realiza después de convertir los valores a binario, valor binario de 7 (000111) se desplazará a la izquierda dos veces para convertirlo en 224 binario (11100000), por lo que x<<5 es 224 y como el desplazamiento a la izquierda no afecta el valor original de x, sigue siendo 5, por lo que el tercer %d también mostrará 0.
Pregunta 7
¿Cuál será la salida?
C
main() { if (1, 0) printf ("True"); else printf ("False"); }
Respuesta: Falso
Descripción: el operador coma (,) devuelve el valor que se encuentra en el lado derecho de , y por lo tanto, la declaración if se convierte en if (0).
Pregunta 8
¿Cuál es la salida?
C
#include<stdio.h> int main() { printf ("%d", printf("%d", 12345678)); return 0; }
Respuesta : 123456788
Descripción : Observe los 8 extra al final. printf() devuelve el número de caracteres impresos con éxito en la pantalla.
Pregunta 9
¿Cuál es la salida?
C
void main() { printf ("2 + 3 = %d", 2+3); }
Respuesta: 2 + 3 = 5
Descripción: dado que el especificador de formato es %d y ambos son números enteros (2, 3), agregará e imprimirá un valor entero.
Pregunta 10
¿Cuál es la salida?
C
#include<stdio.h> main() { int i = 0; if (i = 55, 0, 10, 0) printf ("Test Skills %d", i); else printf ("C Programming %d", i); }
Respuesta: Programación en C 55
Descripción: i=55 se evalúa primero y su valor se descarta. 0 evaluado entonces y descartado. 10 evaluados entonces y descartados. Luego, se evalúa el 0 más a la derecha y será el valor de la expresión completa (pero no el valor de las subexpresiones) en la condición if y hará que la condición sea falsa.
Pregunta 11
¿cuál es la salida?
C
#include<stdio.h> int main() { char arr[5] = "World is beautiful"; printf ("%s", arr); return 0; }
Respuesta: Mundo
También se imprime una advertencia «4:19: advertencia: la string de inicialización para la array de caracteres es demasiado larga [habilitada de forma predeterminada]»
Descripción: el tamaño de cualquier array de caracteres no puede ser menor que el número de caracteres en cualquier string que ha asignado. El tamaño de una array puede ser igual (excluyendo el carácter nulo) o mayor que pero nunca menor que.
Pregunta 12
¿Cuál es el resultado del siguiente programa?
C
#include<stdio.h> void main() { int a = 2; switch (a) { case 4: printf ("A"); break; case 3: printf ("B"); default : printf("C"); case 1 : printf ("D"); break; case 5 : printf ("E"); } }
Respuesta:
Descripción del CD : En la declaración de cambio, el valor predeterminado debe mencionarse después de todos los casos de cambio. En este caso, se ejecuta en el medio y todos los casos posteriores al valor predeterminado se ejecutan antes de una declaración de interrupción.
Pregunta 13
¿Cuál es la salida?
C
#include<stdio.h> int main() { int x = 100, y = 200; if ( ++x || ++y) printf ("x = %d, y = %d", x, y); else printf ("condition failed"); return 0; }
Respuesta: x = 101, y = 200
Descripción: en la condición if, la primera parte (es decir, ++x) se ejecuta primero, aquí el valor x se convierte en 101.
Pregunta 14
Considere el siguiente programa:
C
#include<stdio.h> main() { int i, j; for( i = 0, j = 5; j>0, i<10 ; i++, j--) printf ("\GeeksforGeeks.org"); }
¿Cuántas veces se imprimirá «GeeksforGeeks.org»?
Respuesta: 10
Descripción: la parte de la condición del bucle for (j>0, i<10) está separada por comas, lo que significa que el compilador utilizará el valor que está a la derecha de la coma, es decir, de i<10, por lo que el bucle se ejecutará
hasta el valor de i es menor que 10.
Pregunta 15
¿Cuál es la salida?
C
#include<stdio.h> #define SQR( x ) ( x * x ) int main() { int b = 5; int a = SQR(b+2); printf("%d\n", a); return 0; }
Respuesta: 17
Descripción: Como sabemos, las macros sustituyen ciegamente, no calculan. Primero sustituirá el valor y luego lo calculará. Entonces, después de la sustitución, la Macro se convertirá en SQR (x + 2) = (x + 2 * x + 2) en este caso, el valor de x es 5. Entonces, la sustitución final será SQR (5 + 2) = (5 + 2) * 5 + 2). dado que ‘*’ tiene más prioridad que ‘+’, se convertirá en (5 + 10 + 2). El valor de a será 17 en este caso
Este artículo es una contribución de Harish Kumar . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@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