Sail E0 Webinar

MCQs

Total Questions : 63 | Page 3 of 7 pages
Question 21.


Point out the error in the program


f(int a, int b)
{
int a;
a = 20;
return a;
}
  1.    Missing parenthesis in return statement
  2.    The function should be defined as int f(int a, int b)
  3.    Redeclaration of a
  4.    None of above
 Discuss Question
Answer: Option C. -> Redeclaration of a

f(int a, int b) The variable a is declared in the function argument statement.

int a; Here again we are declaring the variable a. Hence it shows the error "Redeclaration of a"


Question 22.


What will be the output of the program?


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

Step 1: int fun(int); This is prototype of function fun(). It tells the compiler that the function

 fun() accept one integer parameter and returns an integer value.

Step 2: int i=3; The variable i is declared as an integer type and initialized to value 3.

Step 3: fun(i=fun(fun(i)));. The function fun(i) increements the value of i by 1(one) and return it.

Lets go step by step,

=> fun(i) becomes fun(3) is called and it returns 4.

=> i = fun(fun(i)) becomes i = fun(4) is called and it returns 5 and stored in variable i.(i=5)

=> fun(i=fun(fun(i))); becomes fun(5); is called and it return 6 and nowhere the return value is stored.

Step 4: printf("%d`setminus`n", i); It prints the value of variable i.(5)

Hence the output is '5'.



Question 23.


What will be the output of the program?


#include<stdio.h>
int fun(int);
int main()
{
float k=3;
fun(k=fun(fun(k)));
printf("%f\n", k);
return 0;
}
int fun(int i)
{
i++;
return i;
}
  1.    5.000000
  2.    3.000000
  3.    Garbage value
  4.    4.000000
 Discuss Question
Answer: Option A. -> 5.000000

No answer description available for this question. 


Question 24.


What will be the output of the program?


#include<stdio.h>
int fun(int(*)());
int main()
{
fun(main);
printf("Hi\n");
return 0;
}
int fun(int (*p)())
{
printf("Hello ");
return 0;
}
  1.    Infinite loop
  2.    Hi
  3.    Hello Hi
  4.    Error
 Discuss Question
Answer: Option C. -> Hello Hi

No answer description available for this question. 


Question 25.


If int is 2 bytes wide.What will be the output of the program?


#include<stdio.h>
void fun(char**);
int main()
{
char *argv[] = {"ab", "cd", "ef", "gh"};
fun(argv);
return 0;
}
void fun(char **p)
{
char *t;
t = (p+= sizeof(int))[-1];
printf("%s\n", t);
}
  1.    ab
  2.    cd
  3.    ef
  4.    gh
 Discuss Question
Answer: Option B. -> cd

Since C is a machine dependent language sizeof(int) may return different values.

The output for the above program will be cd in Window (Turbo C) and gh in Linux (GCC).

To understand it better, compile and execute the above program in Windows (with Turbo C 

compiler) and in Linux (GCC compiler).



Question 26.


What will be the output of the program?


#include<stdio.h>
int check(int);
int main()
{
int i=45, c;
c = check(i);
printf("%d\n", c);
return 0;
}
int check(int ch)
{
if(ch >= 45)
return 100;
else
return 10;
}
  1.    100
  2.    10
  3.    1
  4.    0
 Discuss Question
Answer: Option A. -> 100

Step 1: int check(int); This prototype tells the compiler that the function check()accepts one

 integer parameter and returns an integer value.

Step 2: int l=45, c; The variable i and c are declared as an integer type and i is initialized to 45.

The function check(i) return 100 if the given value of variable i is >=(greater than or equal to) 45, 

else it will return 10.

Step 3: c = check(i); becomes c = check(45); The function check() return 100 and it get stored in

 the variable c.(c = 100)

Step 4: printf("%d`setminus`n", c); It prints the value of variable c.

Hence the output of the program is '100'.



Question 27.


What will be the output of the program?


#include<stdio.h>
int func1(int);
int main()
{
int k=35;
k = func1(k=func1(k=func1(k)));
printf("k=%d\n", k);
return 0;
}
int func1(int k)
{
k++;
return k;
}
  1.    k=35
  2.    k=36
  3.    k=37
  4.    k=38
 Discuss Question
Answer: Option D. -> k=38

