Результаты прохождения теста C# основы пользователем Denis Orlov

Результат прохождения теста "C# основы" - Пройден

+107

  • Кто проходил: Denis Orlov
  • Дата прохождения: 13.08.2019
Какие ошибки содержатся в представленном коде:
class Test  
{ 
   static void f(ref int a, out int b) 
   { 
       a = 10 + b;  
   } 
 
   static void Main(string[] args) 
   { 
       int a; 
       int b = 5.0;  
       f(ref a, out b); 
   } 
} 
Ваши ответы
Перед вызовом метода f переменная а должна быть проинициализирована.
В методе f переменная b должна быть инициализирована до ее использования
В методе f необходимо обязательно присвоить значение переменной b
Переменная b должна быть проинициализирована целочисленным значением или не инициализирована вовсе
Можно ли в конструктор передать параметр с ключевым словом ref?
Ваши ответы
Да
Объяснение:

Можно, в этом плане конструктор ничем не отличается от любого другого метода.

Что будет выведено на экран?
class Test  
{ 
   static void Main(string[] args)  
   { 
       int i = 1; 
       Console.WriteLine("i = {0}", i++); 
   } 
} 
Ваши ответы
i = 1
Для чего предназначен метод Finalize?
Ваши ответы
Позволяет объекту выполнить корректную очистку, прежде чем сборщик мусора освободит занимаемую объектом память
Объяснение:

Позволяет объекту выполнить корректную очистку, прежде чем сборщик мусора освободит занимаемую объектом память. Синтаксис метода:

Сколько родительских классов может иметь производный класс?
Ваши ответы
Всегда один
Объяснение:

Всегда один. В C# нет множественного наследования, а любой объявленный класс без явного указания родительского класса автоматически становится производным от System.Object.
Сам System.Object не имеет родительского класса, но в вопросе спрашивается только о производных классах.

Какие из перечисленных ключевых слов используются в конструкции "если":
Ваши ответы
if
Как могут инициализироваться readonly поля экземпляра класса?
Ваши ответы
в конструкторе
при объявлении
Выберите безошибочный код:
Ваши ответы
double i; int j; short k; 
i = j = k = 0; 
ushort u = 10; 
ushort s = ++u; 
Объяснение:

Допустимо использование "цепочки присваиваний" и преобразование типов в операциях присваивания при совместимых типах данных.
В выражениях значения типов sbyte и char преобразуются в int.
Если один из операндов имеет тип double, то результат выражения тоже будет double.

Выберите верные утверждения на счет наследования в C#
Ваши ответы
Класс может наследовать только одну реализацию
Класс может наследовать сколько угодно интерфейсов
В какой кодировке хранятся символьные (char) переменные в C#?
Ваши ответы
UTF-16
Объяснение:

The C# language specification:
http://msdn.microsoft.com/en-us/library/ms228593.aspx
http://msdn.microsoft.com/en-us/library/x9h8tsay.aspx
The char keyword is used to declare an instance of the System.Char structure that the .NET Framework uses to represent a Unicode character. The value of a Char object is a 16-bit numeric (ordinal) value.
Type: char
Range: U+0000 to U+FFFF
Size: Unicode 16-bit character

Скомпилируется ли следующий код (как часть некоторого метода):
string[] str = new string[5]; 
try 
{ 
   str[4] = "anything"; 
} 
catch (Exception e) 
{ 
   Console.WriteLine(e.Message); 
} 
catch (IndexOutOfRangeException e) 
{ 
   Console.WriteLine(e.Message); 
} 
Ваши ответы
Нет
Объяснение:

Код не компилируется.
Обработка исключений должна идти в восходящем порядке по иерархии исключений (от классов-детей к суперклассам).

Дана переменная
float num; 
 
Как можно проинициализировать num , чтобы код
if (num == num) 
   Console.WriteLine("Equal"); 
else 
   Console.WriteLine("Not equal"); 
Выдал результат
 
 Not equal
Ваши ответы
num = 0 / 0.0F;
Объяснение:

В результате действия оператора 0 / 0.0F получается результат, который не является числом (NAN - not a number), поэтому выражение (num == num) нельзя рассматривать с логической точки зрения

Поддерживает ли С# перегрузку методов на основе возвращаемого значения?
Ваши ответы
Нет, не поддерживает. Но CLR поддерживает.
Что напечатает следующий код:
static bool Method1() 
{ 
   Console.WriteLine("in Method1"); 
   return false; 
} 
static bool Method2() 
{ 
   Console.WriteLine("in Method2"); 
   return true; 
} 
static void Main(string[] args) 
{ 
   if (Method1() & Method2()) 
   { 
      Console.WriteLine("inside if"); 
   } 
} 
Ваши ответы
in Method1
in Method2
Объяснение:

Оператор & всегда вычисляет значение обоих операндов

Что напечатает следующий код:
class MyClass 
   { 
       static void Main() 
       { 
           int a = 1, b = 2; 
           change(ref a, ref b); 
           Console.WriteLine("a=" + a + ", b=" + b); 
           Console.ReadLine(); 
       } 
 
       private static void change(ref int a, ref int b) 
       { 
           int c = a; 
           a = b; 
           b = c; 
       } 
   } 
Ваши ответы
a=2, b=1