Question 12
CORRECT
#include <stdio.h>
int
main()
{
int
i;
for
(i = 1; i != 10; i += 2)
printf
(
" GeeksQuiz "
);
return
0;
}
GeeksQuiz GeeksQuiz GeeksQuiz GeeksQuiz GeeksQuiz
GeeksQuiz GeeksQuiz GeeksQuiz .... infinite times
GeeksQuiz GeeksQuiz GeeksQuiz GeeksQuiz
GeeksQuiz GeeksQuiz GeeksQuiz GeeksQuiz GeeksQuiz GeeksQuiz
Discuss it
Question 12 Explanation:
The loop termination condition never becomes true and the loop prints GeeksQuiz infinite times. In general, if a for or while statement uses a loop counter, then it is safer to use a relational operator (such as <) to terminate the loop than using an inequality operator (operator !=).
Question 13
CORRECT
What will be the output of the following C program segment? (GATE CS 2012)
char
inchar =
'A'
;
switch
(inchar)
{
case
'A'
:
printf
(
"choice A \n"
) ;
case
'B'
:
printf
(
"choice B "
) ;
case
'C'
:
case
'D'
:
case
'E'
:
default
:
printf
(
"No Choice"
) ;
}
No choice
Choice A
Choice A
Choice B No choice
Program gives no output as it is erroneous
Discuss it
Question 13 Explanation:
There is no break statement in case ‘A’. If a case is executed and it doesn’t contain break, then all the subsequent cases are executed until a break statement is found. That is why everything inside the switch is printed. Try following program as an exercise.int main()
{
char inchar = 'A';
switch (inchar)
{
case 'A' :
printf ("choice A \n") ;
case 'B' :
{
printf ("choice B") ;
break;
}
case 'C' :
case 'D' :
case 'E' :
default:
printf ("No Choice") ;
}
}
Question 14
CORRECT
Predict the output of the below program:
#include <stdio.h>
int
main()
{
int
i = 3;
switch
(i)
{
printf
(
"Outside "
);
case
1:
printf
(
"Geeks"
);
break
;
case
2:
printf
(
"Quiz"
);
break
;
defau1t:
printf
(
"GeeksQuiz"
);
}
return
0;
}
Outside GeeksQuiz
GeeksQuiz
Nothing gets printed
Discuss it
Question 14 Explanation:
In a switch block, the control directly flows within the case labels(or dafault label). So, statements which do not fall within these labels, Outside is not printed. Please take a closer look at the default label. Its defau1t, not default which s interpreted by the compiler as a label used for goto statements. Hence, nothing is printed in the above program.
Question 15
CORRECT
In the following program, X represents the Data Type of the variable check.
#include <stdio.h>
int
main()
{
X check;
switch
(check)
{
// Some case labels
}
return
0;
}
Which of the following cannot represent X?
int
char
enum
float
Discuss it
Question 15 Explanation:
A switch expression can be int, char and enum. A float variable/expression cannot be used inside switch.
Question 16
****CORRECT
What is the output of the following program?
#include <stdio.h>
int
main()
{
char
check =
'a'
;
switch
(check)
{
case
'a'
|| 1:
printf
(
"Geeks "
);
case
'b'
|| 2:
printf
(
"Quiz "
);
break
;
default
:
printf
(
"GeeksQuiz"
);
}
return
0;
}
Geeks
Geeks Quiz
Geeks Quiz GeeksQuiz
Compile-time error
Discuss it
Question 16 Explanation:
An expression gets evaluated in a case label. Both the cases used are evaluated to 1(true). So compile-time error: duplicate case value is flashed as duplicated cases are not allowed.
Question 17
***********WRONG
Predict the output of the following program:
#include <stdio.h>
int
main()
{
int
check = 20, arr[] = {10, 20, 30};
switch
(check)
{
case
arr[0]:
printf
(
"Geeks "
);
case
arr[1]:
printf
(
"Quiz "
);
case
arr[2]:
printf
(
"GeeksQuiz"
);
}
return
0;
}
Quiz
Quiz GeeksQuiz
GeeksQuiz
Compile-time error
Discuss it
Question 17 Explanation:
The case labels must be constant inside switch block. Thats why the compile-time error: case label does not reduce to an integer constant is flashed.
Question 18
CORRECT
How many times GeeksQuiz is printed
#include<stdio.h>
int
main()
{
int
i = -5;
while
(i <= 5)
{
if
(i >= 0)
break
;
else
{
i++;
continue
;
}
printf
(
"GeeksQuiz"
);
}
return
0;
}
10 times
5 times
Infinite times
0 times
Discuss it
Question 18 Explanation:
The loop keeps incrementing i while it is smaller than 0. When i becomes 0, the loop breaks. So GeeksQuiz is not printed at all.
Question 19
CORRECT
#include <stdio.h>
int
main()
{
int
i = 3;
while
(i--)
{
int
i = 100;
i--;
printf
(
"%d "
, i);
}
return
0;
}
Infinite Loop
99 99 99
99 98 97
2 2 2
Discuss it
Question 19 Explanation:
Note that the i–- in the statement while(i-–) changes the i of main() And i== just after declaration statement int i=100; changes local i of while loop.
Question 20
****WRONG
#include <stdio.h>
int
main()
{
int
x = 3;
if
(x == 2); x = 0;
if
(x == 3) x++;
else
x += 2;
printf
(
"x = %d"
, x);
return
0;
}
x = 4
x = 2
Compiler Error
x = 0
Discuss it
Question 20 Explanation:
Value of x would be 2. Note the semicolon after first if statement. x becomes 0 after the first if statement. So control goes to else part of second if else statement.
Question 21
***WRONG
#include<stdio.h>
int
main()
{
int
a = 5;
switch
(a)
{
default
:
a = 4;
case
6:
a--;
case
5:
a = a+1;
case
1:
a = a-1;
}
printf
(
"%d \n"
, a);
return
0;
}
3
4
5
None of these
Discuss it
note-- execution from default on ward starts only whwn there is no matching
Question 21 Explanation:
There is no break statement, so first a = a + 1 is executed, then a = a-1 is executed.
Question 22
CORRECT
Which combination of the integer variables x, y and z makes the variable a get the value 4 in the following expression?
a = ( x > y ) ? (( x > z ) ? x : z) : (( y > z ) ? y : z )
x = 3, y = 4, z = 2
x = 6, y = 5, z = 3
x = 6, y = 3, z = 5
x = 5, y = 4, z = 5
Discuss it
Question 22 Explanation:
The given expression assigns maximum among three elements (x, y and z) to a.
Question 23
WRONG
Consider the C program below.
#include <stdio.h>
int
*A, stkTop;
int
stkFunc (
int
opcode,
int
val)
{
static
int
size=0, stkTop=0;
switch
(opcode)
{
case
-1:
size = val;
break
;
case
0:
if
(stkTop < size ) A[stkTop++]=val;
break
;
default
:
if
(stkTop)
return
A[--stkTop];
}
return
-1;
}
int
main()
{
int
B[20];
A=B;
stkTop = -1;
stkFunc (-1, 10);
stkFunc (0, 5);
stkFunc (0, 10);
printf
(
"%d\n"
, stkFunc(1, 0)+ stkFunc(1, 0));
}
The value printed by the above program is ___________
9
10
15
17
Discuss it
Question 23 Explanation:
The code in main, basically initializes a stack of size 10, then pushes 5, then pushes 10. Finally the printf statement prints sum of two pop operations which is 10 + 5 = 15. stkFunc (-1, 10); // Initialize size as 10
stkFunc (0, 5); // push 5
stkFunc (0, 10); // push 10
// print sum of two pop
printf ("%d\n", stkFunc(1, 0) + stkFunc(1, 0));
You have completed 23/23 questions .
Your score is 61%.
Question 12
CORRECT
|
#include <stdio.h> int main() { int i; for (i = 1; i != 10; i += 2) printf ( " GeeksQuiz " ); return 0; } |
GeeksQuiz GeeksQuiz GeeksQuiz GeeksQuiz GeeksQuiz
| |
GeeksQuiz GeeksQuiz GeeksQuiz .... infinite times
| |
GeeksQuiz GeeksQuiz GeeksQuiz GeeksQuiz
| |
GeeksQuiz GeeksQuiz GeeksQuiz GeeksQuiz GeeksQuiz GeeksQuiz
|
Discuss it
Question 12 Explanation:
The loop termination condition never becomes true and the loop prints GeeksQuiz infinite times. In general, if a for or while statement uses a loop counter, then it is safer to use a relational operator (such as <) to terminate the loop than using an inequality operator (operator !=).
Question 13
CORRECT
|
What will be the output of the following C program segment? (GATE CS 2012)
char inchar = 'A' ; switch (inchar) { case 'A' : printf ( "choice A \n" ) ; case 'B' : printf ( "choice B " ) ; case 'C' : case 'D' : case 'E' : default : printf ( "No Choice" ) ; } |
No choice
| |
Choice A
| |
Choice A
Choice B No choice | |
Program gives no output as it is erroneous
|
Discuss it
Question 13 Explanation:
There is no break statement in case ‘A’. If a case is executed and it doesn’t contain break, then all the subsequent cases are executed until a break statement is found. That is why everything inside the switch is printed. Try following program as an exercise.
int main() { char inchar = 'A'; switch (inchar) { case 'A' : printf ("choice A \n") ; case 'B' : { printf ("choice B") ; break; } case 'C' : case 'D' : case 'E' : default: printf ("No Choice") ; } }
Question 14
CORRECT
|
Predict the output of the below program:
#include <stdio.h> int main() { int i = 3; switch (i) { printf ( "Outside " ); case 1: printf ( "Geeks" ); break ; case 2: printf ( "Quiz" ); break ; defau1t: printf ( "GeeksQuiz" ); } return 0; } |
Outside GeeksQuiz
| |
GeeksQuiz
| |
Nothing gets printed
|
Discuss it
Question 14 Explanation:
In a switch block, the control directly flows within the case labels(or dafault label). So, statements which do not fall within these labels, Outside is not printed. Please take a closer look at the default label. Its defau1t, not default which s interpreted by the compiler as a label used for goto statements. Hence, nothing is printed in the above program.
Question 15
CORRECT
|
In the following program, X represents the Data Type of the variable check.
Which of the following cannot represent X?
#include <stdio.h> int main() { X check; switch (check) { // Some case labels } return 0; } |
int
| |
char
| |
enum
| |
float
|
Discuss it
Question 15 Explanation:
A switch expression can be int, char and enum. A float variable/expression cannot be used inside switch.
Question 16
****CORRECT
|
What is the output of the following program?
#include <stdio.h> int main() { char check = 'a' ; switch (check) { case 'a' || 1: printf ( "Geeks " ); case 'b' || 2: printf ( "Quiz " ); break ; default : printf ( "GeeksQuiz" ); } return 0; } |
Geeks
| |
Geeks Quiz
| |
Geeks Quiz GeeksQuiz
| |
Compile-time error
|
Discuss it
Question 16 Explanation:
An expression gets evaluated in a case label. Both the cases used are evaluated to 1(true). So compile-time error: duplicate case value is flashed as duplicated cases are not allowed.
Question 17
***********WRONG
|
Predict the output of the following program:
#include <stdio.h> int main() { int check = 20, arr[] = {10, 20, 30}; switch (check) { case arr[0]: printf ( "Geeks " ); case arr[1]: printf ( "Quiz " ); case arr[2]: printf ( "GeeksQuiz" ); } return 0; } |
Quiz
| |
Quiz GeeksQuiz
| |
GeeksQuiz
| |
Compile-time error
|
Discuss it
Question 17 Explanation:
The case labels must be constant inside switch block. Thats why the compile-time error: case label does not reduce to an integer constant is flashed.
Question 18
CORRECT
|
How many times GeeksQuiz is printed
#include<stdio.h> int main() { int i = -5; while (i <= 5) { if (i >= 0) break ; else { i++; continue ; } printf ( "GeeksQuiz" ); } return 0; } |
10 times
| |
5 times
| |
Infinite times
| |
0 times
|
Discuss it
Question 18 Explanation:
The loop keeps incrementing i while it is smaller than 0. When i becomes 0, the loop breaks. So GeeksQuiz is not printed at all.
Question 19
CORRECT
|
#include <stdio.h> int main() { int i = 3; while (i--) { int i = 100; i--; printf ( "%d " , i); } return 0; } |
Infinite Loop
| |
99 99 99
| |
99 98 97
| |
2 2 2
|
Discuss it
Question 19 Explanation:
Note that the i–- in the statement while(i-–) changes the i of main() And i== just after declaration statement int i=100; changes local i of while loop.
Question 20
****WRONG
|
#include <stdio.h> int main() { int x = 3; if (x == 2); x = 0; if (x == 3) x++; else x += 2; printf ( "x = %d" , x); return 0; } |
x = 4
| |
x = 2
| |
Compiler Error
| |
x = 0
|
Discuss it
Question 20 Explanation:
Value of x would be 2. Note the semicolon after first if statement. x becomes 0 after the first if statement. So control goes to else part of second if else statement.
Question 21
***WRONG
|
#include<stdio.h> int main() { int a = 5; switch (a) { default : a = 4; case 6: a--; case 5: a = a+1; case 1: a = a-1; } printf ( "%d \n" , a); return 0; } |
3
| |
4
| |
5
| |
None of these
|
Discuss it
note-- execution from default on ward starts only whwn there is no matching
Question 21 Explanation:
There is no break statement, so first a = a + 1 is executed, then a = a-1 is executed.
Question 22
CORRECT
|
Which combination of the integer variables x, y and z makes the variable a get the value 4 in the following expression?
a = ( x > y ) ? (( x > z ) ? x : z) : (( y > z ) ? y : z ) |
x = 3, y = 4, z = 2
| |
x = 6, y = 5, z = 3
| |
x = 6, y = 3, z = 5
| |
x = 5, y = 4, z = 5
|
Discuss it
Question 22 Explanation:
The given expression assigns maximum among three elements (x, y and z) to a.
Question 23
WRONG
|
Consider the C program below.
The value printed by the above program is ___________
#include <stdio.h> int *A, stkTop; int stkFunc ( int opcode, int val) { static int size=0, stkTop=0; switch (opcode) { case -1: size = val; break ; case 0: if (stkTop < size ) A[stkTop++]=val; break ; default : if (stkTop) return A[--stkTop]; } return -1; } int main() { int B[20]; A=B; stkTop = -1; stkFunc (-1, 10); stkFunc (0, 5); stkFunc (0, 10); printf ( "%d\n" , stkFunc(1, 0)+ stkFunc(1, 0)); } |
9
| |
10
| |
15
| |
17
|
Discuss it
Question 23 Explanation:
The code in main, basically initializes a stack of size 10, then pushes 5, then pushes 10. Finally the printf statement prints sum of two pop operations which is 10 + 5 = 15.
stkFunc (-1, 10); // Initialize size as 10 stkFunc (0, 5); // push 5 stkFunc (0, 10); // push 10 // print sum of two pop printf ("%d\n", stkFunc(1, 0) + stkFunc(1, 0));
Your score is 61%.
No comments:
Post a Comment