C Programming Interview / Viva Q&A: 1

Guess the output of this simple C program. You can check these 2 video tutorials listed below so that you get to know todays interview / viva question.

Related Read:
if else statement in C
Relational Operators In C

Whats the output of this C Program?

 
#include < stdio.h >

int main()
{
    int num;

    printf("Enter a number\n");
    scanf("%d", &num);

    if(num = 5)
    {
        printf("You entered number 5\n");
    }
    else
    {
        printf("You entered %d \n", num);
    }

    return 0;
}

If user enters num value as 10. What does the above C Program output?

Answer: Did you answer – You entered 10 as output? If yes, then its wrong.

Note:
1. If at first glance of the source code you didn’t get the answer right, then go through the videos I’ve posted in ‘Related Read” section above.
2. After going through the 2 videos I’ve posted in ‘Related Read’ section above, if you still didn’t get the answer, then please open your editor and type the program and execute it one line at a time.

Hint: assignment operator(=) and equality operator(==) are different and work differently in C programming.

C Programming Interview / Viva Q&A: 1


[youtube https://www.youtube.com/watch?v=Zg04m3hF69E]

YouTube Link: https://www.youtube.com/watch?v=Zg04m3hF69E [Watch the Video In Full Screen.]


Here is the Answer:

As you can see in the condition of if, it’s written as num = 5. = is assignment operator. So here 5 is being assigned to variable num, and thus it returns 5. In C program, any non-zero number is considered as true. So every time the condition in if becomes true, so the block of code present in if gets executed. i.e., value of num is 5.

using equality operator for comparison

 
#include < stdio.h >

int main()
{
    int num;

    printf("Enter a number\n");
    scanf("%d", &num);

    if(num == 5)
    {
        printf("You entered number 5\n");
    }
    else
    {
        printf("You entered %d \n", num);
    }

    return 0;
}

Output 1:
Enter a number
10
You entered 10

Output 2:
Enter a number
5
You entered number 5

Output 3:
Enter a number
1000
You entered 1000

Note: Both programs are correct syntactically. That’s the reason compiler did not throw any error. It’s a logical error, so we need to be very careful while writing programs. If we do this simple logical error in a big program, it might take a lot of time to get to know the bug and fix it. So careful. Happy coding.

For list of all c programming interviews / viva question and answers visit: C Programming Interview / Viva Q&A List

For full C programming language free video tutorial list visit:C Programming: Beginner To Advance To Expert

Relational Operators In C

Relational Operators in C programming language return true(non-zero number) or false(0) value. They operate on 2 operands.

Relational Operators

== equality operator.
!= inequality operator.
> greater than operator.
< less than operator.
>= greater than or equal to operator.
<= less than or equal to operator.

== equality operator

 
#include < stdio.h >

int main()
{
    //Relational Operators

    int a = 10, b = 10;
    int temp;

    temp = (a == b);

    printf("value of temp is %d\n", temp);

    return 0;
}

Output:
value of temp is 1

 
#include < stdio.h >

int main()
{
    //Relational Operators

    int a = 10, b = 20;
    int temp;

    temp = (a == b);

    printf("value of temp is %d\n", temp);

    return 0;
}

Output:
value of temp is 0

!= inequality operator

 
#include < stdio.h >

int main()
{
    //Relational Operators

    int a = 10, b = 10;
    int temp;

    temp = (a != b);

    printf("value of temp is %d\n", temp);

    return 0;
}

Output:
value of temp is 0

 
#include < stdio.h >

int main()
{
    //Relational Operators

    int a = 10, b = 20;
    int temp;

    temp = (a != b);

    printf("value of temp is %d\n", temp);

    return 0;
}

Output:
value of temp is 1

> operator

 
#include < stdio.h >

int main()
{
    //Relational Operators

    int a = 20, b = 10;
    int temp;

    temp = (a > b);

    printf("value of temp is %d\n", temp);

    return 0;
}

Output:
value of temp is 1

< operator

 
#include < stdio.h >

int main()
{
    //Relational Operators

    int a = 20, b = 10;
    int temp;

    temp = (a < b);

    printf("value of temp is %d\n", temp);

    return 0;
}

Output:
value of temp is 0

>= operator

 
#include < stdio.h >

int main()
{
    //Relational Operators

    int a = 20, b = 10;
    int temp;

    temp = (a >= b);

    printf("value of temp is %d\n", temp);

    return 0;
}

Output:
value of temp is 1

<= operator

 
#include < stdio.h >

int main()
{
    //Relational Operators

    int a = 20, b = 10;
    int temp;

    temp = (a <= b);

    printf("value of temp is %d\n", temp);

    return 0;
}

Output:
value of temp is 0

Scanf(): For user input

In above c program we are asking user to enter the values for variable a and b. You can know more about scanf() method/function in this video tutorial: Using Scanf in C Program

Relational Operators In C


[youtube https://www.youtube.com/watch?v=8wlJ4bo110Y]

YouTube Link: https://www.youtube.com/watch?v=8wlJ4bo110Y [Watch the Video In Full Screen.]


Note: = is assignment operator. == is equality operator.

This video was produced as building block for our simple calculator application.

For full C programming language free video tutorial list visit:C Programming: Beginner To Advance To Expert