The ones who are crazy enough to think they can change the world are the ones who do.- Steve Jobs
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.
21. What will be the output of the C program?
#include<stdio.h> int main() { printf("Line :%d\n", __LINE__ ); return 0; }
Option: D
__LINE__ macro will print the number of lines from start to the statement containing __LINE__ thus outputted 4.
22. What will be the output of the C program?
#include<stdio.h> #define preprocessor_works(x, y) \ printf(#x " and " #y " are great!\n") int main(void) { preprocessor_works(you, me); return 0; }
Option: A
# is know as Stringize or number-sign.
When # is used within a macro definition, # macro converts a macro parameter into a string constant.
When we are passing any special arguments or string as a parameter value, then # macrons are get used.
23. What will be the output of the C program?
#include<stdio.h> # define puts "%s C preprocessor" int main() { printf(puts, puts); return 0; }
C. %s C preprocessor %s C preprocessor✘
D. %s C preprocessor C preprocessor✔
Option: D
printf(puts,puts); will call the preprocessor macro # define puts.
printf("%s C preprocessor","%s C preprocessor");
printf(%s C preprocessor C preprocessor);
24. What will be the output of the C program?
#include<stdio.h> #define preprocessor(n) printf ("macro" #n " = %d", macro##n) int main(void) { int macro25 = 47; preprocessor(25); return 0; }
Option: B
## is nothing more than concatenation operator.
25. What will be the output of the C program ?
#include<stdio.h> #include<string.h> #define MACRO(num) ++num int main() { char *ptr = "preprocessor"; int num =strlen(ptr); printf("%s ", MACRO(ptr)); printf("%d", MACRO(num)); return 0; }
Option: C
int num = strlen(ptr);
int num = 12;
printf("%s", MACRO(preprocessor));
printf("%s", reprocessor);
printf("%d", MACRO(num));
printf("%d", 13);
Thus output is reprocessor 13
We may make mistakes(spelling, program bug, typing mistake and etc.), So we have this container to collect mistakes. We highly respect your findings.
© Copyright 2019