Point Out Errors

Question 6 :

Point out the error, if any in the program.

#include
int main()
{
    int P = 10;
    switch(P)
    {
       case 10:
       printf("Case 1");

       case 20:
       printf("Case 2");
       break;

       case P:
       printf("Case 2");
       break;
    }
    return 0;
}


A). Error: No default value is specified
B). Error: Constant expression required at line case P:
C). Error: There is no break statement in each case.
D). No error will be reported.
Answer : Option B

Explanation :

The compiler will report the error "Constant expression required" in the line case P: . Because, variable names cannot be used with case statements.
The case statements will accept only constant expression.


Question 7 :

Point out the error, if any in the program.

#include
int main()
{
    int i = 1;
    switch(i)
    {
        case 1:
           printf("Case1");
           break;
        case 1*2+4:
           printf("Case2");
           break;
    }
return 0;
}


A). Error: in case 1*2+4 statement
B). Error: No default specified
C). Error: in switch statement
D). No Error
Answer : Option D

Explanation :

It prints "Case1"


Question 8 :

Point out the error, if any in the while loop.

#include
int main()
{
    void fun();
    int i = 1;
    while(i <= 5)
    {
        printf("%d\n", i);
        if(i>2)
            goto here;
    }
return 0;
}
void fun()
{
    here:
    printf("It works");
}


A). No Error: prints "It works"
B). Error: fun() cannot be accessed
C). Error: goto cannot takeover control to other function
D). No error
Answer : Option C

Explanation :

A label is used as the target of a goto statement, and that label must be within the same function as the goto statement.

Syntax: goto <identifier> ;

Control is unconditionally transferred to the location of a local label specified by <identifier>.
Example:

#include 
int main()
{
    int i=1;
    while(i>0)
    {
        printf("%d", i++);
        if(i==5)
          goto mylabel;
    }
    mylabel:
    return 0;
}

Output: 1,2,3,4


Question 9 :

Point out the error, if any in the program.

#include 
int main()
{
    int a = 10, b;
    a >=5 ? b=100: b=200;
    printf("%d\n", b);
    return 0;
}


A). 100
B). 200
C). Error: L value required for b
D). Garbage value
Answer : Option C

Explanation :

Variable b is not assigned.
It should be like:
b = a >= 5 ? 100 : 200;