Requisito previo: declaración e inicialización en programación C
Q1. Considere el siguiente código:
C
#include <stdio.h> void main() { extern int i; i = 20; printf("%d", sizeof(i)); }
¿Cuál sería la salida del código anterior?
A. 2
B. 4
C. Variaría de un compilador a otro.
D.Error .
Output: D
Error: el formato ‘%d’ espera un argumento del tipo ‘int’, pero el argumento 2 tiene el tipo ‘int largo sin firmar
. Explicación:
aquí, el compilador genera el error porque extern int i es una declaración y no una definición.
Q2. Considere el siguiente código:
C
#include <stdio.h> void main() { extern int fun(float); int a; a = fun(3.14); printf("%d", a); } int fun(aa) float aa; { return ((int)aa); }
¿Cuál sería la salida del código anterior?
A.Error .
B. 3.14
C. 0
D. 3
Output: A
Error: tipos en conflicto para ‘diversión’
Explicación: El error ocurre porque hemos mezclado el prototipo ANSI con el estilo de definición de función K & R. Cuando usamos el prototipo ANSI para una función y le pasamos un flotante a la función, se promueve a un doble . Cuando la función acepta el doble en un flotante, se produce una falta de coincidencia de tipos, por lo que se produce el error.
Q3. Considere el siguiente código:
C
#include <stdio.h> void main() { struct geeks { char name; int age; float sal; } struct geeks g = { "GEEKS" }; printf("%d %f", g.age, g.sal); }
¿Cuál sería la salida del código anterior?
A. Valor basura
B. 0 0.000000
C. Variaría de un compilador a otro.
D.Error .
Output: B 0 0.000000
Explicación:
Cuando una estructura automática se inicializa parcialmente, los elementos restantes de la estructura se inicializan a 0.
P4. Considere el siguiente código:
C
#include <stdio.h> void main() { int x = 10, y = 20, z = 5, i; i = x < y < z; printf("%d", i); }
¿Cuál sería la salida del código anterior?
A. 5
B. 0
C. 1
D. 10
Output: C 1
Explicación:
Dado que x<y resulta ser cierto, se reemplaza por 1. Este 1 se compara con 5. Dado que esta condición también resulta ser cierta, se reemplaza por 1. Este 1 se asigna luego a i
Q5. Considere el siguiente código:
C
#include <stdio.h> void main() { enum status { pass, fail, atkt }; enum status stud1, stud2, stud3; stud1 = pass; stud2 = fail; stud3 = atkt; printf("%d %d %d", stud1, stud2, stud3); }
¿Cuál sería la salida del código anterior?
A. 1 2 3
B. pasa falla atkt
C. 1 2 0
D. 0 1 2
Output: D 0 1 2
Explicación:
los elementos Enum siempre toman valores como 0, 1, 2, 3, …. etc
Este artículo es una contribución de Abhishek Sharma . 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 Abhishek Sharma 44 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA