QUE.1 ¿Cuál sería la salida después del programa C?
#include <stdio.h> int main() { char* str = "IncludeHelp"; printf("%c\n", *&*str); return 0; }
OPCIÓN
a) Error
b) Incluir Ayuda
c) I
d)*I
Answer: c
Explicación: & es un operador de referencia, * es un operador de desreferencia . Podemos usar estos operadores cualquier número de veces. str señala el primer carácter de IncludeHelp, *str señala “I”, * & de nuevo hace referencia y elimina la referencia al valor de str.
QUE.2 ¿Cuál sería la salida después del programa C?
#include <stdio.h> int main() { int iVal; char cVal; // void pointer void* ptr; iVal = 50; cVal = 65; ptr = &iVal; printf("value =%d, size= %d\n", *(int*)ptr, sizeof(ptr)); ptr = &cVal; printf("value =%d, size= %d\n", *(char*)ptr, sizeof(ptr)); return 0; }
OPCIÓN
a) Error
b) valor =50, tamaño= 4
valor =65, tamaño= 4
c) valor =50, tamaño= 4
valor =65, tamaño= 1
d)Valores basura
Answer: b
Explicación: el puntero vacío se puede convertir a cualquier tipo de tipo de datos, y el puntero ocupa 4 bytes (en un compilador de 32 bits). Para imprimir el valor usando un puntero vacío, tendrá que escribir así *(tipo_de_datos*)void_ptr;.
QUE.3 ¿Cuál sería la salida después del programa C?
#include <stdio.h> int main() { char ch = 10; void* ptr = &ch; printf("%d, %d", *(char*)ptr, ++(*(char*)ptr)); return 0; }
OPCIÓN
a) 11, 11
b) 10, 11
c) ERROR
d) 10, 10
Answer: a
Explicación: *(char*)ptr devolverá el valor de ch, ya que sabemos que printf evalúa de derecha a izquierda. Entonces, ++(*(char*)ptr) aumentará el valor a 11.
QUE.4 ¿Cuál es el resultado del siguiente programa en C?
#include <stdio.h> int main() { int a = 10, b = 2; int* pa = &a, *pb = &b; printf("value = %d", *pa/*pb); return 0; }
OPCIÓN
a) 5
b) 5.0
c) ERROR
d) Ninguno de estos
Answer:c
Explicación: ERROR: se encontró un final de archivo inesperado en el comentario. El compilador trata el operador / y * como /*, que resulta ser el comienzo del comentario. Para corregir el error, utilice *pa/ *pb (espacio entre operadores) o *pa/(*pb).
QUE.5 ¿Cuál es el resultado del siguiente programa en C?
#include <stdio.h> int main() { int a = 10; int b = 2; int c; c = (a & b); printf("c= %d", c); return 0; }
OPCIÓN
a) c= 12
b) c= 10
c) c= 2
d) c= 0
Answer:c
Explicación: el operador AND bit a bit (&) copia bit(s) , si existen ambos operandos. Aquí, el binario de a es «1010» y el binario de b es «0010». Por lo tanto, el resultado de la expresión (a y b) es «0010», que es equivalente a 2 en decimal.
Este artículo es una contribución de Ajay Puri(ajay0007) . 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