C Programming - C Preprocessor - Discussion
Discussion Forum : C Preprocessor - Find Output of Program (Q.No. 9)
9.
What will be the output of the program?
#include<stdio.h>
#define FUN(arg) do\
{\
if(arg)\
printf("IndiaBIX...", "\n");\
}while(--i)
int main()
{
int i=2;
FUN(i<3);
return 0;
}
Answer: Option
Explanation:
The macro FUN(arg) prints the statement "IndiaBIX..." untill the while condition is satisfied.
Step 1: int i=2; The variable i is declared as an integer type and initialized to 2.
Step 2: FUN(i<3); becomes,
do
{
if(2 < 3)
printf("IndiaBIX...", "\n");
}while(--2)
After the 2 while loops the value of i becomes '0'(zero). Hence the while loop breaks.
Hence the output of the program is "IndiaBIX... IndiaBIX..."
Discussion:
22 comments Page 1 of 3.
Abhijit said:
8 years ago
do
{
if(2 < 3)
printf("IndiaBIX...", "\n");
}while(--2)
There is a "\n". it should have taken printf to the next line. I am a little bit confuse, please someone explain it.
{
if(2 < 3)
printf("IndiaBIX...", "\n");
}while(--2)
There is a "\n". it should have taken printf to the next line. I am a little bit confuse, please someone explain it.
(3)
Anupam said:
1 decade ago
No effect of "\n" ?
(2)
Shwetal said:
2 years ago
If there is printf("India","bix");
the output will be = India.
And there would be a warning -too many arguments;
The second " " is simply ignored.
the output will be = India.
And there would be a warning -too many arguments;
The second " " is simply ignored.
(1)
Nejat sultan said:
10 years ago
2<3....2.
1<3....1.
This time while (0). It fails here. So functions 2 times.
1<3....1.
This time while (0). It fails here. So functions 2 times.
Shubh said:
5 years ago
Why there is \ in every line in macro.
Shrividya said:
7 years ago
I got it 0 indicates false in programming language.
Shrividya said:
7 years ago
Even 0 is less than 3 than why does while loop break?
Kalyan babu said:
7 years ago
Yes, I agree @Abhijit, @Prashant.
Prashant said:
8 years ago
Yes, I agree @Abhijit.
Hosam said:
8 years ago
How could they use (i) at preprocessing time before it declared in main at compile time?
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers