C Programming - Structures, Unions, Enums

1.
Point out the error in the program?
struct emp
{
    int ecode;
    struct emp *e;
};
Error: in structure declaration
Linker Error
No Error
None of above
Answer: Option
Explanation:
This type of declaration is called as self-referential structure. Here *e is pointer to a struct emp.

2.
Point out the error in the program?
typedef struct data mystruct;
struct data
{
    int x;
    mystruct *b;
};
Error: in structure declaration
Linker Error
No Error
None of above
Answer: Option
Explanation:
Here the type name mystruct is known at the point of declaring the structure, as it is already defined.

3.
Point out the error in the program?
#include<stdio.h>

int main()
{
    struct a
    {
        float category:5;
        char scheme:4;
    };
    printf("size=%d", sizeof(struct a));
    return 0;
}
Error: invalid structure member in printf
Error in this float category:5; statement
No error
None of above
Answer: Option
Explanation:

Bit field type must be signed int or unsigned int.

The char type: char scheme:4; is also a valid statement.


4.
Point out the error in the program?
struct emp
{
    int ecode;
    struct emp e;
};
Error: in structure declaration
Linker Error
No Error
None of above
Answer: Option
Explanation:
The structure emp contains a member e of the same type.(i.e) struct emp. At this stage compiler does not know the size of sttructure.

5.
Point out the error in the program?
#include<stdio.h>

int main()
{
    struct emp
    {
        char name[20];
        float sal;
    };
    struct emp e[10];
    int i;
    for(i=0; i<=9; i++)
        scanf("%s %f", e[i].name, &e[i].sal);
    return 0;
}
Error: invalid structure member
Error: Floating point formats not linked
No error
None of above
Answer: Option
Explanation:

At run time it will show an error then program will be terminated.

Sample output: Turbo C (Windows)

c:\>myprogram
                                                          
Sample
12.123

scanf : floating point formats not linked 
Abnormal program termination