ExamVeda
Login
Home
This question belongs to C Program C Miscellaneous
C Miscellaneous
?

Determine Output:
#include<stdio.h>
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);
}

Answer & Solution
Correct Answer: Option C

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").

Examveda
Question posted by Examveda
Community

Join the Discussion

2 Comments
WG KIM
WG KIM 7 years ago
For this question, 'c' should be removed at s[].
Narasimharao Mondreti
Narasimharao Mondreti 9 years ago
the value n is not 10 it is 109. i think it is not n it is