Re: C- Tricky Question & answers With explanation C- Tricky Question & answers
1) main()
{
char *p;
int *q;
long *r;
p=q=r=0;
p++;
q++;
r++;
printf("%p...%p...%p",p,q,r);
} Answer:
0001...0002...0004 Explanation:
++ operator when applied to pointers increments address according to their corresponding data-types.
2) main()
{
char c=' ',x,convert(z);
getc(c);
if((c>='a') && (c<='z'))
x=convert(c);
printf("%c",x);
}
convert(z)
{
return z-32;
} Answer:
Compiler error Explanation:
declaration of convert and format of getc() are wrong.
3) main(int argc, char **argv)
{
printf("enter the character");
getchar();
sum(argv[1],argv[2]);
}
sum(num1,num2)
int num1,num2;
{
return num1+num2;
} Answer:
Compiler error. Explanation:
argv[1] & argv[2] are strings. They are passed to the function sum without converting it to integer values.
4) # include <stdio.h>
int one_d[]={1,2,3};
main()
{
int *ptr;
ptr=one_d;
ptr+=3;
printf("%d",*ptr);
} Answer:
garbage value Explanation:
ptr pointer is pointing to out of the array range of one_d.
__________________
J.Vijayanand |