Skip to content
Related Articles

Related Articles

Improve Article

C | Operators | Question 15

  • Difficulty Level : Easy
  • Last Updated : 28 Jun, 2021

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

#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

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

Want to learn from the best curated videos and practice problems, check out the C Foundation Course for Basic to Advanced C.
My Personal Notes arrow_drop_up
Recommended Articles
Page :