When %c is given in printf, the character corresponding to the 8 bit value being passed is printed. Unless otherwise stated, we can assume ASCII characters being used.
char c=48 takes the ASCII value of 48 which is '0';
c=48 binary number 00110000
mask 00000001
c|mask(unary OR operator, use binary value and then OR operation)=00110000+00000001=00110001=49
Now 49 is equal to ASCII value 1, 50 is ASCII value 2 etc.
So, it will print 12480