C | Operators | Question 15

Predict the output of following program. Assume that the characters are represented using ASCII Values.

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


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


Answer: (A)

Explanation: The crux of the question lies in the statement: *(arr + 5) &= ~VAL;
This statement subtracts 32 from the ascii value of a lower case character and thus converts it to upper case. This is another way to convert an alphabet to upper case by resetting its bit positioned at value 32 i.e. 5th bit from the LSB(assuming LSB bit at position 0).

Quiz of this Question



My Personal Notes arrow_drop_up


Article Tags :
Practice Tags :


2


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.