...
Compiler-Design
September 10, 2024
Probability
September 10, 2024
Compiler-Design
September 10, 2024
Probability
September 10, 2024

Compiler-Design

Question 318
Consider the following statements

#define hypotenuse (a, b) sqrt(a*a+b*b);

The macro call hypotenuse(a+2,b+3);

A
Finds the hypotenuse of a triangle with sides a+2 and b+3
B
Finds the square root of (a+2)2 and (b+3)3
C
Is invalid
D
Find the square root of 3*a + 4*b + 5
Question 318 Explanation: 
Given macro call is hypotenuse(a+2,b+3)
Macro definition is
hypotenuse (a, b) sqrt (a*a+b*b)
Substitute a+2 and b+3 inplace of a and b respectively
Then
sqrt(a+2*a+2+b+3*b+3)
// operators are addition(+) and multiplication(*) present in the above expression
Multiplication (*) operators has highest priority than addition (+) and associativity is Left to right.
First 2*a is evaluated which is 2a Later 3*b which is 3b.
Then the expression becomes
sqrt(a+2a+2+b+3b+3)
=sqrt(3a+2+b+3b+3)
=sqrt(3a+4b+5)
Correct Answer: D
Question 318 Explanation: 
Given macro call is hypotenuse(a+2,b+3)
Macro definition is
hypotenuse (a, b) sqrt (a*a+b*b)
Substitute a+2 and b+3 inplace of a and b respectively
Then
sqrt(a+2*a+2+b+3*b+3)
// operators are addition(+) and multiplication(*) present in the above expression
Multiplication (*) operators has highest priority than addition (+) and associativity is Left to right.
First 2*a is evaluated which is 2a Later 3*b which is 3b.
Then the expression becomes
sqrt(a+2a+2+b+3b+3)
=sqrt(3a+2+b+3b+3)
=sqrt(3a+4b+5)
0 0 votes
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
error: Alert: Content selection is disabled!!