Home » C Programming » Expressions

What will be the output of the program? #include int main() { char ch; ch = 'A'; printf("The letter is"); printf("%c", ch >= 'A' && ch <= 'Z'? ch + 'a' - 'A':ch); printf("Now the letter is"); printf("%c\n", ch >= 'A' && ch <= 'Z'? ch : ch + 'a' - 'A'); return 0; }

Correct Answer: The letter is a Now the letter is A

Explanation:

Step 1: char ch; ch = 'A'; here variable ch is declared as an character type an initialized to 'A'.


Step 2: printf("The letter is"); It prints "The letter is".


Step 3: printf("%c", ch >= 'A' && ch <= 'Z' ? ch + 'a' - 'A':ch);


The ASCII value of 'A' is 65 and 'a' is 97.


Here


=> ('A' >= 'A' && 'A' <= 'Z') ? (A + 'a' - 'A'):('A')


=> (TRUE && TRUE) ? (65 + 97 - 65) : ('A')


=> (TRUE) ? (97): ('A')


In printf the format specifier is '%c'. Hence prints 97 as 'a'.



Step 4: printf("Now the letter is"); It prints "Now the letter is".


Step 5: printf("%c\n", ch >= 'A' && ch <= 'Z' ? ch : ch + 'a' - 'A');


Here => ('A' >= 'A' && 'A' <= 'Z') ? ('A') : (A + 'a' - 'A')


=> (TRUE && TRUE) ? ('A') :(65 + 97 - 65)


=> (TRUE) ? ('A') : (97)


It prints 'A'


Hence the output is


The letter is a
Now the letter is A


← Previous Question Next Question→

Discussion & Comments

No comments yet. Be the first to comment!
Join Discussion