Conditional Operator in C or Statements Tutorial
Table of Contents
Learn Conditional Operator in C MCQ Questions and Answers on Basics to attend job placement exams, interview questions, college viva and Lab Tests
Conditional Operator in C
In real world, solution to any problem relies on the decision we make. Decision is nothing but a condition. C language has conditional operators or statements to deal with conditions or to make decisions. A condition is as simple as an Equals To comparison. Conditional operators are also called Relational Operators in c language.
If a statement satisfies a particular condition, one set of statements are executed. Otherwise another set of instructions are executed. Here, keep in mind that the number of conditions are more than 2 in most of the situation.
Result of a conditional statement is either true or false. Any Non Zero value is always treated as TRUE. Zero is treated as false.
We shall explain Ternary Conditional Operator ?: ( Question Mark Colon ) at the end of this tutorial.
List of popular Conditional Operator in C or Relational operators
Note that there is no space between any individual single operators. = = is not equal to == operator for example.
SNO | Conditional Operator in C | Description |
1. | < | Less than |
2. | <= | Less than or equal to |
3. | > | Greater than |
4. | >= | Greater than or equal to |
5. | == | Equals to |
6. | != | Not Equal to |
Conditional Operator in C
Conditional statements in C language are implemented using IF, ELSE IF and ELSE statements. Note that these keywords should be written in lower case always.
Various combinations of if-else statements in c programming language are as below.
if(condition1) { //statements1; } //---------------------- if(condition1) { //statements1; } else { //statements2; } //---------------------- if(condition1) { //statements1; } else if(condition2) { //statements2; } //--------------------- if(condition1) { //statements1; } else if(condition2) { //statements2; } else { //statements3; }
Conditional Operator
Note: It is a good practice to keep opening and closing Braces { } for each IF block or ELSE block for clear understanding and to avoid mistakes. It is a must to use braces if more than 1 statement is present inside an IF or ELSE block. We used the word “block” to represent block of code under single IF or ELSE.
Observations on usage of IF, ELSE IF and ELSE:
- There is a SPACE between ELSE and IF. so ELSEIF is wrong.
- You can use only IF statement without ELSE.
- You can use IF, ELSE IF statements without ELSE at the end.
- For single line statements, curly braces are not required.
- You need not use ELSE IF always. ELSE is useful to check second or higher condition after first IF.
- You can nest IF, ELSE IF and ELSE statements inside any one.
Example 1:
int main() { int a=10; if(a>10) printf("YES"); else printf("NO"); return 9; } //output: NO //single statement need not be put inside braces{ }
Need for Braces { } Example 2:
int main() { int a=10; if(a>10) printf("YES"); printf("-ANT"); else printf("NO"); return 9; } //Output: error // to put more than one statement inside // if or else block, use braces { } // if(a>10) // { printf("YES"); // printf("-ANT"); // }
Example 3:
int main() { int a=8; if(a==9) printf("YES"); else if(a != 8) printf("NO"); else printf("ANT"); return 9; } //output: //ANT
Example 4: Nesting of IF, ELSE IF and ELSE
int main() { int category=9; if(category < 10) { if(category > 5) { printf("SUPERVISOR and above"); } else { printf("UP to CLERK cadre."); } } else { printf("MANAGER and above."); } return 9; } //output: // category=9; //output= SUPERVISOR and above. // //category=10; //output= MANAGER and above.
Conditional Operator in C examples
Ternary Operator ?: Operator
Syntax for Ternary Operator: (Condition) ? (True Part Expression) : (False Part Expression) ;
Example
int main() { int a=20; (a >= 20)? printf("YES"): printf("NO"); return 0; } //output: YES
You can keep printf statements in true and false parts of a Ternary Operator. Semicolon at the end is compulsory as it will tell the compiler about end of a statement.
Example 2: Nesting of Ternary Operator
int main() { int a=20; (a >= 20)? (a!20 ? printf("YES"):printf("CARROT")): printf("ANT"); return 0; } //output: CARROT
Nesting of Ternary operator is achieved through proper use of Parantheses ( ) to separate True Part Expression and False Part Expression.
Assignment Statements with Ternary Operator
int main() { int a=20; int c = a > 10 ? 5 : 8; printf("%d", c); return 0; } //output: 5
We have not used any parantheses in the above assignment operation using ternary operator.
Assignment Statements with Ternary Operator Example 4
int main() { int a=20, b=0; int c = a > 10 ? 5 : b=8; printf("%d", c); return 0; } //output: ERROR //correct statement (b=8) with parantheses
In the example above we are making two assignments, one to c variable and another to b variable at the end. Ternaray operator should be used carefully with proper parantheses to separate code parts. Adding a parantheses ( ) to b=8 solves the problem.
[WpProQuiz 27]
Conditional Operator in C MCQ
1) What is the output of C Program.?
int main() { int x=1; float y = 1.0; if(x == y) { printf("Polo\n"); } if( 1 == 1.0) { printf("Golf\n"); } if( 1.0 == 1.0f ) { printf("Boxing\n"); } return 0; }
A) No Output
B) Boxing
C) Golf Boxing
D) Polo Golf Boxing
Answer [=] D
Explanation:
Integer is promoted to float or double automatically before comparison. So all are equal.
1 == 1.0 == 1.0f
2) What is the output of C Program.?
int main() { int a=9; if(a=8) { printf("Kangaroo\n"); } printf("Eggs\n"); return 0; }
A) No output
B) Eggs
C) Kangaroo Eggs
D) Compiler error
Answer [=] C
Explanation:
a=8 is an assignment not comparison. IF( Non Zero) is always TRUE.
3) What is the output of C Program.?
int main() { int a=9; if(a==5); { printf("Kangaroo\n"); } printf("Eggs\n"); return 0; }
A) Eggs
B) Kangaroo Eggs
C) No output
D) Compiler error
Answer [=] B
Explanation:
Notice a Semicolon at the end of IF(a==5);. So IF block ends without any statements. Also, { } is not part of IF now. So it is executed without checking for any condition.
4) What is the output of C Program.?
int main() { int a=9; if(a==9); { printf("Ostrich\n"); } elseif(a==8) { printf("Eggs\n"); } printf("White"); return 0; }
A) White
B) Ostrich White
C) No Ouput
D) Compiler error
Answer [=] D
Explanation:
Notice IFELSE statement. There should be one SPACE between IF and ELSE.
5) What is the output of C Program.?
int main() { int a=9; if(a==9) { printf("Ostrich\n"); } else; { printf("Eggs\n"); } printf("White"); return 0; }
A) White
B) Ostrich White
C) Ostrich Eggs White
D) Compiler Error
Answer [=] C
Explanation:
Notice a Semicolon (;) at the end of ELSE. So ELSE is terminated immediately. Eggs Printf block is not part of ELSE and is always called.
6) What is the output of C Program.?
int main() { int a=9, b=5, c=8; a=b=c=10; if(a==9) { printf("Ostrich\n"); } else { printf("Eggs\n"); } printf("White"); return 0; }
A) Ostrich Eggs White
B) Ostrich White
C) Eggs White
D) Compiler error as you can not assign to more than two variables at once.
Answer [=] C
7) What is the output of C Program.?
int main() { int a=9, b=5, c=8; if(!(a==9)) { printf("Bear\n"); } else { printf("Elephant\n"); } printf("Fox"); return 0; }
A) Bear Fox
B) Elephant Fox
C) Fox
D) Compiler error
Answer [=] B
Explanation:
Logical Not Operator ( ! ) changes true to false and false to true. So IF(false) is not executed.
8) What is the Priority of C Logical Operators.? NOT (!), AND (&&) and OR (||)
A) NOT (!) > AND (&&) > OR (||)
B) NOT (!) > AND (&&) = OR (||)
C) AND (&&) > OR (||) > NOT (!)
D) AND (&&) = OR (||) > NOT (!)
Answer [=] A
Explanation:
Logical NOT Operator in C has the highest priority.
9) What is the output of C Program.?
int main() { int a=9, b; b = (a==9) ? (printf("CAT\n");printf("DOG\n")) : (printf("FOX")); return 0; }
A) CAT DOG
B) FOX
C) CAT DOG FOX
D) Compiler error
Answer [=] D
Explanation:
You can not put more than 1 statement inside expression1 or expression2 inside Ternary Operator.
(Condition)?(expression1):(expression2)
10) What is the output of C Program.?
int main() { int a=9, b=6; if(a==9 && b==6) { printf("Hockey"); } else { printf("Cricket"); } return 0; }
A) Cricket Football
B) Hockey Football
C) Football
D) Compiler error
Answer [=] B
Explanation:
== operator has more priority than &&. Logical && AND operator returns true only if both expressions are true.
11) What is the output of C Program.?
int main() { int a=9, b=6; if(a!=9 || b==6) { printf("Hockey\n"); } else { printf("Cricket\n"); } printf("Football"); return 0; }
A) Cricket Football
B) Hockey Football
C) Football
D) Compiler error
Answer [=] B
Explanation:
Logical OR || operator returns true if any one expression is true.
12) Choose a correct C Operator Priority.? Items in one group ( ) has same priority.
A) ( ! ) < (*, /, %) < (+, -) < ( <, <=, >, >=) < (==, !=) < (&&) < (||) < (=)
B) (( ! ) , (*, /, %) , (+, -)) < ( <, <=, >, >=) < (==, !=) < (&&) < (||) < (=)
C) ( ! ) > (*, /, %) > (+, -) > ( <, <=, >, >=) > (==, !=) > (&&) > (||) > (=)
D) (( ! ) , (*, /, %) , (+, -)) > ( <, <=, >, >=) > (==, !=) > (&&) > (||) > (=)
Answer [=] C
Explanation:
( ! Logical NOT ) > (*, /, % Arithmetic) > (+, – Arithmetic) > ( <, <=, >, >= Relational) > (==, != Relational) > (&& Logical AND) > (|| Logical OR) > (= Assignment).
13) What is the output of C Program.?
int main() { int a=5, b=8; if( a==5 && (b=9) ) { printf("Gorilla Glass="); } printf("%d %d", a, b); return 0; }
A) 5 8
B) 5 9
C) Gorilla Glass=5 8
D) Gorilla Glass=5 9
Answer [=] D
Explanation:
In IF( a==5 && (b=9) ), && Operator checks both expressions for true or Non Zero value. So after checking a==5, b=9 is checked. Here b==9 is checking, but b=9 is assignment. Any NON-Zero value is true only. So b=9 now.
14) What is the output of C Program.?
int main() { int a=5, b=8; if( a==5 || (b=9) ) { printf("Gorilla Glass="); } printf("%d %d", a, b); return 0; }
A) 5 8
B) 5 9
C) Gorilla Glass=5 8
D) Gorilla Glass=5 9
Answer [=] C
Explanation:
Logical OR || checks wants only one TRUE condition. First expression (a==5) or even (a=5) is true. So second expression (b=9) is not evaluated and assignment not done. So b=8 only.
15) Choose a correct C Statement.
A) Nesting of ? : operator is possible.
B)
int main() { int a=5, b=8; if( a>=5 || (b=9) ) { printf("Gorilla Glass"); } return 0; } //OUTPUT: Gorilla Glass
C)
int main() { int a=5, b=8; if( a >= 5 && b <= 9 ) { printf("Gorilla Glass"); } return 0; } //OUTPUT: Gorilla Glass
D) All the above
Answer [=] D