Home » C Programming » C Preprocessor

What will be the output of the program? #include #define SQUARE(x) x*x int main() { float s=10, u=30, t=2, a; a = 2*(s-u*t)/SQUARE(t); printf("Result = %f", a); return 0; }

Correct Answer: Result = -100.000000

Explanation:

The macro function SQUARE(x) x*x calculate the square of the given number 'x'. (Eg: 102)


Step 1: float s=10, u=30, t=2, a; Here the variable s, u, t, a are declared as an floating point type and the variable s, u, t are initialized to 10, 30, 2.


Step 2: a = 2*(s-u*t)/SQUARE(t); becomes,


=> a = 2 * (10 - 30 * 2) / t * t; Here SQUARE(t) is replaced by macro to t*t .


=> a = 2 * (10 - 30 * 2) / 2 * 2;


=> a = 2 * (10 - 60) / 2 * 2;


=> a = 2 * (-50) / 2 * 2 ;


=> a = 2 * (-25) * 2 ;


=> a = (-50) * 2 ;


=> a = -100;


Step 3: printf("Result=%f", a); It prints the value of variable 'a'.


Hence the output of the program is -100


← Previous Question Next Question→

More Questions from C Preprocessor

Discussion & Comments

No comments yet. Be the first to comment!
Join Discussion