[Росдистант] Практикум по программированию на C# 2 (тесты, вопросы, ответы)

Раздел
Программирование
Предмет
Тип
Просмотров
320
Покупок
2
Антиплагиат
Не указан
Размещена
1 Мар в 03:23
ВУЗ
Росдистант, Тольяттинский государственный университет, ТГУ
Курс
Не указан
Стоимость
400 ₽
Файлы работы   
2
Каждая работа проверяется на плагиат, на момент публикации уникальность составляет не менее 40% по системе проверки eTXT.
pdf
Промежуточные тесты 1-4
621.4 Кбайт 200 ₽
pdf
Промежуточные тесты 5-8
496 Кбайт 200 ₽
Всего 2 файла на сумму 400 рублей
Описание

Тольяттинский государственный университет (Росдистант), ТГУ. Практикум по программированию на C# 2 (11439). Промежуточные тесты. Ответы на вопросы.

Для Росдистант имеются и другие готовые работы. Пишем уникальные работы под заказ. Помогаем с прохождением онлайн-тестов. Пишите, пожалуйста, в личку (Евгений).

Оглавление

ПРОМЕЖУТОЧНЫЕ ТЕСТЫ 1-4

Дан код, представленный ниже. Что будет выведено в консоль в результате его выполнения?

class Program

  {

    static void Main(string[] args)

    { int a, b, c;

      a = 20;

      b = 0;

      if (b == 0)

      {

        Console.WriteLine("second number should not be zero");

      }

      else

      {

        c = a / b;

        Console.WriteLine("C VALUE = " + c);

      }

    }

  }

Выберите один ответ:

Возникнет ошибка компиляции

Возникнет ошибка выполнения

C VALUE = 0

second number should not be zero

Изучите приведенный ниже код. Что будет выведено в консоль в результате его выполнения?

int[] myNumbers = {1, 2, 3};

Console.WriteLine(myNumbers[10]);

Выберите один ответ:

Возникнет ошибка компиляции

DivideByZeroException

System.IndexOutOfRangeException: 'Index was outside the bounds of the array.'

Attempted to divide by zero

Выберите верные утверждения для понятия «исключение».

Выберите один или несколько ответов:

Ошибка выполнения называется исключением

Ошибка компиляции называется исключением

Является объектом, потому что для генерации исключения CLR нужно создать соответствующий объект класса

Является событием, поскольку при возникновении исключения среда CLR внутренне выполняет некоторую логику для подготовки сообщений, связанных с этим исключением

Является сигналом, так как, изучив сообщение об исключении, разработчик предпримет необходимые действия против этого исключения

Изучите код, представленный ниже. Укажите верные утверждения.

static void Main(string[] args)

{  try

  { object obj = "you";

    int num = (int)obj;  

    Console.WriteLine($"Результат: {num}");

  }

  catch (DivideByZeroException)

  { Console.WriteLine("Возникло исключение DivideByZeroException");

  }

  catch (IndexOutOfRangeException)

  { Console.WriteLine("Возникло исключение IndexOutOfRangeException");

  }

  catch (Exception ex)

  { Console.WriteLine($"Исключение: {ex.Message}");

  } 

}

Выберите один или несколько ответов:

В блоке try генерируется исключение типа IndexOutOfRangeException

Сначала обрабатывается исключение DivideByZeroException и IndexOutOfRangeException, и только потом Exception

В блоке try генерируется исключение типа InvalidCastException

Программа аварийно завершит свое выполнение

Блок catch (Exception ex){} будет обрабатывать все исключения, кроме DivideByZeroException и IndexOutOfRangeException

Внимательно изучите фрагмент кода и укажите верный ответ.

int x = 5;

int y = 6;

int mydiv = x / y;

Console.WriteLine(mydiv);

Console.WriteLine(myNumbers[10]);

Выберите один ответ:

В консоль будет выведено сообщение:

Index was outside the bounds of the array

В консоль будет выведено сообщение:

null

Возникнет ошибка времени компиляции

Возникнет ошибка времени выполнения

Сопоставьте свойства исключения Exception с их описаниями.

TargetSite


Выберите...

Хранит имя объекта или сборки, которые вызвали исключение

Возвращает метод, в котором было вызвано исключение

Хранит сообщение об исключении, текст ошибки

Хранит информацию об исключении, которое послужило причиной текущего исключения

Возвращает строковое представление стека вызовов, которые привели к возникновению исключения

InnerException


Выберите...

Хранит имя объекта или сборки, которые вызвали исключение

Возвращает метод, в котором было вызвано исключение

Хранит сообщение об исключении, текст ошибки

Хранит информацию об исключении, которое послужило причиной текущего исключения

Возвращает строковое представление стека вызовов, которые привели к возникновению исключения

Message


Выберите...

Хранит имя объекта или сборки, которые вызвали исключение

Возвращает метод, в котором было вызвано исключение

Хранит сообщение об исключении, текст ошибки

Хранит информацию об исключении, которое послужило причиной текущего исключения

Возвращает строковое представление стека вызовов, которые привели к возникновению исключения

StackTrace


Выберите...

Хранит имя объекта или сборки, которые вызвали исключение

Возвращает метод, в котором было вызвано исключение

Хранит сообщение об исключении, текст ошибки

Хранит информацию об исключении, которое послужило причиной текущего исключения

Возвращает строковое представление стека вызовов, которые привели к возникновению исключения

Source


Выберите...

Хранит имя объекта или сборки, которые вызвали исключение

Возвращает метод, в котором было вызвано исключение

Хранит сообщение об исключении, текст ошибки

Хранит информацию об исключении, которое послужило причиной текущего исключения

Возвращает строковое представление стека вызовов, которые привели к возникновению исключения

Внимательно изучите фрагмент кода. Что будет выведено в консоль?

static void Main()

