Vidyalelo
C Programming · Q44

C Miscellaneous

Programming · C Programming · question 44

Q44

Determine Output: #include void main() char s[]='a','b','c','n','c','\0'; char *p, *str, *str1; p=&s[3]; str=p; str1=s; printf("%c", ++*p + ++*str1-32);

A.
N
B.
P
C.
M
Answer
D.
None of These

Answer: Option C

Solution

Answer: Option C
Solution:

p is pointing to character '\n'. str1 is pointing to character 'a'.
++*p: "p is pointing to '\n' and that is incremented by one." the ASCII value of '\n' is 10. then it is incremented to 11. the value of ++*p is 11.
++*str1: "str1 is pointing to 'a' that is incremented by 1 and it becomes 'b'. ASCII value of 'b' is 98.
Both 11 and 98 is added and result is subtracted from 32.
i.e. (11+98-32) = 77("M").