The ones who are crazy enough to think they can change the world are the ones who do.
- Steve Jobs

C Preprocessor and Macros Tricky Questions and Answers

In most of the MNC interview questions such as in ZOHO interview question, IVTL Infoview interview questions, Amazon interview questions, GOOGLE interview questions, Infosys interview questions and even in Voonik interview questions, We come across several Tricky C Questions about which 2:5 of the questions are from Preprocessor and Macros in c. Solving that kind of tricky C questions is not an easy task for all C programmers. We need more practices to solve it with ease. So we provide 25+ interesting C questions in Preprocessor and Macros to make your MNC interview very easy.

C Preprocessor and Macros Questions

11. What will be the output of the C program?

#include<stdio.h>
#define CONDITION(i)\
printf("preprocessor works\n");                         
int main()
{
	CONDITION(0);
	return 0;
}

A. Runtime Error

B. Compilation error

C. preprocessor works

D. None of the one

x

 

Option: C

Explanation

#define CONDITION(i) ends with backslash(/). So that next line following #define CONDITION(i) will be consider by the C compiler and prints preprocessor works

Answer


12. What will be the output of the C program?

#include<stdio.h>
# define loop while(true)
int main()
{
	loop;  
	printf("preprocessor-aptitude");
	return 0;
}

A. program never ends

B. Compilation error

C. preprocessor-aptitude

D. none of the above

x

 

Option: A

Explanation

Program never ends and no output will be printed as infinite execution starts for loop; itself.

Answer


13. What will be the output of the C program?

#include<stdio.h>
# define x - -5
int main()
{
	printf("%d",x);
	return 0;
}

A. Compilation error

B. -

C. -5

D. 5

x

 

Option: D

Explanation

.

Answer


14. What will be the output of the C program?

#include<stdio.h>
# define x --5
int main()
{
	printf("%d",x);
	return 0;
}

A. -

B. Compilation error

C. 5

D. -5

x

 

Option: B

Explanation

We cannot decrement or increment the value directly . Thus compilation error occurs.

Answer


15. What will be the output of the C program ?

#include<stdio.h>
#define sqr(x) ++x * ++x
int main()
{
	int a = 3, z;
	z = ++a * ++a;     
	a -= 3;
	printf("%d %d", sqr(a), z);
	return 0;
}

A. 25 16

B. 16 16

C. 16 25

D. 25 25

x

 

Option: C

Explanation

Line 6: a = 3 .

Line 7: z = 4 * ++a.

Line 7: z = 4 * 5.

Line 7: z = 5 * 5.

Line 7: z = 25.

Line 8: a = 5 - 3.

Line 8: a = 2.

Line 9: here line 2 will execute .

Line 2: #define sqr(2) 3 * 4.

Line 2: #define sqr(2) 4 * 4.

Line 2: #define sqr(2) 16.

Now 16 25will be printed as per our printf() function.

Answer


Report Us

We may make mistakes(spelling, program bug, typing mistake and etc.), So we have this container to collect mistakes. We highly respect your findings.

Report