Prediga la salida de los siguientes programas en C.
1. ¿Cuál será el resultado del siguiente programa?
Aporte:
1 3
C
#include<stdio.h> int main() { int a, b; if(scanf("%d%d", &a, &b)==2) printf("true"); else printf("false"); return 0; }
Producción:
True
Explicación: la función Scanf devuelve un valor entero ya que su tipo de retorno es entero. En la pregunta anterior, si ingresa dos valores enteros, devolverá 2. Significa «si la condición» se vuelve verdadera, de lo contrario, «si la condición» se vuelve falsa.
2. ¿Cuál será el resultado del siguiente programa?:
C
#include<stdio.h> int main() { int a=0; a=a++ + a++ - a++ + ++a; printf("%d\n", a); return 0; }
Producción:
3
Explicación: Ejecución de izquierda a derecha
In the first step A = (0) + (a++) - (a++) + (++a) In the second step A = (0) + (1) - (a++) + (++a) In the third step A = (0) + (1)-(2) + (++a) In the fourth step A = (0) + (1)-(2) + (4) Therefore final value of A is 3.
3. ¿Cuál será el resultado del siguiente programa?
C
#include<stdio.h> int ar[] = {18, 23, 45, 56, 4, 6, 45}; int main() { int i, x; x = (sizeof(ar)/sizeof(ar[0])); for (i=-1; i<=(x-2); i++) printf("%d, ", ar[i+1]); }
Producción:
18, 23, 45, 56, 4, 6, 45,
Explicación: La asociatividad del operador Sizeof y equal es de derecha a izquierda. El operador Sizeof devuelve el tamaño en bytes de un solo elemento o los tamaños de los elementos del contenedor. Por lo tanto, sizeof(ar[0]) devolverá 4 bytes cuando pasemos un solo elemento de tipo entero en el operador sizeof, ya que el entero toma 4 bytes y sizeof(ar) devolverá el tamaño total del contenedor de la array, es decir, 4*7=28.
4. ¿Cuál será el resultado del siguiente programa?
C
#include<stdio.h> int count; void display(); int main() { count = 1; printf("Value of count is %d, ", count); display(); } void display() { extern int count; printf("\nValue of count is %d", count); }
Producción:
Value of count is 1 Value of count is 1
Explicación: Como en esta pregunta, count es una variable global en el programa. Asignamos 1 a la variable de conteo en la función principal que luego pasará a la función de visualización. «Extern int count» es una forma de definir una variable global en cualquier función.
5. ¿Cuál será el resultado del siguiente programa?
Aporte:
1 c
C
#include<stdio.h> int main() { int flag = 0, flag1 = 0, n; char s; flag = scanf("%d", &n); flag1 = scanf("%d", &s); printf("Value of flag is %d", flag); printf("\nValue of flag is %d", flag1); return 0; }
Salida: El
valor de la bandera es 1 El
valor de la bandera es 0
Explicación: La función Scanf devolverá un valor entero. En la pregunta anterior, si se ejecuta con éxito, devolverá 1; de lo contrario, devolverá 0. Por lo tanto, flag=scanf(“%d”, &n) devolverá 1 porque escanea un valor entero y flag=scanf(“%d” , &s) devolverá 0 porque no puede escanear el valor del carácter. Y si no va a insertar ningún valor, devolverá -1.
6. ¿Cuál será el resultado del siguiente programa?
C
#include<stdio.h> union student { int y[34]; char var2[7]; char arr[8]; char ch[5]; }; int main() { union student st; printf("%d", sizeof(union student)); return 0; }
Producción:
136
Explicación: Union tiene una propiedad para almacenar diferentes tipos de datos en la misma ubicación de memoria uno a la vez. Genera un contenedor de espacio de memoria máximo para que almacene el valor de cada tipo de datos. De acuerdo con la propiedad de unión, el operador sizeof devolverá la asignación máxima de memoria en el contenedor de unión (Número máximo de bytes).
Este artículo es una contribución de Ashish Varshney . 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