Examveda
Examveda

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);
}

A. N

B. P

C. M

D. None of These

Answer: Option C

Solution(By Examveda Team)

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


This Question Belongs to C Program >> C Miscellaneous

Join The Discussion

Comments ( 2 )

  1. WG KIM
    WG KIM :
    4 years ago

    For this question, 'c' should be removed at s[].

  2. Narasimharao Mondreti
    Narasimharao Mondreti :
    6 years ago

    the value n is not 10 it is 109. i think it is not n it is

Related Questions on C Miscellaneous