C Programming and Technical

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

A. Compiler Error

Explanation: Initialization should not be done for structure members inside the structure
declaration

Read Solution (Total 0)

C Other Question

output??
Q.
#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);
}

A. M

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. then it is 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. Both 11 and 98 is added and result is subtracted from 32. i.e.
(11+98-32)=77("M");
output?
Q.
main()
{
extern int i;
i=20;
printf("%d",sizeof(i));
}

A. Linker error: undefined symbol '_i'.

Explanation: extern declaration specifies that the variable i is defined somewhere else. The
compiler passes the external variable to be resolved by the linker. So compiler doesn't find an
error. During linking the linker searches for the definition of i. Since it is not found the linker flags
an error.