C Programming - Control Instructions

1. 

Which of the following statements are correct about the below program?

#include<stdio.h>
int main()
{
    int i = 10, j = 20;
    if(i = 5) && if(j = 10)
        printf("Have a nice day");
    return 0;
}

A. Output: Have a nice day
B. No output
C. Error: Expression syntax
D. Error: Undeclared identifier if

Answer: Option C

Explanation:

"Expression syntax" error occur in this line if(i = 5) && if(j = 10).

It should be like if((i == 5) && (j == 10)).


2. 

Which of the following statements are correct about the below program?

#include<stdio.h>
int main()
{
    int i = 10, j = 15;
    if(i % 2 = j % 3)
        printf("IndiaBIX\n");
    return 0;
}

A. Error: Expression syntax
B. Error: Lvalue required
C. Error: Rvalue required
D. The Code runs successfully

Answer: Option B

Explanation:

if(i % 2 = j % 3) This statement generates "LValue required error". There is no variable on the left side of the expression to assign (j % 3).


3. 

Which of the following statements are correct about the program?

#include<stdio.h>
int main()
{
    int x = 30, y = 40;
    if(x == y)
        printf("x is equal to y\n");

    else if(x > y)
        printf("x is greater than y\n");

    else if(x < y)
        printf("x is less than y\n")
    return 0;
}

A. Error: Statement missing
B. Error: Expression syntax
C. Error: Lvalue required
D. Error: Rvalue required

Answer: Option A

Explanation:

This program will result in error "Statement missing ;"

printf("x is less than y\n") here ; should be added to the end of this statement.


4. 

Which of the following statements are correct about an if-else statements in a C-program?
1: Every if-else statement can be replaced by an equivalent statements using   ?: operators
2: Nested if-else statements are allowed.
3: Multiple statements in an if block are allowed.
4: Multiple statements in an else block are allowed.

A. 1 and 2
B. 2 and 3
C. 1, 2 and 4
D. 2, 3, 4

Answer: Option D

Explanation:

No answer description available for this question. Let us discuss.

5. 

Which of the following statements are correct about the below program?

#include<stdio.h>
int main()
{
    int i = 0;
    i++;
    if(i <= 5)
    {
        printf("IndiaBIX\n");
        exit(0);
        main();
    }
    return 0;
}

A. The program prints 'IndiaBIX' 5 times
B. The program prints 'IndiaBIX' one time
C. The call to main() after exit() doesn't materialize.
D. The compiler reports an error since main() cannot call itself.

Answer: Option B

Explanation:

Step 1: int i = 0; here variable i is declared as an integer type and initialized to '0'(zero).
Step 2: i++; here variable i is increemented by 1(one). Hence, i = 1
Step 3: if(i <= 5) becomes if(1 <= 5) here we are checking '1' is less than or equal to '5'. Hence the if condition is satisfied.
Step 4: printf("IndiaBIX\n"); It prints "IndiaBIX"
Step 5: exit(); terminates the program execution.

Hence the output is "IndiaBIX".