C Programming and Technical

output??
#define int char
main()
{i
nt i=65;
printf("sizeof(i)=%d",sizeof(i));
}
Answer: sizeof(i)=1
Explanation: Since the #define replaces the string int by the macro char
50. main()
{i
nt i=10;
i=!i>14;
Printf ("i=%d",i);
}
Answer: i=0
Explanation: In the expression !i>14 , NOT (!) operator has more precedence than ‘ >’ symbol. !
is a unary logical operator. !i (!10) is 0 (not of true is false). 0>14 is false (zero).

Read Solution (Total 0)

C Other Question

main()
{i
nt c=- -2;
printf("c=%d",c);
}
Answer: c=2;
Explanation: Here unary minus (or negation) operator is used twice. Same maths rules applies,
ie. minus * minus= plus.
Note: However you cannot give like --2. Because -- operator can only be applied to variables as
a decrement operator (eg., i--). 2 is a constant and not a variable

#include
main()
{
char s[]={'a','b','c','n','c',''};
char *p,*str,*str1;
p=&s[3];
str=p;
str1=s;
printf("%d",++*p + ++*str1-32);
}

Answer: 77

Explanation: 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, which is then 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.
Now performing (11 + 98 – 32), we get 77("M"); So we get the output 77 :: "M" (Ascii is 77).

output??