Point Out Errors

Question 1 :

Point out the error in the program?

struct emp
{
    int ecode;
    struct emp *e;
};


A). Error: in structure declaration
B). Linker Error
C). No Error
D). None of above
Answer : Option C

Explanation :

This type of declaration is called as self-referential structure. Here *e is pointer to a struct emp.


Question 2 :

Point out the error in the program?

typedef struct data mystruct;
struct data
{
    int x;
    mystruct *b;
};


A). Error: in structure declaration
B). Linker Error
C). No Error
D). None of above
Answer : Option C

Explanation :

Here the type name mystruct is known at the point of declaring the structure, as it is already defined.


Question 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;
}


A). Error: invalid structure member in printf
B). Error in this float category:5; statement
C). No error
D). None of above
Answer : Option B

Explanation :

Bit field type must be signed int or unsigned int.
The char type: char scheme:4; is also a valid statement.


Question 4 :

Point out the error in the program?

struct emp
{
    int ecode;
    struct emp e;
};


A). Error: in structure declaration
B). Linker Error
C). No Error
D). None of above
Answer : Option A

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.


Question 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;
}


A). Error: invalid structure member
B). Error: Floating point formats not linked
C). No error
D). None of above
Answer : Option B

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


Question 6 :

Point out the error in the program?

#include < stdio.h >
#include < string.h >
void modify(struct emp*);
struct emp
{
    char name[20];
    int age;
};
int main()
{
    struct emp e = {"Sanjay", 35};
    modify(&e);
    printf("%s %d", e.name, e.age);
    return 0;
}
void modify(struct emp *p)
{
     p ->age=p->age+2;
}


A). Error: in structure
B). Error: in prototype declaration unknown struct emp
C). No error
D). None of above
Answer : Option B

Explanation :

The struct emp is mentioned in the prototype of the function modify() before declaring the structure.To solve this problem declare struct emp before the modify() prototype.


Question 7 :

Point out the error in the program in 16-bit platform?

#include < stdio.h >

int main()
{
    struct bits
    {
        int i:40;
    }bit;

    printf("%d\n", sizeof(bit));
    return 0;
}


A). 4
B). 2
C). Error: Bit field too large
D). Error: Invalid member access in structure
Answer : Option C

Question 8 :

Point out the error in the program?

#include < stdio.h >

int main()
{
    union a
    {
        int i;
        char ch[2];
    };
    union a z1 = {512};
    union a z2 = {0, 2};
    return 0;
}


A). Error: invalid union declaration
B). Error: in Initializing z2
C). No error
D). None of above
Answer : Option B

Question 9 :

Point out the error in the program?

#include < stdio.h >

int main()
{
    struct emp
    {
        char n[20];
        int age;
    };
    struct emp e1 = {"Dravid", 23};
    struct emp e2 = e1;
    if(e1 == e2)
        printf("The structure are equal");
    return 0;
}


A). Prints: The structure are equal
B). Error: Structure cannot be compared using '=='
C). No output
D). None of above
Answer : Option B

Question 10 :

Point out the error in the program?

#include < stdio.h >

int main()
{
    struct bits
    {
        float f:2;
    }bit;

    printf("%d\n", sizeof(bit));
    return 0;
}


A). 4
B). 2
C). Error: cannot set bit field for float
D). Error: Invalid member access in structure
Answer : Option C

Question 11 :

Point out the error in the program?

#include < stdio.h >

int main()
{
    struct emp
    {
        char name[25];
        int age;
        float bs;
    };
    struct emp e;
    e.name = "Suresh";
    e.age = 25;
    printf("%s %d\n", e.name, e.age);
    return 0;
}


A). Error: Lvalue required/incompatible types in assignment
B). Error: invalid constant expression
C). Error: Rvalue required
D). No error, Output: Suresh 25
Answer : Option A

Explanation :

We cannot assign a string to a struct variable like e.name = "Suresh"; in C.
We have to use strcpy(char *dest, const char *source) function to assign a string.
Ex: strcpy(e.name, "Suresh");