C | Operadores | Pregunta 15

Prediga la salida del siguiente programa. Suponga que los caracteres se representan mediante valores ASCII.

#include <stdio.h>
#define VAL 32
   
int main()
{
    char arr[] = "geeksquiz";
    *(arr + 0) &= ~VAL;
    *(arr + 5) &= ~VAL;
    printf("%s", arr);
      
    return 0;
}

(A) GeeksQuiz
(B) geeksQuiz
(C) Geeksquiz
(D) geeksquiz
(E) Garbage eeks Garbage uiz

Respuesta: (A)
Explicación: El quid de la pregunta radica en la afirmación: *(arr + 5) &= ~VAL ;
Esta declaración resta 32 del valor ascii de un carácter en minúscula y, por lo tanto, lo convierte en mayúscula. Esta es otra forma de convertir un alfabeto a mayúsculas restableciendo su bit posicionado en el valor 32, es decir, el quinto bit del LSB (suponiendo que el bit LSB esté en la posición 0).
Cuestionario de esta pregunta

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

Deja una respuesta

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