C Programming and Technical General Ability General Knowledge

output??
#include
main()
{i
nt 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

Read Solution (Total 2)

C Other Question

#include
main()
{
char s[]={'a','b','c','n','c',''};
char *p,*str,*str1;
p=&s[3];
str=p;
str1=s;
printf("%d",++*p + ++*str1-32);
}

Answer: 77

Explanation: p is pointing to character 'n'. str1 is pointing to character 'a' ++*p. "p is pointing to
'n' and that is incremented by one." the ASCII value of 'n' is 10, which is then incremented to
11. The value of ++*p is 11. ++*str1, str1 is pointing to 'a' that is incremented by 1 and it
becomes 'b'. ASCII value of 'b' is 98.
Now performing (11 + 98 – 32), we get 77("M"); So we get the output 77 :: "M" (Ascii is 77).

output??
output??
#include
main()
{
struct xx
{i
nt x=3;
char name[]="hello";
};
struct xx *s;
printf("%d",s->x);
printf("%s",s->name);
}

Answer: Compiler Error

Explanation: You should not initialize variables in declaration