Determine Output:
void main()
{
int c[] = {2.8,3.4,4,6.7,5};
int j, *p=c, *q=c;
for(j=0;j<5;j++){
printf(" %d ", *c);
++q;
}
for(j=0;j<5;j++){
printf(" %d ", *p);
++p;
}
}
void main()
{
int c[] = {2.8,3.4,4,6.7,5};
int j, *p=c, *q=c;
for(j=0;j<5;j++){
printf(" %d ", *c);
++q;
}
for(j=0;j<5;j++){
printf(" %d ", *p);
++p;
}
}
A. 2 3 4 6 5 2 3 4 6 5
B. 2.8 3.4 4 6.7 5 2.8 3.4 4 6.7
C. 2.8 2.8 2.8 2.8 2.8 2.8 3.4 4
D. 2 2 2 2 2 2 3 4 6 5
Answer: Option D
Solution(By Examveda Team)
Initially pointer c is assigned to both p and q. In the first loop, since only q is incremented and not c , the value 2 will be printed 5 times. In second loop p itself is incremented. So the values 2 3 4 6 5 will be printed.
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