C# Questions & Answers on Reference Variables and Assignment for Freshers

https://www.computersprofessor.com/2018/06/c-questions-answers-on-reference.html
1. Which refrence modifier is used to define reference variable?
a) &
b) ref
c) #
d) $
b) ref
c) #
d) $
Answer: b
2. Select the output for following set of code :
static void Main(string[] args)
{
int a = 5;
fun1 (ref a);
Console.WriteLine(a);
Console.ReadLine();
}
static void fun1(ref int a)
{
a = a * a;
}
a) 5
b) 0
c) 20
d) 25
b) 0
c) 20
d) 25
Answer: d
Explanation: Here ‘a’ = 5 .Copy of variable is passed as reference to parameter ‘a’.
Output: 25.
3. Select the output for the following set of code :
static void Main(string[] args)
{
int[] arr = new int[] {1 ,2 ,3 ,4 ,5 };
fun1(ref arr);
Console.ReadLine();
}
static void fun1(ref int[] array)
{
for (int i = 0; i < array.Length; i++)
{
array[i] = array[i] + 5;
Console.WriteLine(array[i] + " ");
}
}
a) 6 7 8 9 10
b) 15 17 8 8 20
c) 15 17 8 29 20
d) Syntax error while passing reference of array variable.
b) 15 17 8 8 20
c) 15 17 8 29 20
d) Syntax error while passing reference of array variable.
Answer: a
Explanation: array ‘arr’ after declaration is passed as reference parameter.
a[0] = 1 + 5 = 6.
a[1] = 2 + 5 = 7.
.
.
a[4] = 5 + 5 = 10.
Output : 15 17 8 29 20.
4. Select the output for the following set of code :
static void Main(string[] args)
{
int a = 10 , b = 20;
Console.WriteLine("Result before swap is: "+ a +" "+b);
swap(ref a, ref b);
Console.ReadLine();
}
static void swap(ref int i, ref int j)
{
int t;
t = i;
i = j;
j = t;
Console.WriteLine("Result after swap is:"+ i +" "+j);
}
a) Result before swap is: 20 10
Result after swap is: 20 10
b) Result before swap is: 10 20
Result after swap is:20 10
c) Result before swap is: 10 20
Result after swap is:10 20
d) Result before swap is: 20 10
Result after swap is:10 20
Result after swap is: 20 10
b) Result before swap is: 10 20
Result after swap is:20 10
c) Result before swap is: 10 20
Result after swap is:10 20
d) Result before swap is: 20 10
Result after swap is:10 20
Answer: b
Explanation: Makes use of call by reference parameter.
Output:Result before swap is: 10 20.
Result after swap is:20 10.
5. Select output for the set of code :
static void Main(string[] args)
{
int []a = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
func(ref a);
Console.ReadLine();
}
static void func(ref int[] x)
{
Console.WriteLine(" numbers are:");
for (int i = 0; i < x.Length; i++)
{
if (x[i] % 2 == 0)
{
x[i] = x[i] + 1;
Console.WriteLine(x[i]);
}
}
}
a) numbers are : 2 4 6 8 10
b) numbers are : 3 5 7 9 11
c) numbers are : 2 3 4 5 6
d) None of the mentioned
b) numbers are : 3 5 7 9 11
c) numbers are : 2 3 4 5 6
d) None of the mentioned
Answer: b
Explanation: Those numbers divisible by 2 are 2,4,6,8,10 and when condition of loop is executed it increments by 1.
i.e for x[1] = 2%2 == 0.So, x[1] = 2 + 1 =3.
x[3] = 4%2 == 0.So, x[3] = 4 + 1 =5 and so on.
Output : 3 5 7 9 11.
6. Select the wrong statement about ‘ref’ keyword in C#?
a) References can be called recursively
b) The ‘ref’ keyword causes arguments to be passed by reference
c) When ‘ref’ are used, any changes made to parameters in method will be reflected in variable when control is passed back to calling method
d) All of above mentioned
Answer: a
7. Select correct differences between ‘=’ and ‘==’ in C#.
a) ‘==’ operator is used to assign values from one variable to another variable
‘=’ operator is used to compare value between two variables
b) ‘=’ operator is used to assign values from one variable to another variable
‘==’ operator is used to compare value between two variables
c) No difference between both operators
d) None of the mentioned
Answer: b
8. Select the correct output for following set of code.
static void Main(string[] args)
{
int X = 0;
if (Convert.ToBoolean(X = 0))
Console.WriteLine("It is zero");
else
Console.WriteLine("It is not zero");
Console.ReadLine();
}
a) It is zero
b) It is not zero
c) Infinite loop
d) None of the mentioned
b) It is not zero
c) Infinite loop
d) None of the mentioned
Answer: b
Explanation: The operator ‘=’ used is not comparison operator it is assignment operator.Since value assigned to ‘X’ = 0.
So,’0′ value is stored in ‘X’ and with the help of if condition implementation it is converted to ‘false’ which directly means It is not zero but ‘1’ which means ‘true’.
9. Select the output for the following set of code :
static void Main(string[] args)
{
int X = 6,Y = 2;
X *= X / Y;
Console.WriteLine(X);
Console.ReadLine();
}
a) 12
b) 6
c) 18
d) Compile time error
b) 6
c) 18
d) Compile time error
Answer: c
Explanation: X*=X/Y.
X=x*(X/Y).
Output: 18.
10. Select the ouput for the following set of code :
static void Main(string[] args)
{
int x = 4 ,b = 2;
x -= b/= x * b;
Console.WriteLine(x + " " + b);
Console.ReadLine();
}
a) 4 2
b) 0 4
c) 4 0
d) None of mentioned
b) 0 4
c) 4 0
d) None of mentioned
Answer: c
Explanation: x = x – b and b = b/(x*b).
Output: 4 0
11. What is output for the following set of expression?
int a+= (float) b/= (long)c.
int a+= (float) b/= (long)c.
a) float
b) int
c) long
d) None of the mentioned
Answer: b
12. Select the output for the following set of code :
static void Main(string[] args)
{
int x = 8;
int b = 16;
int C = 64;
x /= b /= C;
Console.WriteLine(x + " " + b+ " " +C);
Console.ReadLine();
}
a) 8 2 32
b) 32 4 8
c) 32 2 8
d) Compile time error
b) 32 4 8
c) 32 2 8
d) Compile time error
Answer: d
Explanation: Exception handling error of dividing by zero.
13. Select the output for the following set of code :
static void Main(string[] args)
{
int x = 8;
int b = 16;
int C = 64;
x /= b /= C;
Console.WriteLine(x + " " + b+ " " +C);
Console.ReadLine();
}
a) 8 2 32
b) 32 4 8
c) 32 2 8
d) Compile time error
b) 32 4 8
c) 32 2 8
d) Compile time error
Answer: c
Explanation: x / = b / =C is x = x * c /b.
Output: 32 2 8.