## Programming-for-Output-Problems

 Question 1
Consider the following C program:
```        #include <stdio.h>
int main ()  {
int arr [] = {1,2,3,4,5,6,7,8,9,0,1,2,5}, *ip = arr+4;
printf ("%d\n", ip[1]);
return 0;
}
```

The number that will be displayed on execution of the program is _____.

 A 5 B 6 C 7 D 8
Programming-for-Output-Problems       GATE 2019
Question 1 Explanation:

We know that arr is a pointer to arr[ ] & hence arr+4 is pointer to 4th index of array (starting from 0 to 4).
Now *ip is a pointer of int type pointing to memory location108, which is part of arr.
Hence, when we will print ip[1] it will be equivalent to *(ip+1).
Address of ip will be incremented by 1 & value inside 110 will be printed.
 Question 2
Consider the following C program:
```         #include <stdio.h>
int jumble (int x, int y)  {
x = 2 * x + y ;
return x ;
}
int main ( )  {
int x=2, y=5 ;
y = jumble (y, x) ;
x = jumble (y, x) ;
printf ("%d \n", x) ;
return 0 ;
}
```
The value printed by the program is ______.
 A 26 B 67 C 25 D 13
Programming-for-Output-Problems       GATE 2019
Question 2 Explanation:
////////////////////////////////////Program
#include
int jumble(int x, int y)
{
printf("Inside jumble : 2*%d + %d\n", x,y);
x = 2*x +y;
return x;
}
int main()
{
int x=2, y=5;
printf("Initial x=%d, y=%d\n",x,y);
printf("1st jumble call:jumble(%d,%d)\n",y,x);
y = jumble(y,x);
printf("Value of y after 1st jumble = %d\n", y);
printf("2nd jumble call: jumble(%d,%d)\n", y,x);
x = jumble(y,x);
printf("Value of x after 2nd jumble = %d\n", x);
printf("Final : %d\n", x);
return 0;
}
////////////////////////////////////OUTPUT
Initial x=2, y=5
1st jumble call: jumble(5,2)
Inside jumble : 2*5 + 2
Value of y after 1st jumble = 12
2nd jumble call: jumble(12,2)
Inside jumble : 2*12 + 2
Value of x after 2nd jumble = 26
Final : 26
 Question 3
Consider the following C program:
```       #include <stdio.h>
int main()
{
int a[] = {2, 4, 6, 8, 10} ;
int i, sum = 0, *b = a + 4 ;
for (i = 0; i < 5; i++)
sum = sum + (*b - i) - *(b - i) ;
printf ("%d\n", sum) ;
return 0 ;
}
```
The output of the above C program is _____.
 A 3 B 7 C 11 D 10
Programming-for-Output-Problems       GATE 2019
Question 3 Explanation:
///////////////////////////////////PROGRAM
#include
int main()
{
int a[] = {2,4,6,8,10};
int i, sum = 0, *b = a+4;
for(i=0; i<5; i++)
{ printf("*b, (*b-i): %d , %d\n",*b, (*b-i) );
printf("*(b-i): %d\n",*(b-i) );
printf("sum = %d + %d - %d\n",sum, (*b-i),*(b-i));
sum = sum + (*b-i) - *(b-i);
printf("sum = %d\n", sum);
}
printf("%d\n", sum);
return 0;
}
//////////////////////////////OUTPUT
*b, (*b-i): 10 , 10
*(b-i): 10
sum = 0 + 10 - 10
sum = 0
*b, (*b-i): 10 , 9
*(b-i): 8
sum = 0 + 9 - 8
sum = 1
*b, (*b-i): 10 , 8
*(b-i): 6
sum = 1 + 8 - 6
sum = 3
*b, (*b-i): 10 , 7
*(b-i): 4
sum = 3 + 7 - 4
sum = 6
*b, (*b-i): 10 , 6
*(b-i): 2
sum = 6 + 6 - 2
sum = 10
10
 Question 4
Consider the following C program:
```             #include <stdio.h>
int r()  {
static int num=7 ;
return num-- ;
}
int main ()  {
for (r(); r (); r())
printf ("%d", r());
return 0 ;
}
```

Which one of the following values will be displayed on execution of the programs?

 A 41 B 63 C 52 D 630
Programming-for-Output-Problems       GATE 2019
Question 4 Explanation:
///////////////////////////PROGRAM
#include
int r()
{
int x;
static int num=7;
x =num--;
printf("num--: %d\n",x);
return x;
}
int main()
{
for(r(); r(); r())
{
printf("%d\n", r());
}
return 0;
}
//////////////////////////////OUTPUT
num--: 7
num--: 6
num--: 5
5
num--: 4
num--: 3
num--: 2
2
num--: 1
num--: 0
 Question 5
Consider the following C function.
```               void convert (int n) {
if (n < 0)
printf ("%d", n);
else {
convert (n/2);
printf ("%d", n%2);
}
}
```

Which one of the following will happen when the function convert is called with any positive integer n as argument?

 A It will print the binary representation of n in the reverse order and terminate B It will not print anything and will not terminate C It will print the binary representation of n and terminate D It will print the binary representation of n but will not terminate
Programming-for-Output-Problems       GATE 2019
Question 5 Explanation:
////////////////OUTPUT
Sequence of function calls
Convert(6)
Convert(3)
Convert(1)
Convert(0)
:
Convert(0)
:
:
It will not terminate and never produce any output.
Note:
There is no instruction which stops the loop.
 Question 6
Consider the following C program:
```       #include <stdio.h>
int main ()  {
float sum = 0.0, j = 1.0, i = 2.0;
while (i/j > 0.0625) {
j = j + j;
sum = sum + i/j;
printf ("%f \n", sum);
}
return 0;
}
```

The number of times the variable sum will be printed, when the above program is executed , is ______.

 A 5 B 2 C 7 D 10
Programming-for-Output-Problems       GATE 2019
Question 6 Explanation:
///////////////////////////////// PROGRAM
#include
int main()
{
float sum= 0.0, j=1.0, i=2.0;
while(i/j > 0.0625)
{
j = j+j;
sum = sum+i/j;
printf("%f\n",sum);
}
return 0;
}
//////////////////////////////////OUTPUT
1.000000
1.500000
1.750000
1.875000
1.937500
There are 6 questions to complete.