Sail E0 Webinar

MCQs

Total Questions : 63 | Page 4 of 7 pages
Question 31.


What will be the output of the program?


#include<stdio.h>
int fun(int, int);
typedef int (*pf) (int, int);
int proc(pf, int, int);
int main()
{
printf("%d\n", proc(fun, 6, 6));
return 0;
}
int fun(int a, int b)
{
return (a==b);
}
int proc(pf p, int a, int b)
{
return ((*p)(a, b));
}
  1.    6
  2.    1
  3.    0
  4.    -1
 Discuss Question
Answer: Option B. -> 1


Question 32.


What will be the output of the program?


#include<stdio.h>
int check (int, int);
int main()
{
int c;
c = check(10, 20);
printf("c=%d\n", c);
return 0;
}
int check(int i, int j)
{
int *p, *q;
p=&i;
q=&j;
i>=45 ? return(*p): return(*q);
}
  1.    Print 10
  2.    Print 20
  3.    Print 1
  4.    Compile error
 Discuss Question
Answer: Option D. -> Compile error

There is an error in this line i>=45 ? return(*p): return(*q);. We cannot use

 returnkeyword in the terenary operators.


Question 33.


What will be the output of the program?


#include<stdio.h>
int main()
{
int fun(int);
int i = fun(10);
printf("%d\n", --i);
return 0;
}
int fun(int i)
{
return (i++);
}
  1.    9
  2.    10
  3.    11
  4.    8
 Discuss Question
Answer: Option A. -> 9

Step 1: int fun(int); Here we declare the prototype of the function fun().

Step 2: int i = fun(10); The variable i is declared as an integer type and 

the result of the fun(10) will be stored in the variable i.

Step 3: int fun(int i){ return (i++); } Inside the fun() we are returning a value

 return(i++). It returns 10. because i++ is the post-increement operator.

Step 4: Then the control back to the main function and the value 10 is assigned

 to variable i.

Step 5: printf("%dn", --i); Here --i denoted pre-increement. Hence it prints the value 9.


Question 34.


What will be the output of the program?


#include<stdio.h>
int main()
{
void fun(char*);
char a[100];
a[0] = 'A'; a[1] = 'B';
a[2] = 'C'; a[3] = 'D';
fun(&a[0]);
return 0;
}
void fun(char *a)
{
a++;
printf("%c", *a);
a++;
printf("%c", *a);
}
  1.    AB
  2.    BC
  3.    CD
  4.    No output
 Discuss Question
Answer: Option B. -> BC


Question 35.


What will be the output of the program?


#include<stdio.h>
int sumdig(int);
int main()
{
int a, b;
a = sumdig(123);
b = sumdig(123);
printf("%d, %d#92;n", a, b);
return 0;
}
int sumdig(int n)
{
int s, d;
if(n!=0)
{
d = n%10;
n = n/10;
s = d+sumdig(n);
}
else
return 0;
return s;
}
  1.    4, 4
  2.    3, 3
  3.    6, 6
  4.    12, 12
 Discuss Question
Answer: Option C. -> 6, 6

No answer description available for this question. 


Question 36.


What will be the output of the program?


#include<stdio.h>
void fun(int);
typedef int (*pf) (int, int);
int proc(pf, int, int);
int main()
{
int a=3;
fun(a);
return 0;
}
void fun(int n)
{
if(n > 0)
{
fun(--n);
printf("%d,", n);
fun(--n);
}
}
  1.    0, 2, 1, 0,
  2.    1, 1, 2, 0,
  3.    0, 1, 0, 2,
  4.    0, 1, 2, 0,
 Discuss Question
Answer: Option D. -> 0, 1, 2, 0,


Question 37.


What will be the output of the program?


#include<stdio.h>
int reverse(int);
int main()
{
int no=5;
reverse(no);
return 0;
}
int reverse(int no)
{
if(no == 0)
return 0;
else
printf("%d,", no);
reverse (no--);
}
  1.    Print 5, 4, 3, 2, 1
  2.    Print 1, 2, 3, 4, 5
  3.    Print 5, 4, 3, 2, 1, 0
  4.    Infinite loop
 Discuss Question
Answer: Option D. -> Infinite loop

Step 1: int no=5; The variable no is declared as integer type and initialized to 5.

Step 2: reverse(no); becomes reverse(5); It calls the function reverse() with '5' as parameter.

The function reverse accept an integer number 5 and it returns '0'(zero) if(5 == 0) if the given 

number is '0'(zero) or else printf("%d,", no); it prints that number 5 and calls the function reverse(5);.

The function runs infinetely because the there is a post-decrement operator is used. It will not decrease

 the value of 'n' before calling the reverse() function. So, it calls reverse(5) infinitely.

Note: If we use pre-decrement operator like reverse(--n), then the output will be 5, 4, 3, 2, 1. Because 

before calling the function, it decrements the value of 'n'.


Question 38.


What will be the output of the program in 16 bit platform (Turbo C under DOS)?


#include<stdio.h>
int main()
{
int fun();
int i;
i = fun();
printf("%d\n", i);
return 0;
}
int fun()
{
_AX = 1990;
}
  1.    Garbage value
  2.    0 (Zero)
  3.    1990
  4.    No output
 Discuss Question
Answer: Option C. -> 1990

Turbo C (WINDOW ): The return value of the function is taken from the Accumulator _AX=1990.

But it may not work as expected in GCC compiler (Linux).



Question 39.


What will be the output of the program?


#include<stdio.h>
void fun(int*, int*);
int main()
{
int i=5, j=2;
fun(&i, &j);
printf("%d, %d", i, j);
return 0;
}
void fun(int *i, int *j)
{
*i = *i**i;
*j = *j**j;
}
  1.    5, 2
  2.    10, 4
  3.    2, 5
  4.    25, 4
 Discuss Question
Answer: Option D. -> 25, 4

Step 1: int i=5, j=2; Here variable i and j are declared as an integer type and 

initialized to 5 and 2 respectively.

Step 2: fun(&i, &j); Here the function fun() is called with two parameters &i and 

&j (The & denotes call by reference. So the address of the variable i and j are passed. )

Step 3: void fun(int *i, int *j) This function is called by reference, so we have to use

 * before the parameters.

Step 4: *i = *i**i; Here *i denotes the value of the variable i. We are multiplying 5*5 and 

storing the result 25 in same variable i.

Step 5: *j = *j**j; Here *j denotes the value of the variable j. We are multiplying 2*2 and 

storing the result 4 in same variable j.

Step 6: Then the function void fun(int *i, int *j) return back the control back to main()function.

Step 7: printf("%d, %d", i, j); It prints the value of variable i and j.

Hence the output is 25, 4.


Question 40.


What will be the output of the program?


#include<stdio.h>
int i;
int fun();
int main()
{
while(i)
{
fun();
main();
}
printf("Hello\n");
return 0;
}
int fun()
{
printf("Hi");
}
  1.    Hello
  2.    Hi Hello
  3.    No output
  4.    Infinite loop
 Discuss Question
Answer: Option A. -> Hello

Step 1: int i; The variable i is declared as an integer type.

Step 1: int fun(); This prototype tells the compiler that the function fun() does not accept any arguments and it returns an integer value.

Step 1: while(i) The value of i is not initialized so this while condition is failed. So, it does not execute the while block.

Step 1: printf("Hellon"); It prints "Hello".

Hence the output of the program is "Hello".


Latest Videos

Latest Test Papers