Step 1: int k=35; The variable k is declared as an integer type and initialized to 35.

Step 2: k = func1(k=func1(k=func1(k))); The func1(k) increement the value of k by 1

 and return it. Here the func1(k) is called 3 times. Hence it increements value of k = 35

 to 38. The result is stored in the variable k = 38.

Step 3: printf("k=%d`setminus`n", k); It prints the value of variable k "38".



Question 28.


What will be the output of the program?


#include<stdio.h>
int i;
int fun1(int);
int fun2(int);
int main()
{
extern int j;
int i=3;
fun1(i);
printf("%d,", i);
fun2(i);
printf("%d", i);
return 0;
}
int fun1(int j)
{
printf("%d,", ++j);
return 0;
}
int fun2(int i)
{
printf("%d,", ++i);
return 0;
}
int j=1;
  1.    3, 4, 4, 3
  2.    4, 3, 4, 3
  3.    3, 3, 4, 4
  4.    3, 4, 3, 4
 Discuss Question
Answer: Option B. -> 4, 3, 4, 3

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

Step 2: int fun1(int); This prototype tells the compiler that the fun1() accepts the one integer 

parameter and returns the integer value.

Step 3: int fun2(int); This prototype tells the compiler that the fun2() accepts the one integer

 parameter and returns the integer value.

Step 4: extern int j; Inside the main function, the extern variable j is declared and defined in 

another source file.

Step 5: int i=3; The local variable i is defines as an integer type and initialized to 3.

Step 6: fun1(i); The fun1(i) increements the given value of variable i prints it. Here fun1(i) becomes

 fun1(3) hence it prints '4' then the control is given back to the mainfunction.

Step 7: printf("%d,", i); It prints the value of local variable i. So, it prints '3'.

Step 8: fun2(i); The fun2(i) increements the given value of variable i prints it. Here fun2(i) becomes

 fun2(3) hence it prints '4' then the control is given back to the mainfunction.

Step 9: printf("%d,", i); It prints the value of local variable i. So, it prints '3'.

Hence the output is "4 3 4 3".


Question 29.


What will be the output of the program?


#include<stdio.h>
int addmult(int ii, int jj)
{
int kk, ll;
kk = ii + jj;
ll = ii * jj;
return (kk, ll);
}
int main()
{
int i=3, j=4, k, l;
k = addmult(i, j);
l = addmult(i, j);
printf("%d %dn", k, l);
return 0;
}
  1.    12, 12
  2.    7, 7
  3.    7, 12
  4.    12, 7
 Discuss Question
Answer: Option A. -> 12, 12

Step 1: int i=3, j=4, k, l; The variables i, j, k, l are declared as an integer type and variable 

i, j are initialized to 3, 4 respectively.

The function addmult(i, j); accept 2 integer parameters.

Step 2: k = addmult(i, j); becomes k = addmult(3, 4)

In the function addmult(). The variable kk, ll are declared as an integer type int kk, ll;

kk = ii + jj; becomes kk = 3 + 4 Now the kk value is '7'.

ll = ii * jj; becomes ll = 3 * 4 Now the ll value is '12'.

return (kk, ll); It returns the value of variable ll only.

The value 12 is stored in variable 'k'.

Step 3: l = addmult(i, j); becomes l = addmult(3, 4)

kk = ii + jj; becomes kk = 3 + 4 Now the kk value is '7'.

ll = ii * jj; becomes ll = 3 * 4 Now the ll value is '12'.

return (kk, ll); It returns the value of variable ll only.

The value 12 is stored in variable 'l'.

Step 4: printf("%d, %d`setminus`n", k, l); It prints the value of k and l

Hence the output is "12, 12".



Question 30.


What will be the output of the program?


#include<stdio.h>
int addmult(int ii, int jj)
{
int kk, ll;
kk = ii + jj;
ll = ii * jj;
return (kk, ll);
}
int main()
{
int i=3, j=4, k, l;
k = addmult(i, j);
l = addmult(i, j);
printf("%d %d\n", k, l);
return 0;
}
  1.    12 12
  2.    No error, No output
  3.    Error: Compile error
  4.    None of above
 Discuss Question
Answer: Option A. -> 12 12

No answer description available for this question. 


Latest Videos

Latest Test Papers