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

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

+126

  • Кто проходил: Vlad Dem
  • Дата прохождения: 28.03.2019
Два последовательных вызова GetHashCode у одного и того же объекта должны возвращать одно и то же значение.
Ваши ответы
Да
Какими способами правильно инициализировать двумерный массив? (Выберите все верные варианты)
Ваши ответы
int[,] k = new int [2,3]
Объяснение:

int k[][] = new int [2][3], int[][] k = new int [2][3], int k[,] = new int [2,3] - неправильное объявление массива;
int[][] k = new int[2][] - объявление ступенчатого массива, а не инициализация.

Укажите все корректные способы объявления массива в C#.
Ваши ответы
int[] x;
int[][] x;
Как могут инициализироваться readonly поля экземпляра класса?
Ваши ответы
в конструкторе
при объявлении
Что делает оператор %?
Ваши ответы
Возвращает остаток от деления
Что напечатает следующий код:
class MyClass 
{ 
   static void Main() 
   { 
       int a = 1, b = 2; 
       Swap(a, b); 
       Console.WriteLine("a=" + a + ", b=" + b); 
       Console.ReadLine(); 
   } 
 
   private static void Swap(int a, int b) 
   { 
       int c = a; 
       a = b; 
       b = c; 
   } 
} 
Ваши ответы
a=1, b=2
Выберите верные утверждения на счет наследования в C#
Ваши ответы
Класс может наследовать только одну реализацию
Класс может наследовать сколько угодно интерфейсов
Какой будет результат компиляции и выполнения данного кода:
public static void Main(string[] args) 
{ 
   int k = 1;  
   Console.WriteLine(k++ + ++k); 
} 
Ваши ответы
4
Объяснение:

(k++ + ++k) :
1) k++=1 - результат выражения, но после k++ увеличивает значение k на 1, т.е. k=2. Таким образом имеем (1 + ++k), где k=2.
2) (1 + (2+1))=4

Укажите ошибки в коде:
using Systеm; 
nаmеsрасе Q 
{ 
   сlаss Nаmе 
   { 
   #rеgiоn Cоnstruсtоr 
       рubliс Nаmе(string nаmе) 
       { 
           this.Nаmе = nаmе; 
       } 
   #еndrеgiоn 
 
   #rеgiоn Рrореrtiеs 
/*1*/   рubliс string Nаmе 
       { 
           рrivаtе sеt; 
           gеt; 
       } 
   #еndrеgiоn 
 
   #rеgiоn Меthоds 
       stаtiс vоid Маin(string[] аrgs) 
       { 
/*2*/            Nаmе n = nеw Nаmе("Hеlо Wrоld");     
/*3*/            n.Disроsе(); // освобождаем память. 
       } 
   #еndrеgiоn 
   } 
} 
Ваши ответы
Строка /*1*/ Класс Name не может содержать свойство Name
Объяснение:

/**/ - Вполне себе комментарии
Hello World является строковым выражением, его синтаксис не проверяется=)
Класс не может содержать членов с именем, совпадающим с именем самого класса.
Dispose не объявлен.

Скомпилируется ли данный код?
internal sealed class SomeGenericClass<T>  
{ 
   public static T SomeMethod()  
   { 
       return new T(); 
   } 
} 
Ваши ответы
нет
Объяснение:

Не скомпилируется, т.к не указано ограничение (происходит вызов открытого конструктора без параметров, но не у всех ссылочных типов он есть). Для того, чтобы код скомпилировался необходимо добавить ограничение, например:

Какие строки приведут к ошибке компилляции этого кода если он является частью метода?
int k = 1; 
 
switch (k) 
{ 
   case 0:                                 //1 
   case 1:  Console.WriteLine("Case 1");   //2 
   case 2:                                 //3 
   default: Console.WriteLine("Default");  //4 
} 
Ваши ответы
2
4
Объяснение:

2. В C# в конструкции switch не допускается проход (fall through) в следующий раздел без операторов goto case или goto default.
В конце каждого раздела требуется наличие оператора break или другой передачи управления (return, throw, continue).
Исключением являются пустые разделы (как 1 и 3).
4. Эти правила также относятся и к последнему разделу.

Что напечатает программа:
class Program 
{ 
   static bool SomeMethod()         
   { 
       Console.WriteLine("Method was invoked");            
       return true;         
   }  
   static void Main(string[] args)        
   { 
       if (true & false & SomeMethod()) 
       { 
           Console.WriteLine("Inside IF operator"); 
       }             
   }         
} 
Ваши ответы
Method was invoked
Объяснение:

Операция & в условном операторе позволяет полностью вычислить условие независимо от операндов, даже если очевидно, что результат не зависит от последующих операндов. Эта операция отличается от операции && тем, что полностью вычисляет выражение.

В определении каких методов класса допущены ошибки?
public class Foo  
{ 
   public void M1(int[] p1, int[] p2) { } 
   public void M2(int[] p1, params int[] p2) { }    
   public void M3(params int[] p1, int[] p2) { } 
   public void M4(params int[] p1, params int p2) { } 
} 
Ваши ответы
M3
M4
Объяснение:

После параметра с ключевым словом params, дополнительные параметры не допускаются.
Не допускается использование ключевого слова params в объявлении метода более одного раза
http://msdn.microsoft.com/ru-ru/library/w5zay9db(VS.90).aspx

Вы работаете прикладным разработчиком в Certkiller.com. Certkiller .com использует Visual Studio.NET 2005. Вам нужно сохранить числовое значений вплоть до 2,100,000,000 в переменной и, возможно, требует хранения отрицательных значений, использующих .NET Framework 2.0 . Требуется, чтобы вы оптимизировали использование памяти. Какой тип переменных используете?
Что будет выведено на консоль в результате выполнения следующего кода:
namespace ConsoleApplication1 
{ 
   class Program 
   { 
       static void Main(string[] args) 
       { 
           Console.Write(Test.Foo(1)+Test.Foo(2)*Test.Foo(3)); 
 
           Console.ReadLine(); 
       } 
   } 
 
   class Test 
   { 
       public static int Foo(int o) 
       { 
           Console.Write(o); 
           return o; 
       } 
   } 
}