Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
91
Добавлен:
19.04.2015
Размер:
50.69 Кб
Скачать

Тест «Интерфейсы, структуры и перечисления»

1. Выберите правильное утверждение:

a. структуры не могут наследовать другие структуры

b. структуры не могут реализовывать интерфейсы

c. структуры не могут содержать методы

2. Выберите правильное утверждение:

a. структуры - это типы значений

b. объект структуры нельзя создавать с помощью оператора new

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

d. для структуры можно определить деструктор

3. Какие из следующих высказываний правильные?

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

b. объект структуры можно создавать без оператора new, но тогда он будет неинициализирован

c. если объект структуры создается с помощью оператора new, то поля структуры будут инициализированы либо конструктором по умолчанию, либо конструктором, определенным пользователем

d. объект структуры можно создавать только с помощью оператора new

4. В программе описана следующая структура. Что случится, если мы попытаемся откомпилировать этот фрагмент:

struct MyStruct

{

int i;

float f;

MyStruct t;

string s;

}

a. произойдет ошибка компиляции, т.к. в типе не предусмотрено методов или конструкторов

b. произойдет ошибка компиляции, т.к. поле не может быть того же типа, что и тип, в который оно входит

c. верно и a, и b

d. компиляция пройдет успешно

5. Можно ли самим задать тип перечисления и если да, то какой:

  1. можно создать перечисление любого целочисленного типа

  2. можно создать перечисление любого целочисленного типа, кроме char

  3. можно создавать перечисления только типа int и byte

  4. можно использовать только тип, заданный по умолчанию

6. Выберите правильное объявление перечисления:

a. type Flowers=enum{ Salviya, Lilium, Hosta, Crocus };

b. enum Flowers { Salviya, Lilium, Hosta, Crocus };

c. enum Flowers={ Salviya, Lilium, Hosta, Crocus };

7. Можно ли использовать значения перечисления для индексирования массива?

a. нельзя

b. можно, т.к. произойдет неявное преобразование типов

c. можно, но необходимо выполнить явное преобразование типов

8. Выберите правильный вариант из предложенных

a.

Flowers myFlower = Flowers.Lilium;

switch (myFlower)

{

case Flowers.Crocus: Console.WriteLine("Крокус"); break;

case Flowers.Hosta: Console.WriteLine("Носта"); break;

case Flowers.Lilium: Console.WriteLine("Лилия"); break;

case Flowers.Salviya: Console.WriteLine("Сальвия"); break;

}

b.

Flowers myFlower = Lilium;

switch (myFlower)

{

case Crocus: Console.WriteLine("Крокус"); break;

case Hosta: Console.WriteLine("Носта"); break;

case Lilium: Console.WriteLine("Лилия"); break;

case Salviya: Console.WriteLine("Сальвия"); break;

}

c.

Flowers myFlower = Flowers.Lilium;

switch ((int)myFlower)

{

case (int)Flowers.Crocus: Console.WriteLine("Крокус"); break;

case (int)Flowers.Hosta: Console.WriteLine("Носта"); break;

case (int)Flowers.Lilium: Console.WriteLine("Лилия"); break;

case (int)Flowers.Salviya: Console.WriteLine("Сальвия"); break;

}

9. Пусть в интерфейсе I определен метод m, а класс С реализует этот интерфейс (в одном и том же пространстве имен). Тогда в классе С для метода m должен быть определен следующий уровень доступа:

a. private

b. public

c. internal

10. Какое из следующих утверждений правильно:

a. класс может частично реализовать интерфейс

b. класс может реализовать только один интерфейс

c. один интерфейс могут реализовать несколько классов

Правильные ответы:

№ задания

1

2

3

4

5

6

7

8

9

10

Ответ

a

a

b,c

b

b

b

c

a

b

c

2