{ unchecked

 { b = 5;

  a = 125;

  result = (byte)(a * b);

  Console.WriteLine("Непроверенный на переполнение результат: " + result);

}

catch (OverflowException exc)

{ Console.WriteLine(exc.Message); }

Выберите один ответ:

В консоль будет выведено сообщение:

Проверенный на переполнение результат: 84

В консоль будет выведено сообщение:

Arithmetic operation resulted in an overflow

В консоль будет выведено сообщение: 

Непроверенный на переполнение результат: 1

В консоль будет выведено сообщение: 

Непроверенный на переполнение результат: 113

Внимательно изучите фрагмент кода и выберите верный ответ.

class ThrowTest3

{

  static void ProcessString(string s)

  { if (s == null) throw new ArgumentNullException();

  }

  static void Main()

  { try

    { string s = null;

      ProcessString(s);

    }

    catch (ArgumentNullException e)

    { Console.WriteLine("{0} First exception caught.", e);

    }

    catch (Exception e)

    { Console.WriteLine("{0} Second exception caught.", e);

    }

  }

}

Выберите один ответ:

В консоль будет выведено сообщение:

First exception caught.

В консоль будет выведено сообщение:

System.ArgumentNullException: Value cannot be null.

at Test.ThrowTest3.ProcessString(String s) ... First exception caught.

Возникнет следующая ошибка:

A previous catch clause already catches all exceptions of this or a super type ('System.Exception')

В консоль будет выведено сообщение:

System.Exception: Exception of type 'System.Exception' was thrown.

 at ConsoleApp4.ThrowTest3.ProcessString(String s) ... Second exception caught.

Какое из утверждений верно для понятия «класс исключения NotSupportedException»?

Выберите один ответ:

Возникает, когда метод или операция не поддерживаются

Возникает, когда индекс массива выходит за нижнюю или верхнюю границы массива или коллекции

Возникает, когда вызов метода недопустим в текущем состоянии объекта

Возникает, когда указанный ключ для доступа к члену в коллекции не существует

Изучите приведенный ниже код и выберите верные утверждения.

static void Main(string[] args)

{  try

  { object obj = "you";

    int num = (int)obj;  

    Console.WriteLine($"Результат: {num}");

  }

  catch (DivideByZeroException)

  { Console.WriteLine("Возникло исключение DivideByZeroException");

  }

  catch (IndexOutOfRangeException)

  { Console.WriteLine("Возникло исключение IndexOutOfRangeException");

  }

}

Выберите один или несколько ответов:

В блоке try генерируется исключение типа IndexOutOfRangeException

В блоке try генерируется исключение типа DivideByZeroException

Программа аварийно завершит свое выполнение

В блоке try генерируется исключение типа InvalidCastException

Ознакомьтесь с кодом, представленным ниже. Что будет выведено в консоль в результате его выполнения?

int x = 1;

int y = 0;

try

{ int result = x / y;

}

catch(DivideByZeroException) when (y==0 && x == 0)

{ Console.WriteLine("y не должен быть равен 0");

}

catch(DivideByZeroException ex)

{  Console.WriteLine(ex.Message);

}

Выберите один ответ:

Возникнет ошибка компиляции

y не должен быть равен 0

Attempted to divide by zero

DivideByZeroException

Ниже приведен код. Что будет выведено в консоль в результате его выполнения?

static void Main(string[] args)

    { int a, b, c;

      try

      {

        a = 20;

        b = 0;

        c = a / b;

        Console.WriteLine("C VALUE = " + c);

      }

      catch

      {

        Console.WriteLine("error occurred....");

      }

    }

Выберите один ответ:

Возникнет ошибка компиляции

error occurred....

DivideByZeroException

C VALUE = 0

Изучите представленный ниже код. Что будет выведено в консоль в результате его выполнения?

static void checkAge(int age)

{ if (age < 18)

 {

  throw new ArithmeticException("Access denied - You must be at least 18 years old.");

 }

 else

 {  Console.WriteLine("Access granted - You are old enough!");

 }

}

static void Main(string[] args)

{ checkAge(20);

}

Выберите один ответ:

Возникнет ошибка компиляции

System.ArithmeticException: 'Access denied - You must be at least 18 years old.'

Access granted - You are old enough!

System.IndexOutOfRangeException: 'Index was outside the bounds of the array.'

Ниже приведен код. Что будет выведено в консоль?

static void checkAge(int age)

{ if (age < 18)

 {

  throw new ArithmeticException("Access denied - You must be at least 18 years old.");

 }

 else

 {  Console.WriteLine("Access granted - You are old enough!");

 }

}

static void Main(string[] args)

{ checkAge(15);

}

Выберите один ответ:

System.IndexOutOfRangeException: 'Index was outside the bounds of the array.'

Возникнет ошибка компиляции

System.ArithmeticException: 'Access denied - You must be at least 18 years old.'

Access granted - You are old enough!

Соотнесите специализированные типы исключений с их описаниями.

IndexOutOfRangeException


Выберите...

Представляет исключение, которое генерируется при делении на ноль

Генерируется, если значение аргумента находится вне диапазона допустимых значений

Генерируется при попытке произвести недопустимые преобразования типов

Генерируется, если в метод для параметра передается некорректное значение

Генерируется, если индекс элемента массива или коллекции находится вне диапазона допустимых значений

ArgumentException


Выберите...

Представляет исключение, которое генерируется при делении на ноль

Генерируется, если значение аргумента находится вне диапазона допустимых значений

Генерируется при попытке произвести недопустимые преобразования типов

Генерируется, если в метод для параметра передается некорректное значение

Генерируется, если индекс элемента массива или коллекции находится вне диапазона допустимых значений

DivideByZeroException


Выберите...

Представляет исключение, которое генерируется при делении на ноль

Генерируется, если значение аргумента находится вне диапазона допустимых значений

Генерируется при попытке произвести недопустимые преобразования типов

Генерируется, если в метод для параметра передается некорректное значение

Генерируется, если индекс элемента массива или коллекции находится вне диапазона допустимых значений

ArgumentOutOfRangeException


Выберите...

Представляет исключение, которое генерируется при делении на ноль

Генерируется, если значение аргумента находится вне диапазона допустимых значений

Генерируется при попытке произвести недопустимые преобразования типов

Генерируется, если в метод для параметра передается некорректное значение

Генерируется, если индекс элемента массива или коллекции находится вне диапазона допустимых значений

InvalidCastException


Выберите...

Представляет исключение, которое генерируется при делении на ноль

Генерируется, если значение аргумента находится вне диапазона допустимых значений

Генерируется при попытке произвести недопустимые преобразования типов

Генерируется, если в метод для параметра передается некорректное значение

Генерируется, если индекс элемента массива или коллекции находится вне диапазона допустимых значений

Ниже приведен пример кода. Укажите верное утверждение.

static void Main()

  {try

    { string value = null;

      if (value.Length == 0)

      { Console.WriteLine(value);

      }

    }

    catch(NullReferenceException e)

    {Console.WriteLine(e.Message);

    }

}

Выберите один ответ:

В консоль будет выведено значение 4

Возникнет ошибка компиляции

В консоль будет выведено значение 0

Будет вызвано исключение System.NullReferenceException: "Object reference not set to an instance of an object."

Ниже приведен код. Что будет выведено в консоль?

static void Main(string[] args)

 { try

   { string message = "Hello world";

    if (message.Length > 6)

     {throw new Exception("Длина строки больше 6 символов");

        }

      }

    catch (Exception e)

     { Console.WriteLine($"Ошибка: {e.Message}");

      }

}

Выберите один ответ:

Ошибка: Длина строки больше 6 символов

Attempted to divide by zero

Возникнет ошибка компиляции

DivideByZeroException

Укажите верное утверждение для понятия «класс исключения ArgumentOutOfRangeException».

Выберите один ответ:

Возникает, когда целое значение делится на ноль

Возникает, когда методу передается нулевой аргумент

Возникает, когда значение аргумента выходит за пределы диапазона допустимых значений

Возникает, когда ненулевой аргумент, переданный методу, недопустим

Внимательно изучите код. Что будет выведено в консоль в результате его выполнения?

try

{ int[] myNumbers = {1, 2, 3};

 Console.WriteLine(myNumbers[10]);

}

catch (Exception e)

{ Console.WriteLine("Something went wrong.");

}

finally

{ Console.WriteLine("The 'try catch' is finished.");

}

Выберите один ответ:

The 'try catch' is finished.

Something went wrong.

The 'try catch' is finished.

Something went wrong.

System.IndexOutOfRangeException: 'Index was outside the bounds of the array.'

Изучите приведенный ниже код. Что будет выведено в консоль в результате его выполнения?

static void Main(string[] args)

    {

      int a, b, c;

      try

      { a = 40;

        b = 0;

        c = a / b;

        Console.WriteLine("C VALUE = " + c);

      }

      catch (Exception ex)

      { Console.WriteLine(ex.Message);

        Console.WriteLine(ex.HelpLink);

      }

   }

Выберите один ответ:

C VALUE = 0

Attempted to divide by zero.

возникнет ошибка компиляции

DivideByZeroException

Внимательно изучите фрагмент кода и укажите верный ответ.

int x = 5;

int y = 6;

int mydiv = x / y;

Console.WriteLine(mydiv);

Console.WriteLine(myNumbers[10]);

Выберите один ответ:

В консоль будет выведено сообщение:

Index was outside the bounds of the array

Возникнет ошибка времени компиляции

В консоль будет выведено сообщение:

null

Возникнет ошибка времени выполнения

Внимательно изучите данный код и выберите верные утверждения.

class Program

{

  static void Main(string[] args)

  { Test();

  }

  private static void Test()

  { Country country = new Country();

    country.x = 10;

    country.y = 15;

  }

}

class Country

{ public int x;

  public int y;

}

Выберите один или несколько ответов:

В главном методе Main вызывается метод Test. После того, как Test отработает, место в стеке очищается, а сборщик мусора очищает ранее выделенный под хранение объекта Country участок памяти

Сборщик мусора запускается сразу после удаления из стека ссылки на объект, размещенный в куче

Сборщик мусора запускается в то время, когда среда CLR обнаружит в этом потребность, например, когда программе потребуется дополнительная память

В методе Test создается объект Country. С помощью оператора new в куче для хранения объекта CLR выделяет участок памяти, а в стек добавляет адрес этого участка памяти

Изучите представленный ниже фрагмент кода и укажите верные утверждения.

FileStream fs = new FileStream("myFile.txt", FileMode.OpenOrCreate);

Fs.Close();

Fs.Dispose();

Выберите один или несколько ответов:

Вызов метода Dispose не разрушает объект, он остается существовать и после выполнения метода Dispose

При вызове метода Dispose пользователем объект будет все еще существовать в управляемой куче и иметь доступ ко всем остальным находящимся там объектам

Класс System.IO.FileStream реализует интерфейс IDisposable и, следовательно, поддерживает метод Dispose, но при этом в классе определяется метод Close, применяемый для той же цели

Некоторые из типов библиотек базовых классов, реализуя интерфейс IDisposable, предусматривают использование псевдонима для метода Dispose, чтобы заставить отвечающий за очистку метод звучать более естественно для типа, в котором он определяется

Выберите верные утверждения для понятия «значимые типы».

Выберите один или несколько ответов:

Когда объект в стеке выходит из области видимости, память, используемая этим объектом, будет немедленно освобождена

Могут приводить к фрагментации памяти. Управляются сборщиком мусора

Новые элементы перезаписывают старые, память освобождается автоматически, фрагментация памяти невозможна

Память быстро выделяется и освобождается. Управление памятью является относительно недорогой операцией

Управляемые типы обычно создаются в стеке

Изучите приведенный ниже код и укажите верный ответ.

public class Program

{

    public static void Main()

    {

        var cities = new Dictionary<string, string>(){

            {"UK", "London, Manchester, Birmingham"},

            {"USA", "Chicago, New York, Washington"},

            {"India", "Mumbai, New Delhi, Pune"}

        };

        cities["UK"] = "Liverpool, Bristol"; // update value of UK key

        cities["USA"] = "Los Angeles, Boston"; // update value of USA key

        //cities["France"] = "Paris"; //throws run-time exception: KeyNotFoundException

        if(cities.ContainsKey("France")){

            cities["France"] = "Paris";

        }

        

        foreach(var kvp in cities)

            Console.WriteLine("Key: {0}, Value: {1}", kvp.Key, kvp.Value);

}

}

Выберите один ответ:

В консоль будет выведено сообщение:

Value: Liverpool, Bristol

Value: Los Angeles, Boston

Value: Mumbai, New Delhi, Pune

В консоль будет выведено сообщение:

Key: Liverpool, Bristol

Key: Los Angeles, Boston

Key: Mumbai, New Delhi, Pune

В консоль будет выведено сообщение:

Key: UK, Value: Liverpool, Bristol

Key: USA, Value: Los Angeles, Boston

Key: India, Value: Mumbai, New Delhi, Pune

Runtime exception: ArgumentOutOfRangeException

Какие из перечисленных утверждений верны применительно к ссылочным типам?

Выберите один или несколько ответов:

Ссылочный тип может иметь несколько ссылок на один и тот же объект

Размещаются в куче

Объект может быть уничтожен, его деструктор сработает, а его ресурсы высвободяться только тогда, когда последняя ссылка на объект исчезнет

Память быстро выделяется и освобождается. Управление памятью является относительно недорогой операцией

Могут приводить к фрагментации памяти. Управляются сборщиком мусора

Внимательно изучите код. Что будет выведено в консоль?

public class Program

{

    public static void Main()

    {

        var cities = new Hashtable(){

            {"UK", "London, Manchester, Birmingham"},

            {"USA", "Chicago, New York, Washington"},

            {"India", "Mumbai, New Delhi, Pune"}

        };

    cities.Clear();

        Console.WriteLine(cities.Count);

        

        }

}

Выберите один ответ:

В консоль будет выведено сообщение:

3

Throws runtime exception: KeyNotFoundException

В консоль будет выведено сообщение:

0

В консоль будет выведено сообщение:

2

Какие из приведенных ниже утверждений верны в отношении жизненного цикла объекта?

Выберите один или несколько ответов:

Блок памяти конвертируется в объект. Объект инициализируется

Выделяется блок памяти. Этот блок памяти достаточно большой, чтобы сохранять объект

Объект очищается, например, путем освобождения любых неуправляемых ресурсов, используемых приложением, таких как дескрипторы файлов или подключения к базам данных

Деструктор имеет тот же модификатор доступа, что и класс

Сопоставьте метод класса GC с его описанием.

SuppressFinalize


Выберите...

Информирует исполняющую среду, что высвобожден большой блок неуправляемой памяти и ее больше не требуется учитывать при планировании сборки мусора

Предотвращает завершение объекта, переданного в качестве параметра

Приостанавливает текущий поток до тех пор, пока все объекты в freachable-очереди не будут завершены

Запрашивает финализатор для объекта, который уже завершен или завершение которого было подавлено

Форсирует сборку мусора

Информирует исполняющую среду о выделении большого объема неуправляемой памяти, которую необходимо учесть при планировании сборки мусора

RemoveMemoryPressure


Выберите...

Информирует исполняющую среду, что высвобожден большой блок неуправляемой памяти и ее больше не требуется учитывать при планировании сборки мусора

Предотвращает завершение объекта, переданного в качестве параметра

Приостанавливает текущий поток до тех пор, пока все объекты в freachable-очереди не будут завершены

Запрашивает финализатор для объекта, который уже завершен или завершение которого было подавлено

Форсирует сборку мусора

Информирует исполняющую среду о выделении большого объема неуправляемой памяти, которую необходимо учесть при планировании сборки мусора

Collect


Выберите...

Информирует исполняющую среду, что высвобожден большой блок неуправляемой памяти и ее больше не требуется учитывать при планировании сборки мусора

Предотвращает завершение объекта, переданного в качестве параметра

Приостанавливает текущий поток до тех пор, пока все объекты в freachable-очереди не будут завершены

Запрашивает финализатор для объекта, который уже завершен или завершение которого было подавлено

Форсирует сборку мусора

Информирует исполняющую среду о выделении большого объема неуправляемой памяти, которую необходимо учесть при планировании сборки мусора

ReRegisterForFinalize


Выберите...

Информирует исполняющую среду, что высвобожден большой блок неуправляемой памяти и ее больше не требуется учитывать при планировании сборки мусора

Предотвращает завершение объекта, переданного в качестве параметра

Приостанавливает текущий поток до тех пор, пока все объекты в freachable-очереди не будут завершены

Запрашивает финализатор для объекта, который уже завершен или завершение которого было подавлено

Форсирует сборку мусора

Информирует исполняющую среду о выделении большого объема неуправляемой памяти, которую необходимо учесть при планировании сборки мусора

AddMemoryPressure


Выберите...

Информирует исполняющую среду, что высвобожден большой блок неуправляемой памяти и ее больше не требуется учитывать при планировании сборки мусора

Предотвращает завершение объекта, переданного в качестве параметра

Приостанавливает текущий поток до тех пор, пока все объекты в freachable-очереди не будут завершены

Запрашивает финализатор для объекта, который уже завершен или завершение которого было подавлено

Форсирует сборку мусора

Информирует исполняющую среду о выделении большого объема неуправляемой памяти, которую необходимо учесть при планировании сборки мусора

WaitForPendingFinalizers


Выберите...

Информирует исполняющую среду, что высвобожден большой блок неуправляемой памяти и ее больше не требуется учитывать при планировании сборки мусора

Предотвращает завершение объекта, переданного в качестве параметра

Приостанавливает текущий поток до тех пор, пока все объекты в freachable-очереди не будут завершены

Запрашивает финализатор для объекта, который уже завершен или завершение которого было подавлено

Форсирует сборку мусора

Информирует исполняющую среду о выделении большого объема неуправляемой памяти, которую необходимо учесть при планировании сборки мусора

Выберите верные утверждения применительно к классу System.GC.

Выберите один или несколько ответов:

Метод AddMemoryPressure информирует среду CLR о выделении большого объема неуправляемой памяти, которую надо учесть при планировании сборки мусора

Через статические методы данный класс позволяет обращаться к сборщику мусора

Наиболее распространенным случаем его использования является сборка мусора при работе с неуправляемыми ресурсами, при интенсивном выделении больших объемов памяти, при которых необходимо такое же быстрое их освобождение

Метод WaitForPendingFinalizers приостанавливает работу текущего потока до освобождения всех объектов, для которых производится сборка мусора

Какие утверждения верны применительно к понятию «деструктор»?

Выберите один или несколько ответов:

Нельзя объявить деструктор, который принимает параметры. Сборщик мусора вызывает деструктор, и нет возможности его контролировать, передавая ему параметры

Класс может иметь несколько деструкторов

Нельзя добавить деструктор структуре или любому другому типу значения. Типы значения хранятся в стеке, и сборщик мусора к ним не применяется

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

Деструкторы могут наследоваться или перегружаться

Внимательно изучите код и укажите верные утверждения.

public class Derived: Base

{

  private bool IsDisposed = false;

  protected override void Dispose(bool disposing)

  {

    if (IsDisposed) return;

    if (disposing)

    {

      // Освобождение управляемых ресурсов

    }

    IsDisposed = true;

    // Обращение к методу Dispose базового класса

    base.Dispose(disposing);

  }

}

Выберите один или несколько ответов:

Деструктор следует реализовывать только у тех объектов, которым он действительно необходим, так как метод Finalize оказывает сильное влияние на производительность

После завершения метода Test и удаления из стека ссылки на объект Person в куче происходит немедленная очистка памяти и вызов деструктора

После вызова метода Dispose необходимо блокировать у объекта вызов метода Finalize с помощью GC.SuppressFinalize

При создании производных классов от базовых, которые реализуют интерфейс IDisposable, следует также вызывать метод Dispose базового класса

Укажите верные утверждения для понятия «виртуальный метод Finalize() в базовом классе .NET System.Object».

Выберите один или несколько ответов:

Виртуальный метод Finalize() в предлагаемой по умолчанию реализации ничего не делает

Метод Finalize() по определению является защищенным (protected), вызывать его напрямую из класса экземпляра с помощью операции точки не допускается

Вызов метода Finalize() будет выполняться либо во время естественной активизации процесса сборки мусора, либо во время его принудительной активизации программным образом с помощью GC.Collect()

Метод Finalize() (если он поддерживается) будет автоматически вызываться сборщиком мусора перед удалением соответствующего объекта из памяти

Укажите верные утверждения для понятия «деструктор».

Выберите один или несколько ответов:

Деструктор имеет тот же модификатор доступа, что и класс

Деструктор не может иметь модификаторов доступа

Метод деструктора носит имя класса, перед которым стоит знак тильды (~)

Деструкторы всегда вызываются только сборщиком мусора, и их нельзя вызывать напрямую из кода

Укажите утверждения, которые верны применительно к управлению ресурсами.

Выберите один или несколько ответов:

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

Паттерн dispose является шаблоном проектирования, позволяющим высвободить неуправляемые ресурсы, используемые классом, контролируемо и своевременно

Некоторые неуправляемые типы используют буферы памяти для повышения производительности и записывают в базовый источник данные только тогда, когда буфер либо полон, либо флеширован

Сборщик мусора автоматически восстанавливает память и ресурсы для управляемых объектов

Изучите представленный ниже код и выберите верный ответ.

public class Program

{

    public static void Main()

    {

        SortedList<int,string> numberNames = new SortedList<int,string>()

                  {

                    {3, "Three"},

                    {1, "One"},

                    {2, "Two"},

                                 {5, "Five"},

                    {4, "Four"},

        };

  

        numberNames.Remove(1);

        foreach(var kvp in numberNames)

            Console.WriteLine("key: {0}, value: {1}", kvp.Key , kvp.Value );

    }

}

Выберите один ответ:

В консоль будет выведено сообщение:

key: 2, value: Two

key: 3, value: Three

key: 4, value: Four

key: 5, value: Five

Runtime exception: ArgumentOutOfRangeException

В консоль будет выведено сообщение:

key: 1, value: One

key: 2, value: Two

key: 4, value: Four

key: 5, value: Five

В консоль будет выведено сообщение:

key: 1, value: One

key: 2, value: Two

key: 3, value: Three

key: 4, value: Four

key: 5, value: Five

Выберите верное утверждение для метода GetGeneration(Object) класса System.GC.

Выберите один ответ:

Метод приводит в действие механизм сборки мусора. Перегруженные версии метода позволяют указать поколение объектов, вплоть до которого надо произвести сборку мусора

Этот метод приостанавливает работу текущего потока до освобождения всех объектов, для которых производится сборка мусора

Метод возвращает объем памяти в байтах, который занят в управляемой куче

Метод информирует среду CLR о выделении большого объема неуправляемой памяти, которую надо учесть при планировании сборки мусора

Данный метод позволяет определить номер поколения, к которому относится переданный в качестве параметра объект

Среди предложенных ниже утверждений выберите те, которые верны для понятия «сборщик мусора».

Выберите один или несколько ответов:

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

Добавляет финализируемые недостижимые объекты во freachable-очередь

Когда сборщик мусора работает, другие потоки приложения прекращают работать

Сборщик мусора работает в своем собственном потоке и обычно запускается автоматически

Изучите представленный ниже код, укажите верный ответ.

public class Program

{

    public static void Main()

    {

        SortedList<int,string> numberNames = new SortedList<int,string>()

                  {

                    {3, "Three"},

                    {1, "One"},

                    {2, "Two"},

                                 {5, "Five"},

                    {4, "Four"},

        };

  

        numberNames.RemoveAt(10);

        foreach(var kvp in numberNames)

            Console.WriteLine("key: {0}, value: {1}", kvp.Key , kvp.Value );

    }

}

Выберите один ответ:

В консоль будет выведено сообщение:

key: 1, value: One

key: 2, value: Two

key: 3, value: Three

key: 4, value: Four

key: 5, value: Five

В консоль будет выведено сообщение:

key: 1, value: One

key: 2, value: Two

key: 4, value: Four

key: 5, value: Five

Runtime exception: ArgumentOutOfRangeException

В консоль будет выведено сообщение:

key: 2, value: Two

key: 3, value: Three

key: 4, value: Four

key: 5, value: Five

Внимательно изучите представленный ниже код и выберите верные утверждения.

class MyResourceWrapper: IDisposable

{

  public void Dispose()

  { Console.WriteLine("*****In Dispose!*****");

  }

}. . .

MyResourceWrapper rw = new MyResourceWrapper();

rw.Dispose();

Выберите один или несколько ответов:

Избавляет от других содержащихся внутри и пригодных для очистки объектов

Сборщик мусора не имеет понятия об интерфейсе IDisposable и потому никогда не будет вызывать метод Dispose

При вызове метода Dispose пользователем объект будет все еще существовать в управляемой куче и иметь доступ ко всем остальным находящимся там объектам

Метод Dispose отвечает не только за освобождение неуправляемых ресурсов типа, но и за вызов аналогичного метода в отношении любых других содержащихся в нем высвобождаемых объектов

Укажите утверждения, справедливые в отношении понятия «шаблон dispose».

Выберите один или несколько ответов:

Вместо переопределения метода Finalize в качестве альтернативного варианта в классе можно реализовать интерфейс IDisposable

Реализация в типе этого шаблона будет способствовать тому, что приложения будут хорошо работать и не сохранять неуправляемые ресурсы дольше, чем это необходимо. .NET Framework, предоставляя интерфейс IDisposable и объект, реализующий этот интерфейс, должен следовать этому паттерну

Является шаблоном проектирования, позволяющим высвободить неуправляемые ресурсы, используемые классом, контролируемо и своевременно

Интерфейс IDisposable определяет единственный метод Dispose, не принимающий никаких параметров

Соотнесите описание ключевых методов, предоставляемых классом File, с примерами кода.

string sourceFile = "...";

string destFile = "...";

bool overwrite = false;

File.Copy(sourceFile,destFile,overwrite);


Выберите...

Позволяет получить время создания файла

Позволяет удалить файл из файловой системы Windows

Позволяет создать новый файл файловой системы Windows

Позволяет cкопировать существующий файл в новое место

Позволяет определить, существует ли указанный файл

Позволяет открыть существующий файл, добавить текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

string filePath = "...";

File.Delete(filePath);


Выберите...

Позволяет получить время создания файла

Позволяет удалить файл из файловой системы Windows

Позволяет создать новый файл файловой системы Windows

Позволяет cкопировать существующий файл в новое место

Позволяет определить, существует ли указанный файл

Позволяет открыть существующий файл, добавить текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

string filePath = "...";

string fileContents = "...";

File.AppendAllText(filePath,

fileContents);


Выберите...

Позволяет получить время создания файла

Позволяет удалить файл из файловой системы Windows

Позволяет создать новый файл файловой системы Windows

Позволяет cкопировать существующий файл в новое место

Позволяет определить, существует ли указанный файл

Позволяет открыть существующий файл, добавить текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

string filePath = "...";

bool exists = File.Exists(filePath);


Выберите...

Позволяет получить время создания файла

Позволяет удалить файл из файловой системы Windows

Позволяет создать новый файл файловой системы Windows

Позволяет cкопировать существующий файл в новое место

Позволяет определить, существует ли указанный файл

Позволяет открыть существующий файл, добавить текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

string filePath = "...";

int bufferSize = 128;

FileStream file = File.Create(filePath,bufferSize, FileOptions.None);


Выберите...

Позволяет получить время создания файла

Позволяет удалить файл из файловой системы Windows

Позволяет создать новый файл файловой системы Windows

Позволяет cкопировать существующий файл в новое место

Позволяет определить, существует ли указанный файл

Позволяет открыть существующий файл, добавить текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

string filePath = "...";

DateTime time = File.GetCreationTime(filePath);


Выберите...

Позволяет получить время создания файла

Позволяет удалить файл из файловой системы Windows

Позволяет создать новый файл файловой системы Windows

Позволяет cкопировать существующий файл в новое место

Позволяет определить, существует ли указанный файл

Позволяет открыть существующий файл, добавить текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

Внимательно изучите представленный код и выберите верное утверждение

string filePath = "myFile.txt";

byte[] fileBytes = { 12, 134, 12, 8, 32 };

File.WriteAllBytes(filePath, fileBytes);

Выберите один ответ:

В примере показано, как записать содержание массива строк fileLines в файл myFile.txt

В примере кода показано, как записать содержимое массива строк fileLines в новый файл с именем myFile.txt.

В примере кода показано, как записать содержимое строковой переменной fileContents в файл myFile.txt.

В примере кода показано, как записать содержимое строковой переменной fileContents в новый файл с именем myFile.txt.

В примере кода показано, как записать содержимое массива fileBytes в новый файл с именем myFile.txt.

Внимательно изучите код и выберите верные утверждения.

using (var fileStream = new FileStream(@"C:\file.txt", FileMode.Open))

{

  // ....

}

Выберите один или несколько ответов:

Позволяет открыть существующий файл только для записи

Для выполнения примера необходимо подключить пространство имен using System.IO

Позволяет открыть существующий файл для чтения и записи

Позволяет открыть существующий файл только для чтения

Установите соответствие между ключевыми методами, предоставляемыми классом Directory, и их описаниями.

GetFiles


Выберите...

Позволяет получить все файлы по указанному пути

Позволяет удалить один или несколько каталогов файловой системы

Позволяет определить, существует ли каталог по указанному пути

Позволяет переместить каталог. Нельзя использовать метод для перемещения каталогов с разных носителей

Позволяет создавать еще не существующие каталоги, указанные в пути

Позволяет получить все подкаталоги по указанному пути

DeleteDirectory


Выберите...

Позволяет получить все файлы по указанному пути

Позволяет удалить один или несколько каталогов файловой системы

Позволяет определить, существует ли каталог по указанному пути

Позволяет переместить каталог. Нельзя использовать метод для перемещения каталогов с разных носителей

Позволяет создавать еще не существующие каталоги, указанные в пути

Позволяет получить все подкаталоги по указанному пути

CreateDirectory


Выберите...

Позволяет получить все файлы по указанному пути

Позволяет удалить один или несколько каталогов файловой системы

Позволяет определить, существует ли каталог по указанному пути

Позволяет переместить каталог. Нельзя использовать метод для перемещения каталогов с разных носителей

Позволяет создавать еще не существующие каталоги, указанные в пути

Позволяет получить все подкаталоги по указанному пути

Exists


Выберите...

Позволяет получить все файлы по указанному пути

Позволяет удалить один или несколько каталогов файловой системы

Позволяет определить, существует ли каталог по указанному пути

Позволяет переместить каталог. Нельзя использовать метод для перемещения каталогов с разных носителей

Позволяет создавать еще не существующие каталоги, указанные в пути

Позволяет получить все подкаталоги по указанному пути

Move


Выберите...

Позволяет получить все файлы по указанному пути

Позволяет удалить один или несколько каталогов файловой системы

Позволяет определить, существует ли каталог по указанному пути

Позволяет переместить каталог. Нельзя использовать метод для перемещения каталогов с разных носителей

Позволяет создавать еще не существующие каталоги, указанные в пути

Позволяет получить все подкаталоги по указанному пути

GetDirectories


Выберите...

Позволяет получить все файлы по указанному пути

Позволяет удалить один или несколько каталогов файловой системы

Позволяет определить, существует ли каталог по указанному пути

Позволяет переместить каталог. Нельзя использовать метод для перемещения каталогов с разных носителей

Позволяет создавать еще не существующие каталоги, указанные в пути

Позволяет получить все подкаталоги по указанному пути

Соотнесите ключевые методы, предоставляемые классом File, с их описанием.

Delete


Выберите...

Позволяет cкопировать существующий файл в новое место

Позволяет получить время создания файла

Позволяет создать новый файл файловой системы Windows

Позволяет открыть существующий файл, добавить текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

Позволяет удалить файл из файловой системы Windows

Позволяет определить, существует ли указанный файл

AppendAllText


Выберите...

Позволяет cкопировать существующий файл в новое место

Позволяет получить время создания файла

Позволяет создать новый файл файловой системы Windows

Позволяет открыть существующий файл, добавить текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

Позволяет удалить файл из файловой системы Windows

Позволяет определить, существует ли указанный файл

GetCreationTime


Выберите...

Позволяет cкопировать существующий файл в новое место

Позволяет получить время создания файла

Позволяет создать новый файл файловой системы Windows

Позволяет открыть существующий файл, добавить текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

Позволяет удалить файл из файловой системы Windows

Позволяет определить, существует ли указанный файл

Create


Выберите...

Позволяет cкопировать существующий файл в новое место

Позволяет получить время создания файла

Позволяет создать новый файл файловой системы Windows

Позволяет открыть существующий файл, добавить текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

Позволяет удалить файл из файловой системы Windows

Позволяет определить, существует ли указанный файл

Copy


Выберите...

Позволяет cкопировать существующий файл в новое место

Позволяет получить время создания файла

Позволяет создать новый файл файловой системы Windows

Позволяет открыть существующий файл, добавить текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

Позволяет удалить файл из файловой системы Windows

Позволяет определить, существует ли указанный файл

Exists


Выберите...

Позволяет cкопировать существующий файл в новое место

Позволяет получить время создания файла

Позволяет создать новый файл файловой системы Windows

Позволяет открыть существующий файл, добавить текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

Позволяет удалить файл из файловой системы Windows

Позволяет определить, существует ли указанный файл

Внимательно изучите представленный код и выберите верное утверждение.

string filePath = "myFile.txt";

byte[] data = File.ReadAllBytes(filePath);

Выберите один ответ:

В примере показано, как записать содержание массива строк fileLines в файл myFile.txt

В примере показано, как прочитать содержимое файла myFile.txt в массив data

В примере показано, как прочитать содержимое файла myFile.txt и сохранить данные в строку data

В примере показано, как прочитать содержимое файла myFile.txt и сохранить каждую строку в массиве строк lines

Внимательно изучите представленный код и выберите верное утверждение

string filePath = "myFile.txt";

string fileContents = "I am writing this text to a file called myFile.txt";

File.AppendAllText(filePath, fileContents);

Выберите один ответ:

В примере кода показано, как записать содержимое строковой переменной fileContents в файл myFile.txt.

В примере кода показано, как записать содержимое строковой переменной fileContents в новый файл с именем myFile.txt.

В примере кода показано, как записать содержимое массива строк fileLines в новый файл с именем myFile.txt.

В примере кода показано, как записать содержимое массива fileBytes в новый файл с именем myFile.txt.

В примере показано, как записать содержание массива строк fileLines в файл myFile.txt

Соотнесите методы класса File с их описаниями.

WriteAllLines


Выберите...

Заменяет содержимое указанного файла содержимым другого файла, удаляя исходный файл и создавая резервную копию замененного файла

Создает новый файл, записывает в него набор строк, а затем закрывает файл

Создает новый файл, записывает в него указанный массив байтов, затем закрывает файл. Если целевой файл уже существует, он перезаписывается

Создает новый файл, записывает указанную строку в файл, а затем закрывает файл. Если целевой файл уже существует, он перезаписывается

WriteAllText        


Выберите...

Заменяет содержимое указанного файла содержимым другого файла, удаляя исходный файл и создавая резервную копию замененного файла

Создает новый файл, записывает в него набор строк, а затем закрывает файл

Создает новый файл, записывает в него указанный массив байтов, затем закрывает файл. Если целевой файл уже существует, он перезаписывается

Создает новый файл, записывает указанную строку в файл, а затем закрывает файл. Если целевой файл уже существует, он перезаписывается

Replace


Выберите...

Заменяет содержимое указанного файла содержимым другого файла, удаляя исходный файл и создавая резервную копию замененного файла

Создает новый файл, записывает в него набор строк, а затем закрывает файл

Создает новый файл, записывает в него указанный массив байтов, затем закрывает файл. Если целевой файл уже существует, он перезаписывается

Создает новый файл, записывает указанную строку в файл, а затем закрывает файл. Если целевой файл уже существует, он перезаписывается

WriteAllBytes


Выберите...

Заменяет содержимое указанного файла содержимым другого файла, удаляя исходный файл и создавая резервную копию замененного файла

Создает новый файл, записывает в него набор строк, а затем закрывает файл

Создает новый файл, записывает в него указанный массив байтов, затем закрывает файл. Если целевой файл уже существует, он перезаписывается

Создает новый файл, записывает указанную строку в файл, а затем закрывает файл. Если целевой файл уже существует, он перезаписывается

Укажите верное утверждение для понятия «метод Encrypt класса FileInfo».

Выберите один ответ:

Создает StreamWriter, который добавляет текст в файл, представленный экземпляром класса FileInfo

Удаляет указанный файл

Шифрует файл, чтобы его могла расшифровать только учетная запись, использованная для шифрования файла

Расшифровывает файл, который был зашифрован текущей учетной записью с помощью метода шифрования

Какое из представленных ниже утверждений верно для понятия «метод Delete класса FileInfo»?

Выберите один ответ:

Создает StreamWriter, который записывает новый текстовый файл

Расшифровывает файл, который был зашифрован текущей учетной записью с помощью метода шифрования

Удаляет указанный файл

Создает StreamWriter, который добавляет текст в файл, представленный экземпляром класса FileInfo

Сопоставьте описание ключевых методов, предоставляемых классом File, и приведенные примеры кода.

string filePath = "...";

string fileContents = "...";

File.WriteAllText(filePath,fileContents);


Выберите...

Позволяет читать весь текст из файла в строковую переменную

Позволяет получить время последнего доступа к файлу

Позволяет переместить файл в новое место

Позволяет установить время создания файла

Позволяет установить время последнего доступа к файлу

Позволяет создать новый файл, записать текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

string filePath = "...";

File.SetCreationTime(filePath,DateTime.Now);


Выберите...

Позволяет читать весь текст из файла в строковую переменную

Позволяет получить время последнего доступа к файлу

Позволяет переместить файл в новое место

Позволяет установить время создания файла

Позволяет установить время последнего доступа к файлу

Позволяет создать новый файл, записать текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

string sourceFile = "...";

string destFile = "...";

File.Move(sourceFile,destFile);


Выберите...

Позволяет читать весь текст из файла в строковую переменную

Позволяет получить время последнего доступа к файлу

Позволяет переместить файл в новое место

Позволяет установить время создания файла

Позволяет установить время последнего доступа к файлу

Позволяет создать новый файл, записать текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

string filePath = "...";

File.SetLastAccessTime(filePath,DateTime.Now);


Выберите...

Позволяет читать весь текст из файла в строковую переменную

Позволяет получить время последнего доступа к файлу

Позволяет переместить файл в новое место

Позволяет установить время создания файла

Позволяет установить время последнего доступа к файлу

Позволяет создать новый файл, записать текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

string filePath = "...";

DateTime time = File.GetLastAccessTime(filePath);


Выберите...

Позволяет читать весь текст из файла в строковую переменную

Позволяет получить время последнего доступа к файлу

Позволяет переместить файл в новое место

Позволяет установить время создания файла

Позволяет установить время последнего доступа к файлу

Позволяет создать новый файл, записать текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

string filePath = "...";

string fileContents = File.ReadAllText(filePath);


Выберите...

Позволяет читать весь текст из файла в строковую переменную

Позволяет получить время последнего доступа к файлу

Позволяет переместить файл в новое место

Позволяет установить время создания файла

Позволяет установить время последнего доступа к файлу

Позволяет создать новый файл, записать текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

Внимательно изучите код и выберите верное утверждение.

string filePath = "myFile.txt";

string[] lines = File.ReadAllLines(filePath);

Выберите один ответ:

В примере показано, как записать содержание массива строк fileLines в файл myFile.txt

В этом примере показано, как прочитать содержимое файла myFile.txt и сохранить данные в строку

В примере показано, как прочитать содержимое файла myFile.txt и сохранить каждую строку в массиве строк

В данном примере показано, как прочитать содержимое файла myFile.txt в массив

Изучите представленный код и укажите верное утверждение.

string filePath = "myFile.txt";

string data = File.ReadAllText(filePath);

Выберите один ответ:

В примере показано, как прочитать содержимое файла myFile.txt и сохранить каждую строку в массиве строк

В примере показано, как записать содержание массива строк fileLines в файл myFile.txt

В примере показано, как прочитать содержимое файла myFile.txt и сохранить данные в строку

В примере показано, как прочитать содержимое файла myFile.txt в массив

Изучите код и выберите верные утверждения.

public abstract class Example

  {

    public static abstract void m1();

    public abstract void m2();

  }

Выберите один ответ:

Возникнет ошибка взаимодействия

Статический член 'Example.m1 ()' может быть помечен как переопределенный, виртуальный или абстрактный

Разрешено объявлять абстрактный метод статическим

Статический член 'Example.m1 ()' не может быть помечен как переопределенный, виртуальный или абстрактный

Изучите код, приведенный ниже, и выберите верное утверждение.

FileInfo fi = new FileInfo(@"D:\DummyFile.txt");

FileStream fs = fi.Open(FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read );

StreamWriter sw = new StreamWriter(fs);

sw.WriteLine("Another line from streamwriter");

sw.Close();

Выберите один ответ:

Осуществляется чтение файла с использованием класса FileInfo

Производится запись текста в файл с помощью StreamWriter

Создается счетчик, чтобы проверить, сколько байтов нужно прочитать

Осуществляется чтение файла с помощью StreamReader

Сопоставьте ключевые методы, предоставляемые классом File, и их описание.

Move


Выберите...

Позволяет переместить файл в новое место

Позволяет установить время создания файла

Позволяет читать весь текст из файла в строковую переменную

Позволяет создать новый файл, записать текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

Позволяет установить время последнего доступа к файлу

Позволяет получить время последнего доступа к файлу

ReadAllText


Выберите...

Позволяет переместить файл в новое место

Позволяет установить время создания файла

Позволяет читать весь текст из файла в строковую переменную

Позволяет создать новый файл, записать текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

Позволяет установить время последнего доступа к файлу

Позволяет получить время последнего доступа к файлу

SetCreationTime


Выберите...

Позволяет переместить файл в новое место

Позволяет установить время создания файла

Позволяет читать весь текст из файла в строковую переменную

Позволяет создать новый файл, записать текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

Позволяет установить время последнего доступа к файлу

Позволяет получить время последнего доступа к файлу

WriteAllText


Выберите...

Позволяет переместить файл в новое место

Позволяет установить время создания файла

Позволяет читать весь текст из файла в строковую переменную

Позволяет создать новый файл, записать текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

Позволяет установить время последнего доступа к файлу

Позволяет получить время последнего доступа к файлу

SetLastAccessTime


Выберите...

Позволяет переместить файл в новое место

Позволяет установить время создания файла

Позволяет читать весь текст из файла в строковую переменную

Позволяет создать новый файл, записать текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

Позволяет установить время последнего доступа к файлу

Позволяет получить время последнего доступа к файлу

GetLastAccessTime


Выберите...

Позволяет переместить файл в новое место

Позволяет установить время создания файла

Позволяет читать весь текст из файла в строковую переменную

Позволяет создать новый файл, записать текст в этот файл, а затем закрыть файл, выполнив все действия в одну операцию

Позволяет установить время последнего доступа к файлу

Позволяет получить время последнего доступа к файлу

Внимательно изучите код. Укажите верные утверждения.

var fileStream = new FileStream(@"c:\file.txt", FileMode.Open, FileAccess.Read);

using (var streamReader = new StreamReader(fileStream, Encoding.UTF8))

{

  string line;

  while ((line = streamReader.ReadLine()) != null)

  { // process the line  }

}

Выберите один или несколько ответов:

Для выполнения примера необходимо подключить пространство имен using System.IO

С помощью статического класса File происходит считывание текстового файла построчно

С помощью статического класса File происходит считывание текстового файла в массив строк

С помощью статического класса File происходит считывание текстового файла в строку

Ниже представлен пример кода. Что демонстрирует этот пример?

string filePath = "myFile.txt";

string fileContents = "I am writing this text to a file called myFile.txt";

File.WriteAllText(filePath, fileContents);

Выберите один ответ:

В примере кода показано, как записать содержимое массива fileBytes в новый файл с именем myFile.txt

В примере кода показано, как записать содержимое строковой переменной fileContents в новый файл с именем myFile.txt

В примере показано, как записать содержание массива строк fileLines в файл myFile.txt

В примере показано, как записать содержимое строковой переменной fileContents в файл myFile.txt

В примере показано, как записать содержимое массива строк fileLines в новый файл с именем myFile.txt

Изучите представленный ниже код, выберите верное утверждение.

string filePath = "myFile.txt";

string[] fileLines = { "Line 1", "Line 2", "Line 3" };

File.WriteAllLines(filePath, fileLines);

Выберите один ответ:

В примере показано, как записать содержимое строковой переменной fileContents в новый файл с именем myFile.txt

В примере кода показано, как записать содержимое массива строк fileLines в новый файл с именем myFile.txt

В примере показано, как записать содержание массива строк fileLines в файл myFile.txt

В примере показано, как записать содержимое массива fileBytes в новый файл с именем myFile.txt

В примере кода показано, как записать содержимое строковой переменной fileContents в файл myFile.txt

Внимательно изучите приведенный ниже пример кода и выберите верное утверждение.

string filePath = "myFile.txt";

string[] fileLines = { "Line 1", "Line 2", "Line 3" };

File.AppendAllLines(filePath, fileLines);

Выберите один ответ:

В примере кода показано, как записать содержимое строковой переменной fileContents в новый файл с именем myFile.txt.

В примере кода показано, как записать содержимое массива строк fileLines в новый файл с именем myFile.txt.

В примере кода показано, как записать содержимое массива fileBytes в новый файл с именем myFile.txt.

В примере кода показано, как записать содержимое строковой переменной fileContents в файл myFile.txt.

В примере показано, как записать содержание массива строк fileLines в файл myFile.txt

Выберите верные утверждения для понятия « определение события».

Выберите один или несколько ответов:

События основаны на делегатах, поэтому прежде чем определять событие, следует определить делегат, описывающий метод обработки события

Согласно стандартному соглашению делегат события не должен возвращать значение и должен принимать два параметра

Первому параметру необходимо иметь тип object и имя sender. Второй параметр должен быть производным от класса EventArgs пространства имен System с именем e

Если событие не требует передачи аргументов события при его вызове, можно использовать класс EventArgs напрямую

Внимательно изучите фрагмент кода, приведенный ниже.

namespace GenericDelegateDemo

{ public class GenericDelegates

  { static void Main(string[] args)

    { Func<int, float, double, double> obj1 = (x, y, z) =>

      { return x + y + z;

      };

      double Result = obj1.Invoke(100, 125.45f, 456.789);

      Console.WriteLine(Result);

      

      Action<int, float, double> obj2 = (x, y, z) =>

      { Console.WriteLine(x + y + z);

      };

      obj2.Invoke(50, 255.45f, 123.456);

      

      Predicate<string> obj3 = new Predicate<string>(CheckLength);

      bool Status = obj3.Invoke("Pranaya");

      Console.WriteLine(Status);

      Console.ReadKey();

    }

    public static bool CheckLength(string name)

    { if (name.Length > 5) return true;

      return false;

    }

  }

}

Что будет выведено в консоль?

Выберите один ответ:

Возникнет ошибка компиляции

682,238996948242

428,905996948242

True

Pranaya

682,238996948242

428,905996948242

True

682,238996948242

428,905996948242

False

Внимательно изучите код и выберите верные утверждения.

public isValidDelegate isValid = null;

. . .

if(isValid != null)

{ isValid();

}

Выберите один или несколько ответов:

При вызове метода Invoke используются поля _target и _methodPtr для вызова желаемого метода на заданном объекте, при этом сигнатура метода Invoke не соответствует сигнатуре делегата

Обнаружив строку вида isValid();, компилятор генерирует код – аналогичный, как если бы он встретил в исходном тексте следующее: isValid.Invoke();

При вызове делегата синхронно в случае группового вызова каждый из инкапсулированных в него методов вызывается по порядку

При вызове метода Invoke используются поля _target и _methodPtr для вызова желаемого метода на заданном объекте, при этом сигнатура метода Invoke соответствует сигнатуре делегата

Внимательно изучите представленный ниже фрагмент кода.

namespace LambdaExpressionDemo

{

  public class LambdaExpression

  {public delegate string GreetingsDelegate(string name);

    static void Main(string[] args)

    { GreetingsDelegate obj = delegate (string name)

      {return "Hello @" + name + " welcome to Dotnet Tutorials";

      };

      string GreetingsMessage = obj.Invoke("Pranaya");

      Console.WriteLine(GreetingsMessage);

      Console.ReadKey();

    }

  }

}

Что будет выведено в консоль?

Выберите один ответ:

Pranaya

Возникнет ошибка компиляции

Hello @" + name + " welcome to Dotnet Tutorials

Hello @Pranaya welcome to Dotnet Tutorials

Какие утверждения верны для понятия «анонимные методы»?

Выберите один или несколько ответов:

Для определения анонимного метода используется ключевое слово delegate, после которого можно дополнительно представить список параметров в круглых скобках

Анонимный метод не имеет доступа к ref- и out-параметрам определяющего их метода

Анонимный метод можно использовать с делегатом, вызывая его через делегат

Анонимным является метод, имеющий имя, тип, список параметров и тело метода

Внимательно изучите фрагмент кода, выберите верное утверждение.

class Program 

{

  delegate bool IsEqual(int x);

  

  static void Main(string[] args)

  {

    int[] integers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

    int result1 = Sum(integers, x => x > 5);

    Console.WriteLine(result1);

    Console.Read();

  }

  private static int Sum (int[] numbers, IsEqual func)

  {

    int result = 0;

    foreach(int i in numbers)

    {

      if (func(i))

        result += i;

    }

    return result;

  }

}

Выберите один ответ:

В консоль будет выведено сообщение:

6, 7, 8, 9

Возникнет ошибка компиляции

В консоль будет выведено сообщение:

30

Возникнет ошибка времени выполнения

Внимательно изучите фрагмент кода и выберите верные утверждения.

MyDelegate del = null;

...

void myMethod()

{

  int count = 0;

  del += new MyDelegate(() =>

  {

    count++;

    // Perform operation using count variable.

    ...

  });

}

Выберите один или несколько ответов:

Когда все ссылки на делегат del удалятся, сборщик мусора отметит переменную count для удаления

Лямбда-выражение может использовать любой объект любого типа, находящийся в области видимости, когда выражение определено

Лямбда-выражение, которое присваивается делегату в методе, может использовать переменные, определенные в этом методе

Если какая-либо ссылка на делегат del останется существовать, когда метод завершится, переменная count останется

Внимательно изучите фрагмент кода, представленный ниже. Выберите верные утверждения.

MyEvent += new MyEventDelegate (myHandlingMethod);

...

MyEvent -= myHandlingMethod;

...

if (MyEvent != null)

{ EventArgs args = new EventArgs();

 MyEvent(this, args);

}

Выберите один или несколько ответов:

Для генерации события используется имя события и указываются параметры в скобках, аналогично вызову метода

Метод инициализации события следует именовать с префиксом On

Чтобы подписаться на событие, используется составная операция присваивания «+=» – точно так же, как при добавлении ссылки на метод делегату

Чтобы отказаться от подписки на событие, используется составная операция присваивания «-=»

При попытке вызвать событие, не имеющее подписчиков, код будет генерировать исключение NullReferenceException

Укажите утверждения, являющиеся верными применительно к понятию « анонимные методы».

Выберите один или несколько ответов:

Анонимный метод не имеет доступа к ref- и out-параметрам определяющего их метода

Анонимный метод может обращаться к переменным экземпляра (или статическим переменным) из контекста объемлющего класса

Анонимный метод может объявлять локальные переменные с теми же именами, что и у членов объемлющего класса (локальные переменные имеют отдельный контекст и скрывают внешние переменные-члены)

Анонимный метод может иметь локальные переменные, имена которых совпадают с именами локальных переменных объемлющего метода

Выберите верные утверждения для понятия «делегат».

Выберите один или несколько ответов:

Делегат должен ссылаться на методы и поэтому не может быть равен null

Когда делегат не ссылается на какие-либо методы, он будет обращаться в null; когда делегат имеет ссылки на один или несколько методов, он не равен null

После определения делегата и создания его экземпляра делегат можно вызвать в коде

Делегат можно вызвать аналогично методу, используя имя экземпляра делегата со следующими за ним в скобках параметрами

Укажите утверждения, которые верны в отношении понятия «событие».

Выберите один или несколько ответов:

События следует использовать только тогда, когда разрабатывается тип, которому необходимо сообщать многим классам об изменении своего состояния

Когда тип определяет событие, другие типы могут определить метод, соответствующий сигнатуре делегата, связанного с событием, подписаться на событие и указать, что их метод должен быть запущен при возникновении события

Любой объект, имеющий доступ к делегату, может ссылаться на такой делегат, только тип, определяющий событие, может вызвать это событие

Тип использует события для свидетельствования о значительном изменении в приложении и организации делегата для вызова обработчика события

Укажите верные утверждения для понятия «лямбда-выражение».

Выберите один или несколько ответов:

Лямбда-выражение в C# является развернутой записью анонимной функции

Лямбда-выражения обеспечивают технику реализации анонимных методов, с помощью которой можно достичь более краткого кода, чем с делегатами

Лямбда-выражение состоит из набора параметров и тела. Тело определяет функцию, которая может вернуть значение, в этом случае Visual C#-компилятор выводит возвращаемый тип из определения метода

Лямбда-выражением является выражение, возвращающее метод

Ниже приведен код.

namespace DelegateDemo

{ public delegate void AddDelegate(int a, int b);

  public delegate string GreetingsDelegate(string name);

  public class Program

  {

    public void Add(int x, int y)

    { Console.WriteLine(@"The Sum of {0} and {1}, is {2} ", x, y, (x + y));

    }

    public static string Greetings(string name)

    { return "Hello @" + name;

    }

    static void Main(string[] args)

    { Program obj = new Program();

      AddDelegate ad = new AddDelegate(obj.Add);

      GreetingsDelegate gd = new GreetingsDelegate(Program.Greetings);

      ad(100, 50);

      string GreetingsMessage = gd("Pranaya");

      

      Console.WriteLine(GreetingsMessage);

      Console.ReadKey();

    }

  }

}

Что будет выведено в консоль?

Выберите один ответ:

Pranaya

The Sum of 100 and 50, is 150

Hello @Pranaya

The Sum of 100 and 50, is 150

Hello @

Hello @Pranaya

Изучите фрагмент кода и укажите верные утверждения.

public delegate void MyEventDelegate(object sender, EventArgs e);

...

public event MyEventDelegate MyEvent = null;

Выберите один или несколько ответов:

При определении события, как правило, достаточно иметь уровень доступа private

При определении события следует помнить, что делегат должен быть по крайней мере уровня доступа события, в противном случае использующие тип классы не будут в состоянии создать экземпляры делегата и, следовательно, не смогут подписаться на событие

Делегат – это тип, следовательно, он может существовать на уровне пространства имен или класса. Событие же – это член класса и может определяться только на уровне класса

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

Для определения события используется ключевое слово event и указывается делегат

Внимательно изучите фрагмент кода.

namespace LambdaExpressionDemo

{

  public class LambdaExpression

  { public delegate string GreetingsDelegate(string name);

    static void Main(string[] args)

    { GreetingsDelegate obj = new GreetingsDelegate(LambdaExpression.Greetings);

     string GreetingsMessage = obj.Invoke("Pranaya");

     Console.WriteLine(GreetingsMessage);

     Console.ReadKey();

    }

    public static string Greetings(string name)

    {

      return "Hello @" + name + " welcome to Dotnet Tutorials";

    }

  }

}

Что будет выведено в консоль?

Выберите один ответ:

Hello @" + name + " welcome to Dotnet Tutorials

Возникнет ошибка компиляции

Hello @Pranaya welcome to Dotnet Tutorials

Pranaya

Внимательно изучите фрагмент кода. Выберите верные утверждения.

class Math

{

  public int Sum(int x, int y) { return x + y; }

}

class Program

{ delegate int Operation(int x, int y);

  static void Main(string[] args)

  { Math math = new Math();

    Operation del = math.Sum;

    int result = del(4, 5);  

    Console.WriteLine(result);

  }

}

Выберите один или несколько ответов:

Делегат Operation возвращает значение типа int и имеет два параметра типа int

Делегату Operation соответствует любой метод, который возвращает значение типа int и принимает два параметра типа int

В консоль будет выведено сообщение:

9

В консоль будет выведено сообщение:

5

Изучите представленный ниже код и укажите верное утверждение.

class Program

  {

    delegate int Operation(int x, int y);

    static void Main(string[] args)

    { Operation op = Subtract;

     op += Multiply;

     op += Add;

     Console.WriteLine(op(7, 2));  

     Console.Read();

    }

    private static int Add(int x, int y) { return x + y; }

    private static int Subtract(int x, int y) { return x - y; }

    private static int Multiply(int x, int y) { return x * y; }

  }

Выберите один ответ:

В консоль будет выведено сообщение:

9

В консоль будет выведено сообщение:

5

Возникнет ошибка компиляции

В консоль будет выведено сообщение:

9

5

14

В консоль будет выведено сообщение:

14

Изучите код и укажите верные утверждения.

DelegateIntro di;

. . .

Feedback fb1 = new Feedback(FeedbackToConsole);

Feedback fb2 = new Feedback(FeedbackToMsgBox);

Feedback fb3 = new Feedback(di.FeedbackToFile);

...

Counter(1, 2, fbChain);

. . .

private static void Counter(int from, int to, Feedback fb)

{

  for (int val = from; val <= to; val++)

  {

    // If any callbacks are specified, call them

    if (fb != null)

      fb(val);

  }

}

. . .

Выберите один или несколько ответов:

Методы вызываются в следующей последовательности: FeedbackToConsole, FeedbackToMsgBox и FeedbackToFile

Когда метод Invoke вызывается по отношению к делегату, на который ссылается fbCbain, делегат обнаруживает, что поле _invocationList не равно null, и инициируется выполнение цикла, итерационно обрабатывающего все элементы массива путем вызова метода, оболочкой которого служит указанный делегат

Внутри Counter содержится код, неявно вызывающий метод Invoke по отношению к объекту-делегату Feedback

Методы вызываются в следующей последовательности: FeedbackToFile, FeedbackToConsole, FeedbackToMsgBox 

---

ПРОМЕЖУТОЧНЫЕ ТЕСТЫ 5-8

Внимательно изучите код и выберите верный ответ.

public static void Main()

    { ArrayList arlist = new ArrayList()

       {  1,

          "Bill",

          300,

          4.5f

        };

        arlist.Insert(1, "Item");

        foreach (var val in arlist)    Console.WriteLine(val);

    }

Выберите один ответ:

В консоль будет выведено сообщение:

Item

1

Bill

300

4.5

В консоль будет выведено сообщение:

1

Bill

300

4.5

Item

В консоль будет выведено сообщение:

1

Item

Bill

300

4.5

Будет вызвано Runtime exception

Выберите верное утверждение для понятия «метод AddAfter(LinkedListNode<T> node, LinkedListNode<T> newNode) класса LinkedList<T>».

Выберите один ответ:

Вставляет узел newNode в список после узла node

Вставляет в список новый узел со значением value перед узлом node

Вставляет в список узел newNode перед узлом node

Вставляет в список новый узел со значением value после узла node

Внимательно изучите приведенный ниже код, выберите верные утверждения.

interface IWrapper<T>

{ void SetData(T data);

 T GetData(); }

class Wrapper<T> : IWrapper<T>

{ private T storedData;

 void IWrapper<T>.SetData(T data)

  { this.storedData = data;  }

 T IWrapper<T>.GetData()

  { return this.storedData;  }

}

...

Wrapper<string> stringWrapper = new Wrapper<string>();

IWrapper<string> storedStringWrapper = stringWrapper;

storedStringWrapper.SetData("Hello");

Console.WriteLine("Stored value is {0}", storedStringWrapper.GetData());

Выберите один или несколько ответов:

Тип Wrapper<T> реализует интерфейс неявно

Обобщенный класс Wrapper<T> является оберткой вокруг типа T

Код генерирует сообщение «Stored value is Hello»

В коде создается экземпляр типа Wrapper<string>, который для вызова метода SetData ссылается на объект через интерфейс IWrapper<string>

Обобщенный интерфейс IWrapper определяет методы SetData и GetData, которые класс Wrapper<T> реализует для хранения и извлечения данных соответственно

Внимательно изучите код, представленный ниже, и укажите верные утверждения.

interface IPrinter<DocumentType> where DocumentType : IPrintable

{

  void PrintDocument(DocumentType Document);

  PrintPreview PreviewDocument(DocumentType Document);

}

class Printer<DocumentType> : IPrintable<DocumentType> where DocumentType : IPrintable

{

  public void PrintDocument(DocumentType Document)

  { IPrintable doc = (IPrintable)Document;

   PrintService.Print(doc);

  }

  public PrintPreview PreviewDocument(DocumentType Document)

  { IPrintable doc = (IPrintable)Document;

    return new PrintPreview(doc)

  }

}

Выберите один или несколько ответов:

В примере показан обобщенный интерфейс, который реализуется в обобщенном классе

Как и обобщенные классы и структуры, обобщенные интерфейсы могут определить ограничения на параметры типа

В обобщенном классе можно реализовать обобщенный интерфейс и использовать его для ссылки на класс, как и при работе с обычным классом и интерфейсом

Обобщенный интерфейс похож на любой другой интерфейс, за исключением того, что при его определении указываются параметры типа, которые используются в членах, определенных в интерфейсе

Внимательно изучите представленный ниже код и укажите верные утверждения.

class PrintableCollection<TItem>

{

  TItem[] data;

  int index;

  TItem tempData;

  ...

  public PrintableCollection()

  {

    this.tempData = default(TItem);

    ...

  }

  ...

}

Выберите один или несколько ответов:

Когда компилятор генерирует код для обобщенного типа, он заменяет конструкцию default значением по умолчанию, зависящим от конкретного типа

Для структуры ключевое слово default будет инициализировать каждый член структуры нулем или null в зависимости от того, являются они значимым типом или ссылкой

Ключевое слово default порождает значимые значения по умолчанию для типа, указанного в качестве параметра типа

Значение для ссылочных и значимых типов по умолчанию будет null

Выберите верные утверждение, относящиеся к понятию «Делегат Func».

Выберите один или несколько ответов:

Делегат Func имеет перегрузки для поддержки от 0 и до 16 параметров

Для результирующего выходного типа делегат Func использует ковариантность

Делегат Func – это делегат, используемый для инкапсуляции методов, не возвращающих значения (возвращаемым типом является void)

При использовании делегата Func всегда указывается тип возвращаемого значения в дополнение к типам параметров, последний параметр типа – всегда тип возвращаемого значения

Изучите код. Выберите верные утверждения.

interface IStoreWrapper<T>

{ void SetData(T data);

}

interface IRetrieveWrapper<T>

{ T GetData();

}

class Wrapper<T> : IStoreWrapper<T>, IRetrieveWrapper<T>

{ private T storedData;

  void IStoreWrapper<T>.SetData(T data)

  { this.storedData = data;

  }

  T IRetrieveWrapper<T>.GetData()

  { return this.storedData;

  }

}

Выберите один или несколько ответов:

Интерфейсы IStoreWrapper<T> и IRetrieveWrapper<T> реализуются в классе Wrapper<T>

Доступ к методам SetData и GetData осуществляется с помощью различных интерфейсов

Интерфейс IRetrieveWrapper<T> позволяет только читать данные, которые хранятся в объекте IWrapper<T>, с помощью метода GetData, и он не предоставляет какого-либо способа изменения данных

Код генерирует сообщение «Stored value is Hello»

Внимательно изучите код, укажите верные утверждения.

T PerformUpdate<T>(T input)

{ T output = // Update parameter.

 return output;

}

...// Generic method usage....

string result = PerformUpdate<string>("Test");

int result2 = PerformUpdate<int>(1);

...

string PerformUpdate(string input)

{ string output = // Update parameter.

 return output;

}

int PerformUpdate(int input)

{ int output = // Update parameter.

 return output;

}

Выберите один или несколько ответов:

Компилятор преобразует обобщенные методы «вызов к вызову» (calls to calls) в конкретные методы

При компиляции приложения порождаются эквиваленты указанных методов в Microsoft Intermediate Language

В примере показано, как вызывать обобщенный метод, указав параметр типа

Пример показывает, как компилятор преобразует обобщенный метод в неуниверсальный метод

Внимательно изучите код и выберите верные утверждения.

class PrintableCollection<TItem>

{

  TItem[] data;

  int index;

  ...

  public void Insert(TItem item)

  {

    ...

    data[index] = item;

    ...

  }

}

Выберите один или несколько ответов:

В примере создается массив объектов TItem, а метод Insert вставляет в массив значение, определяемое его индексом в этом массиве

Класс Insert определяет метод PrintableCollection, принимающий параметр типа TItem

В примере показан пользовательский обобщенный тип PrintableCollection, использующий параметр типа TItem

Класс PrintableCollection определяет метод Insert, принимающий параметр типа TItem

Какие утверждения верны применительно к понятию «делегат Action»?

Выберите один или несколько ответов:

При использовании делегата Action всегда указывается тип возвращаемого значения в дополнение к типам параметров, последний параметр типа – всегда тип возвращаемого значения

Делегат Action имеет перегрузки для поддержки от 0 и до 16 параметров

Делегат Action – это делегат, используемый для инкапсуляции методов, не возвращающих значения (возвращаемым типом является void)

.NET Framework включает несколько перегруженных делегатов Action, которые позволяют указать типы параметров, передаваемых делегату

Укажите верные утверждения, относящиеся к понятию «обобщенный делегат».

Выберите один или несколько ответов:

Обобщенный делегат определяется с помощью параметров типа аналогично использованию параметров типа в объявлении метода

При использовании делегата Func всегда указывается тип возвращаемого значения в дополнение к типам параметров, последний параметр типа – всегда тип возвращаемого значения

Основными обобщенными делегатами являются Action и Func

Делегат Action – это делегат, используемый для инкапсуляции методов, не возвращающих значения (возвращаемым типом является void)

Делегат Func не возвращает значение

Выберите верные утверждения применительно к понятию «контрвариантность».

Выберите один или несколько ответов:

Контравариантность является следствием ковариантности и позволяет использовать обобщающий интерфейс для ссылки на объект типа B через ссылку на тип A, пока типа B является производным от типа A

Если методы в обобщенном интерфейсе могут принимать параметры object, они могут принимать параметры string

Если можно выполнять операции с использованием объекта, значит, можно выполнять ту же операцию с использованием строки, так как все строки являются объектами

Если методы в обобщенном интерфейсе могут возвращать строки, они также могут возвращать объекты

Ниже приведен код. Что будет выведено в консоль?

class Program

  {

    static void Main(string[] args)

    {Queue<Person> persons = new Queue<Person>();

      persons.Enqueue(new Person() { Name = "Tom" });

      persons.Enqueue(new Person() { Name = "Bill" });

      persons.Enqueue(new Person() { Name = "John" });

      Person pp = persons.Peek();

      Console.WriteLine(pp.Name);

         }

  }

  class Person

  {

    public string Name { get; set; }

  }

Выберите один ответ:

John

Tom

Bill

Возникнет ошибка

Изучите код, приведенный ниже. Выберите верные утверждения.

class PrintableCollection<TItem> where TItem : IPrintable

{

  TItem[] data;

  ...

  public void PrintItems()

  {

    foreach (TItem item in data)

    {

      item.Print();

    }

  }

}

Выберите один или несколько ответов:

Для добавления уточнения после определения класса используется ключевое слово then

В данном примере указано, что параметр типа для типа PrintableCollection должен реализовывать интерфейс IPrintable

Несколько ограничений определяют, разделяя их уточнения запятой, как класс, реализующий несколько интерфейсов

Ключевое слово where можно добавить для каждого параметра типа, который определяется. Более того, можно использовать несколько ограничений для каждого типа параметра

Какие утверждения справедливы применительно к понятию «обобщенный метод»?

Выберите один или несколько ответов:

Для определения обобщенного метода используется параметр типа или несколько параметров, заключенных в угловые скобки, определенных перед списком параметров

Обобщенные методы и делегаты содержат параметр типа, который можно использовать в списке параметров и возвращаемом типе для метода или делегата

Обобщенные методы позволяют определить методы, выполняющие действия над объектом при сохранении безопасности типов

Обобщенные методы не позволяют определить методы, выполняющие действия над объектом

Соотнесите название метода класса ArrayList с его описанием.

void InsertRange(int index, ICollection col)

Выберите...

Удаляет из списка count элементов, начиная с индекса index

Вставляет в список, начиная с индекса index, коллекцию ICollection

Вставляет в список по индексу index объект value

Удаляет из списка объект value

Удаляет из списка элемент по индексу index

void Insert(int index, object value)

Выберите...

Удаляет из списка count элементов, начиная с индекса index

Вставляет в список, начиная с индекса index, коллекцию ICollection

Вставляет в список по индексу index объект value

Удаляет из списка объект value

Удаляет из списка элемент по индексу index

void RemoveRange(int index, int count)

Выберите...

Удаляет из списка count элементов, начиная с индекса index

Вставляет в список, начиная с индекса index, коллекцию ICollection

Вставляет в список по индексу index объект value

Удаляет из списка объект value

Удаляет из списка элемент по индексу index

void RemoveAt(int index)

Выберите...

Удаляет из списка count элементов, начиная с индекса index

Вставляет в список, начиная с индекса index, коллекцию ICollection

Вставляет в список по индексу index объект value

Удаляет из списка объект value

Удаляет из списка элемент по индексу index

void Remove(object value)

Выберите...

Удаляет из списка count элементов, начиная с индекса index

Вставляет в список, начиная с индекса index, коллекцию ICollection

Вставляет в список по индексу index объект value

Удаляет из списка объект value

Удаляет из списка элемент по индексу index

·        Удаляет из списка count элементов, начиная с индекса index

·        Вставляет в список, начиная с индекса index, коллекцию ICollection

·        Вставляет в список по индексу index объект value

·        Удаляет из списка объект value

·        Удаляет из списка элемент по индексу index

Выберите верное утверждение, относящееся к понятию «ковариации».

Выберите один ответ:

Если методы в обобщенном интерфейсе могут принимать параметры object, они могут принимать параметры string

Если можно выполнять операции с использованием объекта, значит, можно выполнять ту же операцию с использованием строки, поскольку все строки являются объектами

Контравариантность является следствием ковариантности и позволяет использовать обобщающий интерфейс для ссылки на объект типа B через ссылку на тип A, пока типа B является производным от типа A

Если методы в обобщенном интерфейсе могут возвращать строки, они также могут возвращать объекты

Ниже представлен код. Что будет выведено в консоль?

class Program

  {

    static void Main(string[] args)

    {

      Dictionary<char, Person> people = new Dictionary<char, Person>();

      people.Add('b', new Person() { Name = "Bill" });

      people.Add('t', new Person() { Name = "Tom" });

      people.Add('j', new Person() { Name = "John" });

foreach (KeyValuePair<char, Person> keyValue in people) Console.WriteLine(keyValue.Key);

    

      foreach (char c in people.Keys) Console.WriteLine(c);

   

      foreach (Person p in people.Values) Console.WriteLine(p.Name);

   

    }

  }

  class Person

  {

    public string Name { get; set; }

  }

Выберите один ответ:

j - John

t - Tom

b - Bill

b - Bill

t - Tom

j - John

b

t

j

Bill

Tom

John

Дан список:        8  3  2  6  8

Изучите код и выберите верные утверждения.

int index = list.IndexOf(item: 8, index: 1);

Выберите один или несколько ответов:

Вернет отсчитываемый от нуля индекс первого вхождения элемента в списке

Вернет индекс первого вхождения элемента в списке. Ищет список от указанного индекса до конца списка

Вернет индекс: 4

Вернет индекс: 0

Изучите код и выберите верные утверждения.

var listA = new List<int>() { 8, 3, 2 };

var listB = new List<int>() { 8, 3, 2 };

bool result = listA.Equals(listB);

Выберите один ответ:

Возвращает true, поскольку два указанных списка равны по ссылкам (являются одним и тем же экземпляром)

Возвращает false, поскольку указанные два списка не являются одним и тем же экземпляром

Возникнет ошибка времени компиляции

Возникнет ошибка времени выполнения

Внимательно изучите код. Укажите верный ответ.

public class Program

{

    public static void Main()

    {

        var students = new List<Student>() {

        new Student(){ Id = 1, Name="Bill" },

        new Student(){ Id = 2, Name="Steve" },

        new Student(){ Id = 3, Name="Ram" },

        new Student(){ Id = 4, Name="Abdul" },

                new Student(){ Id = 5, Name="Bill" }

        };

        

        var studNames = from s in students

            where s.Name == "Bill"

            select s;

        

        foreach(var student in studNames)    Console.WriteLine(student.Id + ", " +student.Name);

    }

}

public class Student

{

    public int Id { get; set; }

    public string Name { get; set; }

}

Выберите один ответ:

В консоль будет выведено следующее сообщение:

Bill

Bill

Нет верного ответа

В консоль будет выведено сообщение:

1

5

В консоль будет выведено сообщение:

1, Bill

2, Steve

3, Ram

4, Abdul

5, Bill

В консоль будет выведено следующее сообщение:

1, Bill

5, Bill

Соотнесите описание с примером кода для методов строго типизированного списка List<T>.

Возвращает индекс последнего элемента, который соответствует указанному предикату. Он ищет в списке от начала до указанного startIndex

Выберите...

int index = list.FindLastIndex(x => x < 5);

int item = list.FindLast(x => x < 5);

int index = list.FindLastIndex( startIndex: 2, count: 2, match: x => x < 5);

int index = list.FindLastIndex( startIndex: 2, match: x => x < 5);

Возвращает последнее вхождение элемента, соответствующего указанному предикату

Выберите...

int index = list.FindLastIndex(x => x < 5);

int item = list.FindLast(x => x < 5);

int index = list.FindLastIndex( startIndex: 2, count: 2, match: x => x < 5);

int index = list.FindLastIndex( startIndex: 2, match: x => x < 5);

Возвращает отсчитываемый от нуля индекс последнего элемента, который соответствует указанному предикату

Выберите...

int index = list.FindLastIndex(x => x < 5);

int item = list.FindLast(x => x < 5);

int index = list.FindLastIndex( startIndex: 2, count: 2, match: x => x < 5);

int index = list.FindLastIndex( startIndex: 2, match: x => x < 5);

Возвращает индекс последнего элемента, который соответствует указанному предикату в диапазоне, заданном параметром count, и конечный индекс, неожиданно названный startIndex

Выберите...

int index = list.FindLastIndex(x => x < 5);

int item = list.FindLast(x => x < 5);

int index = list.FindLastIndex( startIndex: 2, count: 2, match: x => x < 5);

int index = list.FindLastIndex( startIndex: 2, match: x => x < 5);

·        int index = list.FindLastIndex(x => x < 5);

·        int item = list.FindLast(x => x < 5);

·        int index = list.FindLastIndex( startIndex: 2, count: 2, match: x => x < 5);

·        int index = list.FindLastIndex( startIndex: 2, match: x => x < 5);

Приведен список:    8 3 6 2 4 5 

Изучите код и выберите верные утверждения.

list.Sort(index: 2, count: 3, comparer: new MyComparer());

Выберите один или несколько ответов:

Вернет список: 8 3 2 4 6 5

Сортирует список с помощью настраиваемого компаратора

Вернет список: 2 3 4 5 6 8

Сортирует указанный диапазон списка с помощью настраиваемого компаратора

Сопоставьте описание и пример кода для методов строго типизированного списка List<T>.

Копирует диапазон элементов списка в массив, начиная с указанного индекса массива

Выберите...

list.CopyTo(array);

list.CopyTo(array, arrayIndex: 2);

bool result = list.Exists(x => x == 3);

list.CopyTo(index: 1, array: array, arrayIndex: 3, count: 1);

Копирует все элементы списка в начало указанного массива

Выберите...

list.CopyTo(array);

list.CopyTo(array, arrayIndex: 2);

bool result = list.Exists(x => x == 3);

list.CopyTo(index: 1, array: array, arrayIndex: 3, count: 1);

Возвращает true, если список содержит элементы, соответствующие указанному предикату, или false, если список не содержит элементов, соответствующих указанному предикату

Выберите...

list.CopyTo(array);

list.CopyTo(array, arrayIndex: 2);

bool result = list.Exists(x => x == 3);

list.CopyTo(index: 1, array: array, arrayIndex: 3, count: 1);

Копирует все элементы списка в массив, начиная с указанного индекса массива

Выберите...

list.CopyTo(array);

list.CopyTo(array, arrayIndex: 2);

bool result = list.Exists(x => x == 3);

list.CopyTo(index: 1, array: array, arrayIndex: 3, count: 1);

·        list.CopyTo(array);

·        list.CopyTo(array, arrayIndex: 2);

·        bool result = list.Exists(x => x == 3);

·        list.CopyTo(index: 1, array: array, arrayIndex: 3, count: 1);

Дан список:    8 3 2 6 

Внимательно изучите код, укажите верные утверждения.

list.Sort((x, y) => x.CompareTo(y));

Выберите один или несколько ответов:

Вернет индекс первого вхождения элемента в списке. Он ищет список в диапазоне, указанном индексом и счетчиком

Вернет список: 8 6 3 2

Вернет список: 2 3 6 8

Сортирует список с использованием делегата сравнения

Представлен список:    8 3 2 6 8

Изучите код, укажите верные утверждения.

int index = list.IndexOf(item: 3, index: 1, count: 2);

Выберите один или несколько ответов:

Вернет -1, если элемент не будет найден в указанном диапазоне

Вернет индекс: -1

Вернет индекс первого вхождения элемента в списке. Ищет список в диапазоне, указанном индексом и счетчиком

Вернет индекс: 1

Сопоставьте описание и пример кода для методов строго типизированного списка List<T>.

Выполняет указанное действие для каждого элемента в списке. Он делает то же самое, что и стандартный оператор foreach C#

Выберите...

list.ForEach(x => { Console.Write(x); });

listA.InsertRange(index: 1, collection: listB);

list.Insert(index: 1, item: 5);

var listB = listA.GetRange( index: 1, count: 3);

Возвращает список с диапазоном элементов исходного списка

Выберите...

list.ForEach(x => { Console.Write(x); });

listA.InsertRange(index: 1, collection: listB);

list.Insert(index: 1, item: 5);

var listB = listA.GetRange( index: 1, count: 3);

Вставляет элемент в список по указанному индексу

Выберите...

list.ForEach(x => { Console.Write(x); });

listA.InsertRange(index: 1, collection: listB);

list.Insert(index: 1, item: 5);

var listB = listA.GetRange( index: 1, count: 3);

Вставляет элементы другого списка (или объекта, реализующего IEnumerable) в список по указанному индексу

Выберите...

list.ForEach(x => { Console.Write(x); });

listA.InsertRange(index: 1, collection: listB);

list.Insert(index: 1, item: 5);

var listB = listA.GetRange( index: 1, count: 3);

·        list.ForEach(x => { Console.Write(x); });

·        listA.InsertRange(index: 1, collection: listB);

·        list.Insert(index: 1, item: 5);

·        var listB = listA.GetRange( index: 1, count: 3);

Дан список:    8 3 2 6 8

Внимательно изучите представленный ниже код и выберите верные утверждения.

int index = list.IndexOf(item: 8, index: 1, count: 2);

Выберите один или несколько ответов:

Вернет индекс: -1

Вернет -1, если элемент не будет найден в указанном диапазоне

Вернет индекс: 1

Вернет индекс первого вхождения элемента в списке. Ищет список в диапазоне, указанном индексом и счетчиком

Приведен следующий список:    8 3 2 6 

Изучите код и выберите верные утверждения.

list.Sort();

Выберите один или несколько ответов:

Вернет список: 8 6 3 2

Сортирует все элементы в списке

Метод List <T> работает, только если тип T реализует интерфейс IComparable <T> или IComparable

Вернет индекс первого вхождения элемента в списке. Ищет список в диапазоне, указанном индексом и счетчиком

Вернет список: 2 3 6 8

Сопоставьте описание и пример кода для конструктора строго типизированного списка List<T>.

Создает список с указанной емкостью

Выберите...

var list = new List<int>();

var list = new List<int>() { 8, 3, 2 };

var listA = new List<int>() { 8, 3, 2 }; var listB = new List<int>(listA);

var list = new List<int>(16);

Создает список и инициализирует его некоторыми элементами (целыми значениями)

Выберите...

var list = new List<int>();

var list = new List<int>() { 8, 3, 2 };

var listA = new List<int>() { 8, 3, 2 }; var listB = new List<int>(listA);

var list = new List<int>(16);

Создает список и инициализирует его элементами другого списка (или массива, или чего-либо другого, что реализует интерфейс IEnumerable)

Выберите...

var list = new List<int>();

var list = new List<int>() { 8, 3, 2 };

var listA = new List<int>() { 8, 3, 2 }; var listB = new List<int>(listA);

var list = new List<int>(16);

Создает пустой список целых значений

Выберите...

var list = new List<int>();

var list = new List<int>() { 8, 3, 2 };

var listA = new List<int>() { 8, 3, 2 }; var listB = new List<int>(listA);

var list = new List<int>(16);

·        var list = new List<int>();

·        var list = new List<int>() { 8, 3, 2 };

·        var listA = new List<int>() { 8, 3, 2 };

var listB = new List<int>(listA);

·        var list = new List<int>(16);

Приведен список:    8 3 2 6 8

Внимательно изучите код и выберите верные утверждения.

int index = list.IndexOf(8);

Выберите один или несколько ответов:

Вернет индекс: 4

Вернет индекс первого вхождения элемента в списке. Ищет список от указанного индекса до конца списка

Вернет индекс: 0

Вернет отсчитываемый от нуля индекс первого вхождения элемента в списке

Установите соответствие между описанием и примером кода для методов строго типизированного списка List<T>.

Преобразует элементы с помощью указанного делегата

Выберите...

bool result = list.Contains(3);

list.Add(5);

listA.AddRange(listB);

var conv = new Converter<int, decimal>(x => (decimal)(x+1)); var listB = listA.ConvertAll<decimal>(conv);

list.Clear();

Добавляет элементы из другого списка (или коллекции IEnumerable) в конец списка

Выберите...

bool result = list.Contains(3);

list.Add(5);

listA.AddRange(listB);

var conv = new Converter<int, decimal>(x => (decimal)(x+1)); var listB = listA.ConvertAll<decimal>(conv);

list.Clear();

Добавляет элемент в конец списка

Выберите...

bool result = list.Contains(3);

list.Add(5);

listA.AddRange(listB);

var conv = new Converter<int, decimal>(x => (decimal)(x+1)); var listB = listA.ConvertAll<decimal>(conv);

list.Clear();

Возвращает true, если список содержит указанный элемент, или false, если список не содержит указанного элемента

Выберите...

bool result = list.Contains(3);

list.Add(5);

listA.AddRange(listB);

var conv = new Converter<int, decimal>(x => (decimal)(x+1)); var listB = listA.ConvertAll<decimal>(conv);

list.Clear();

Удаляет все элементы из списка. Счетчик равен нулю, емкость не изменилась

Выберите...

bool result = list.Contains(3);

list.Add(5);

listA.AddRange(listB);

var conv = new Converter<int, decimal>(x => (decimal)(x+1)); var listB = listA.ConvertAll<decimal>(conv);

list.Clear();

·        bool result = list.Contains(3);

·        list.Add(5);

·        listA.AddRange(listB);

·        var conv = new Converter<int, decimal>(x => (decimal)(x+1));

var listB = listA.ConvertAll<decimal>(conv);

·        list.Clear();

Внимательно изучите код и выберите верные утверждения.

var listA = new List<int>() { 8, 3, 2 };

var listB = listA;

bool result = listA.Equals(listB);

Выберите один ответ:

Возвращает false, поскольку указанные два списка не являются одним и тем же экземпляром

Возвращает true, поскольку два указанных списка равны по ссылкам (являются одним и тем же экземпляром)

Возникнет ошибка времени выполнения

Возникнет ошибка времени компиляции

Изучите приведенный ниже код и укажите верный ответ.

public class Program

{

    public static void Main()

    {

        SortedList<string,string> cities = new SortedList<string,string>()

                { {"London", "UK"},

                 {"New York", "USA"}

                } ;

     cities.Add("Mumbai", "India");

        cities.Add("Johannesburg", "South Africa");

        foreach(var kvp in cities) Console.WriteLine("key: {0}, value: {1}", kvp.Key , kvp.Value );

    }

}

Выберите один ответ:

В консоль будет выведено сообщение:

key: Johannesburg

key: London

key: Mumbai

key: New York

В консоль будет выведено следующее сообщение:

value: UK

value: USA

В консоль будет выведено сообщение:

key: Johannesburg, value: South Africa

key: London, value: UK

key: Mumbai, value: India

key: New York, value: USA

В консоль будет выведено сообщение:

key: London, value: UK

key: New York, value: USA

key: 3, value: Three

key: 4, value: Four

key: 5, value: Five

key: 6, value: Six

Соотнесите описание с примером кода для методов строго типизированного списка List<T>.

Возвращает индекс первого элемента, который соответствует указанному предикату. Он ищет список от startIndex до конца списка

Выберите...

int item = list.Find(x => x > 2);

int index = list.FindIndex(x => x < 5);

int index = list.FindIndex( startIndex: 2, match: x => x < 5);

var listB = listA.FindAll(x => x > 2);

int index = list.FindIndex( startIndex: 2, count: 2, match: x => x < 5);

Возвращает индекс первого элемента, который соответствует указанному предикату. Он ищет список в диапазоне, указанном startIndex и count

Выберите...

int item = list.Find(x => x > 2);

int index = list.FindIndex(x => x < 5);

int index = list.FindIndex( startIndex: 2, match: x => x < 5);

var listB = listA.FindAll(x => x > 2);

int index = list.FindIndex( startIndex: 2, count: 2, match: x => x < 5);

Возвращает отсчитываемый от нуля индекс первого элемента, который соответствует указанному предикату

Выберите...

int item = list.Find(x => x > 2);

int index = list.FindIndex(x => x < 5);

int index = list.FindIndex( startIndex: 2, match: x => x < 5);

var listB = listA.FindAll(x => x > 2);

int index = list.FindIndex( startIndex: 2, count: 2, match: x => x < 5);

Возвращает список с элементами, соответствующими указанному предикату

Выберите...

int item = list.Find(x => x > 2);

int index = list.FindIndex(x => x < 5);

int index = list.FindIndex( startIndex: 2, match: x => x < 5);

var listB = listA.FindAll(x => x > 2);

int index = list.FindIndex( startIndex: 2, count: 2, match: x => x < 5);

Возвращает первое вхождение элемента, соответствующего указанному предикату

Выберите...

int item = list.Find(x => x > 2);

int index = list.FindIndex(x => x < 5);

int index = list.FindIndex( startIndex: 2, match: x => x < 5);

var listB = listA.FindAll(x => x > 2);

int index = list.FindIndex( startIndex: 2, count: 2, match: x => x < 5);

·        int item = list.Find(x => x > 2);

·        int index = list.FindIndex(x => x < 5);

·        int index = list.FindIndex( startIndex: 2, match: x => x < 5);

·        var listB = listA.FindAll(x => x > 2);

·        int index = list.FindIndex( startIndex: 2, count: 2, match: x => x < 5);

Внимательно изучите код, представленный ниже. Выберите верный ответ.

public class Program

{

    public static void Main()

    {

        var arlist = new ArrayList()

        {

          1,

          "Summer",

          300,

          4.5f

        };

        string Element = (string) arlist[1];

     Console.WriteLine(Element);

    }

}

Выберите один ответ:

В консоль будет выведено сообщение:

1

В консоль будет выведено сообщение:

Summer

Возникнет ошибка времени выполнения

Возникнет ошибка времени компиляции

Изучите код, представленный ниже. Выберите верный ответ.

var customersAndCountries = customers.Join( companies,

              cust => cust.CompanyName,

              comp => comp.CompanyName,

              cust, comp) =>

      new {cust.FirstName,cust.LastName,comp.Country});

var customersAndCountries1 = from cust in customers

           join comp in companies on cust.CompanyName

           equals comp.CompanyName

        select new {cust.FirstName, cust.LastName, comp.Country};

Выберите один ответ:

Следующие примеры кода иллюстрируют метод расширения Join и соответствующее выражение запроса join

Примеры иллюстрируют метод расширения Where и соответствующее выражение запроса where

Примеры иллюстрируют метод расширения OrderBy и соответствующее выражение запроса orderby

Примеры иллюстрируют метод расширения GroupBy и соответствующее выражение запроса groupby

Изучите нижеприведенный код.

public static void Main()

       {

        int x = 5, y = 10, z = 15;

        int result = x * 3 > y ? x : y > z? y : z;

        

        Console.WriteLine(result);

    }

Что будет выведено в консоль?

Выберите один ответ:

0,5

5

Возникнет ошибка времени выполнения Runtime exception

0

Изучите код и выберите верный ответ.

var sortedCustomers = customers.OrderBy(cust => cust.FirstName);

var sortedCustomers = from cust in customers orderby cust.FirstName select cust;

Выберите один ответ:

Примеры иллюстрируют метод расширения GroupBy и соответствующее выражение запроса groupby

Примеры иллюстрируют метод расширения Where и соответствующее выражение запроса where

Приведенные примеры иллюстрируют метод расширения OrderBy и соответствующее выражение запроса orderby

Данные примеры кода иллюстрируют метод расширения Join и соответствующее выражение запроса join

Внимательно изучите код. Что он иллюстрирует?

var customersGroupedByAge = customers.GroupBy(cust => cust.Age);

var customersGroupedByAge = from cust in customers group cust by cust.Age;

Выберите один ответ:

Примеры кода иллюстрирует метод расширения GroupBy и соответствующее выражение запроса groupby

Пример иллюстрирует метод расширения OrderBy и соответствующее выражение запроса orderby

Пример иллюстрирует метод расширения Where и соответствующее выражение запроса where

Данный пример кода иллюстрирует метод расширения Join и соответствующее выражение запроса join

Внимательно изучите код и выберите верный ответ.

var customersGroupedByAgeRange = customers.GroupBy(cust =>

{  if (cust.Age < 20) return "age < 20";

  if (cust.Age >= 20 && cust.Age < 40) return "age >= 20 and < 40";

  if (cust.Age >= 40 && cust.Age < 60) return "age >= 40 and < 60";

  if (cust.Age >= 60) return "age >= 60";

  return "Error";

});

foreach (var cust in customersGroupedByAgeRange.OrderBy(cust => cust.Key))

{ Console.WriteLine("{0}\t\t{1}", cust.Key, cust.Count());

}

Выберите один ответ:

Код генерирует следующий результат:

age > 20 and >= 40     4

age > 40 and >= 60     2

age > 60     1

Код генерирует следующий результат:

age >= 20 and < 40     4

age >= 40 and < 60     2

age >= 60     1

Код генерирует следующий результат:

age > 20 and <= 40     4

age > 40 and <= 60     2

age > 60     1

Код генерирует следующий результат:

age > 20 and < 40     4

age > 40 and < 60     2

age > 60     1

Внимательно изучите код. Укажите верное утверждение.

int result = numbers.Sum();

Выберите один ответ:

Пример кода иллюстрирует метод расширения OrderBy и соответствующее выражение запроса orderby

Нет верного утверждения

Пример иллюстрирует метод расширения GroupBy и соответствующее выражение запроса groupby

Данный пример кода иллюстрирует метод расширения Join и соответствующее выражение запроса join

Приведен следующий числовой ряд: 8 2 6 3

Изучите код, представленный ниже, и укажите верные утверждения.

int result = numbers.Min();

Выберите один или несколько ответов:

Вернет результат 2

Вернет ноль для пустой коллекции

Выдаст InvalidOperationException для пустой коллекции

Вернет минимальное значение в числовой коллекции

Внимательно изучите код и укажите верные утверждения.

var list = new List<int>();   

double result = list.Average();

Выберите один или несколько ответов:

Вычисляет среднее значение для элементов коллекции целого типа, тип результата – вещественный

Выбрасывает InvalidOperationException

Вычисляет среднее значение для элементов коллекции целого типа, тип результата – целое

Присвоит переменной result значение 0.0

Представлен числовой ряд: 8 2 6 3

Внимательно изучите код и выберите верные утверждения.

int result = numbers.Sum();

Выберите один или несколько ответов:

Вернет сумму значений в числовой коллекции

Вернет результат 0

Вернет ноль для пустой коллекции

Вернет результат 19

Вернет максимальное значение в числовой коллекции

Внимательно изучите код и укажите верный ответ.

var customersOver25 = customers.Where(cust => cust.Age > 25);

var customersOver25 = from cust in customers where cust.Age > 25 select cust;

Выберите один ответ:

Примеры иллюстрируют метод расширения Where и соответствующее выражение запроса where

Данные примеры иллюстрируют метод расширения GroupBy и соответствующее выражение запроса groupby

Эти примеры кода иллюстрируют метод расширения Join и соответствующее выражение запроса join

Примеры иллюстрируют метод расширения OrderBy и соответствующее выражение запроса orderby

Укажите правила, которым подчиняются выражения запроса.

Выберите один или несколько ответов:

Выражение запроса может содержать ноль или более конструкции from, let или where. Конструкция let представляет переменную и присваивает ей значение. Конструкция where фильтрует элементы коллекции

Выражение запроса должно начинаться с конструкции from, которая указывает на обрабатываемую коллекцию

Выражение запроса может включать ноль или более конструкций orderby с полями сортировки и необязательным указанием на направление упорядочивания. Направление может быть ascending или descending

Выражения запросов LINQ обеспечивают простой стенографический синтаксис, напоминающий операторы SQL, и предоставляют ту же функциональность, что и эквивалентные им методы расширения

Внимательно изучите код, представленный ниже.

public static void Main()

    {

        Queue<string> strQ = new Queue<string>();

        strQ.Enqueue("H");

        strQ.Enqueue("e");

        strQ.Enqueue("l");

        strQ.Enqueue("l");

        strQ.Enqueue("o");

        Console.WriteLine("Total elements: {0}", strQ.Count);

        }

Что будет выведено в консоль?

Выберите один ответ:

Total elements: 5

H

e

l

l

o

Hello

Total elements: 0

Внимательно изучите код, выберите верный ответ.

public static void Main()

    {

        int i = -2147483648;

        int j = 2147483647;

        uint ui1 = 4294967295;

        

        Console.WriteLine(Int32.MaxValue);

        Console.WriteLine(Int32.MinValue);

        Console.WriteLine(UInt32.MaxValue);

        Console.WriteLine(UInt32.MinValue);

    }

Выберите один ответ:

compile-time error: Cannot implicitly convert type 'uint' to 'int'

32767

-32768

65535

0

compile-time error

2147483647

-2147483648

4294967295

0

Даны следующие значения коллекции: А Б В Г 

Внимательно изучите код и выберите верные утверждения.

int result = items.Count();

Выберите один или несколько ответов:

Вернет ноль для пустой коллекции

Вернет результат 4

Вернет количество элементов в коллекции

Выдаст InvalidOperationException для пустой коллекции

Ознакомьтесь с кодом и выберите верные утверждения.

var list = new List<int> { 1, 8, 3, 2 };

double result = (from x in list where x < 5 select x).Average();

Выберите один или несколько ответов:

Присвоит переменной result значение 3.5

Представлен пример выражения запроса LINQ для вычисления среднего значения элементов, соответствующих указанному предикату

Выбрасывает InvalidOperationException

Вычисляет среднее значение для элементов коллекции целого типа, тип результата – целое

Дан следующий числовой ряд: 8 2 6 3

Внимательно изучите код и укажите верные утверждения.

int result = numbers.Max();

Выберите один или несколько ответов:

Вернет ноль для пустой коллекции

Вернет максимальное значение в числовой коллекции

Вернет результат 8

Выдаст InvalidOperationException для пустой коллекции

Представлен пустой числовой ряд.

Изучите код, приведенный ниже, и выберите верные утверждения.

int result = numbers.Sum();

Выберите один или несколько ответов:

Вернет ноль для пустой коллекции

Вернет максимальное значение в числовой коллекции

Вернет сумму значений в числовой коллекции

Вернет результат 0

Вернет результат 19

Изучите представленный ниже код, выберите верный ответ.

var stringList = new List<string> { "88888888", "22", "666666", "333" };

int lengthSum = stringList.Select(x => x.Length).Sum(); 

int lengthSum = stringList.Sum(x => x.Length);     

Выберите один ответ:

Значение переменной lengthSum: 0

Возникнет ошибка времени выполнения

Значение переменной lengthSum: null

Значение переменной lengthSum: 19

Даны числовые значения коллекции: 8 2 6 3 

Изучите код, приведенный ниже, и укажите верные утверждения.

int sum = numbers.Aggregate( func: (result,item) => result+item );

Выберите один или несколько ответов:

Метод Aggregate применяет функцию к каждому элементу коллекции

Выдает InvalidOperationException для пустой коллекции

Вернет результат 19

Возвращает ноль

Изучите представленный код и укажите верный ответ.

var numbers = new List<int>();

int sum = numbers.Sum();

Выберите один ответ:

Значение переменной sum = 0

Значение переменной sum = null

Значение переменной sum = 19

Значение переменной sum = 19.7

Соотнесите метод агрегирования LINQ, определенный в классе Enumerable, с примером кода.

Enumerable.Aggregate

Выберите...

long result = items.LongCount();

int result = items.Count();

int sum = numbers.Aggregate( func: (result,item) => result+item );

double result = numbers.Average();

Enumerable.Count

Выберите...

long result = items.LongCount();

int result = items.Count();

int sum = numbers.Aggregate( func: (result,item) => result+item );

double result = numbers.Average();

Enumerable.Average

Выберите...

long result = items.LongCount();

int result = items.Count();

int sum = numbers.Aggregate( func: (result,item) => result+item );

double result = numbers.Average();

Enumerable.LongCount

Выберите...

long result = items.LongCount();

int result = items.Count();

int sum = numbers.Aggregate( func: (result,item) => result+item );

double result = numbers.Average();

·        long result = items.LongCount();

·        int result = items.Count();

·        int sum = numbers.Aggregate( func: (result,item) => result+item );

·        double result = numbers.Average();

Внимательно изучите код, приведенный ниже, и выберите верный ответ.

var numbers = new List<int?> { null };

int? sum = numbers.Sum();

Выберите один ответ:

Значение переменной sum = 13

Значение переменной sum = null

Значение переменной sum = 0

Возникнет ошибка времени выполнения

Даны значения коллекции: А Б В Г 

Внимательно изучите код и выберите верные утверждения.

long result = items.LongCount();

Выберите один или несколько ответов:

Вернет количество элементов в коллекции. Результат имеет тип long (Int64), поэтому количество элементов может быть больше, чем Int32.MaxValue (2 147 483 647)

Возвращает ноль

Выдает InvalidOperationException для пустой коллекции

Вернет результат 4

Представлены числовые значения коллекции: 8 2 6 3 

Изучите код и укажите верные утверждения.

double result = numbers.Average();

Выберите один или несколько ответов:

Возвращает ноль

Возвращает среднее значение числовой коллекции

Выдает InvalidOperationException для пустой коллекции

Вернет результат 4,75

Внимательно изучите приведенный ниже код. Какие утверждения верны?

var numbers = new List<int?> { 1, 8, null, 3 };

int? maxNumber = numbers.Max();

Выберите один или несколько ответов:

Присвоит переменной maxNumber значение 8

Вернет максимальное число из списка целых чисел, допускающих значение null

Вернет максимальное число из списка десятичных чисел

Вернет null, если коллекция содержит только нулевые значения

Присвоит переменной maxNumber значение null

Внимательно изучите код и выберите верный результат.

double result1 = Math.Round(20.567, 2);

double result2 = Math.Round(20.463, 1);

Выберите один ответ:

20,57

20,5

21

21

20

20

20

21

Изучите представленный код. Укажите верные утверждения.

var stringList = new List<string> { "1", "8", "33333333", "22" };

int maxLength = stringList.Select(x => x.Length).Max();

Выберите один или несколько ответов:

Присвоит переменной maxLength значение 33333333

Вернет максимальное число из списка десятичных чисел

Вернет null, если коллекция содержит только нулевые значения

Присвоит переменной maxLength значение 8

Вернет длину самой длинной строки

Сопоставьте метод агрегирования LINQ, определенный в классе Enumerable, с примером кода.

Enumerable.Count

Выберите...

int result = numbers.Max();

int result = numbers.Sum();

int result = numbers.Min();

int result = items.Count();

Enumerable.Max

Выберите...

int result = numbers.Max();

int result = numbers.Sum();

int result = numbers.Min();

int result = items.Count();

Enumerable.Min

Выберите...

int result = numbers.Max();

int result = numbers.Sum();

int result = numbers.Min();

int result = items.Count();

Enumerable.Sum

Выберите...

int result = numbers.Max();

int result = numbers.Sum();

int result = numbers.Min();

int result = items.Count();

·        int result = numbers.Max();

·        int result = numbers.Sum();

·        int result = numbers.Min();

·        int result = items.Count();

Дан следующий код:

string[] people = { "Tom", "Bob", "Sam", "Kate", "Alice" };

string[] peopleRange = people[1..];

Выберите верный результат.

Выберите один ответ:

Bob, Sam, Alice, Kate

Tom, Bob, Sam, Alice

Sam, Kate, Bob, Alice

Bob, Sam, Kate, Alice

Внимательно изучите код и выберите верный ответ.

var numbers = new List<decimal> { 8.1m, 2.2m, 6.1m, 3.3m };

decimal sum = numbers.Sum();

Выберите один ответ:

Значение переменной sum = 0

Значение переменной sum = 19.7

Значение переменной sum = null

Значение переменной sum = 19

Внимательно изучите представленный ниже код, выберите верные ответы.

var list = new List<int> { 1, 8, 3, 2 };

int maxNumber = (from x in list where x < 5 select x).Max(); 

Выберите один или несколько ответов:

Присвоит переменной maxNumber значение 8

Вернет максимальное число из элементов в коллекции, допускающих значение null

Вернет максимальное число из элементов в коллекции с учетом указанного предиката

Присвоит переменной maxNumber значение 3

Вернет null, если коллекция содержит только нулевые значения

Изучите код и выберите верный результат.

double radius = 20;

double area = Math.PI * Math.Pow(radius, 2);

Console.WriteLine("Площадь круга с радиусом {0} равна {1}", radius, area);

Выберите один ответ:

Площадь круга с радиусом {20} равна {1256,63706143592}

Площадь круга с радиусом 20 равна 1256,63706143592

0

Площадь круга с радиусом {0} равна {1}

Внимательно изучите представленный код и выберите верный ответ.

var numbers = new List<int> { 8, 2, 6, 3 };

int sum = numbers.Sum();

Выберите один ответ:

Значение переменной sum = 19

Значение переменной sum = null

Значение переменной sum = 19.7

Значение переменной sum = 0

Внимательно изучите представленный код. Укажите верный ответ.

var numbers = new List<int?>(); 

int? sum = numbers.Sum();

Выберите один ответ:

Значение переменной sum = null

Значение переменной sum = 13

Возникнет ошибка времени выполнения

Значение переменной sum = 0

Ознакомьтесь с представленным кодом и выберите верный ответ.

var numbers = new List<int?> { 8, 2, null, 3 };

int? sum = numbers.Sum();

Выберите один ответ:

Значение переменной sum = 13

Возникнет ошибка времени выполнения

Значение переменной sum = 0

Значение переменной sum = null

Вам подходит эта работа?
Похожие работы
C#
Дипломная работа Дипломная
19 Сен в 08:53
25
0 покупок
C#
Контрольная работа Контрольная
10 Сен в 10:11
28 +1
0 покупок
C#
Контрольная работа Контрольная
8 Сен в 12:23
27 +1
0 покупок
C#
Дипломная работа Дипломная
28 Июл в 16:45
46 +1
0 покупок
Другие работы автора
Сварка и резка
Контрольная работа Контрольная
9 Окт в 12:05
10 +4
0 покупок
Электрооборудование
Лабораторная работа Лабораторная
26 Сен в 00:48
19 +1
0 покупок
Физика конденсированных сред
Тест Тест
25 Сен в 00:47
19 +1
0 покупок
Юриспруденция
Дипломная работа Дипломная
17 Сен в 04:40
21 +1
0 покупок
Юриспруденция
Дипломная работа Дипломная
17 Сен в 04:37
23 +2
0 покупок
Металлообработка
Тест Тест
14 Сен в 03:59
55 +2
0 покупок
Технология машиностроения
Тест Тест
13 Сен в 19:45
42 +2
2 покупки
Механика грунтов
Лабораторная работа Лабораторная
12 Сен в 20:41
36 +2
1 покупка
Юриспруденция
Дипломная работа Дипломная
12 Сен в 18:40
18 +1
0 покупок
Юриспруденция
Дипломная работа Дипломная
12 Сен в 18:37
23 +1
0 покупок
Юриспруденция
Дипломная работа Дипломная
12 Сен в 02:29
26 +1
0 покупок
Темы журнала
Показать ещё
Прямой эфир