Determine Output:
#define clrscr() 100
void main()
{
clrscr();
printf("%d", clrscr());
}
#define clrscr() 100
void main()
{
clrscr();
printf("%d", clrscr());
}
A. 0
B. 1
C. 100
D. Error
Answer: Option C
Solution(By Examveda Team)
Preprocessor executes as a seperate pass before the execution of the compiler. So textual replacement of clrscr() to 100 occurs. The input program to compiler looks like this :
void main()
{
100;
printf("%d", 100);
}
Note: 100; is an executable statement but with no action. So it doesn't give any problem.
Related Questions on C Miscellaneous
Determine output:
void main()
{
int const *p=5;
printf("%d", ++(*p));
}
A. 6
B. 5
C. Garbage Value
D. Compiler Error
A. mmm nnn aaa
B. mmmm nnnn aaaa
C. Compiler Error
D. None of These
A. I hate Examveda
B. I love Examveda
C. Error
D. None of These
Determine Output:
void main()
{
static int var = 5;
printf("%d ", var--);
if(var)
main();
}
A. 5 5 5 5 5
B. 5 4 3 2 1
C. Infinite Loop
D. None of These
Join The Discussion