Salida de programas C | Set 62 (Declaración e Inicialización)

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.
B.
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.
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.
B.
C.
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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *