News:

MyKidsDiary.in :: Capture your kids magical moment and create your Online Private Diary for your kids

Main Menu

C Interview Questions & Answers - III

Started by Kalyan, Nov 13, 2008, 12:57 PM

Previous topic - Next topic

Kalyan

C Interview Questions & Answers - III

Predict the output or error(s) for the following:

main(){
int a[2][2][2] = { {10,2,3,4}, {5,6,7,8} };
int *p,*q;
p=&a[2][2][2];
*q=***a;
printf("%d----%d",*p,*q);
}

Answer:
SomeGarbageValue---1

Explanation:
p=&a[2][2][2] you declare only two 2D arrays, but you are trying to access the third 2D(which you are not declared) it will print garbage values. *q=***a starting address of a is assigned integer pointer. Now q is pointing to
starting address of a. If you print *q, it will print first element of 3D array.


main(){
struct xx{
char name[]="hello";
};
struct xx *s;
printf("%s",s->name);
}

Answer:
Compiler Error

Explanation:
You should not initialize variables in structure declaration.


main(){
struct xx{
int x;
struct yy{
char s;
struct xx *p;
};
struct yy *q;
};
}

Answer:
No output.

Explanation:
Pointer to the same type of structures are known as self referential structures. They are particularly used in implementing data structures like trees. Structures within structures are known as nested structures.


main()
{
printf("\nab");
printf("\bsi");
printf("\rha");
}

Answer:
hai

Explanation:
\n - newline
\b - backspace
\r - linefeed


main()
{
int i=5;
printf("%d%d%d%d%d%d",i++,i--,++i,--i,i);
}

Answer:
45545

Explanation:
The arguments in a function call are pushed into the stack from left to right. The evaluation is by popping out from the stack. and the evaluation is from right to left, hence the result.