3,874 views
3 votes
3 votes
#define A 10+10

main ()

{

int a; a=A*A;

printf (“%d”, a);

}

a) 100 b) 200 c) 120 d) 400

1 Answer

Best answer
0 votes
0 votes
#define A 10+10

main ()

{

int a; a=A*A;

printf (“%d”, a);

}

the above code is replaced as follow due to macro:

#define A 10+10 search templet A & replace it 10+10*10+10

main ()

{

int a; a= 10+10*10+10;

printf (“%d”, a);

}

precedence of * is higher then Binary + and associativity if left to right.

so step1) 10+10*10+10

 step20)10+100+10

step3) 110+10

step4) 120

so the value of a is 120.
selected by

Related questions

0 votes
0 votes
1 answer
1
SSR17 asked Feb 29
204 views
#include <stdio.h int main() { int i = -1; int x = (unsigned char)i; printf("%d", x); return 0; }output is 255 , but please explain how
2 votes
2 votes
1 answer
2
rupamsardar asked Aug 30, 2023
466 views
#include <stdio.h int f(int x) { if(x%2==0) { return f(f(x-1)); } else return (x++); } int main() { printf("%d",f(12)); ret...
5 votes
5 votes
2 answers
3
saurabh0709 asked Aug 1, 2023
1,136 views
What will be the output of the following code? _______ #include <stdio.h int main(){ char val=250; int ans; ans= val+ !val + ~val + ++val; printf("%d", ans); return 0; }
2 votes
2 votes
1 answer
4