- •Экзаменационный билет №1
- •1. Структура и принципы функционирования приложений на платформе .Net, библиотека компонентов и классов .Net Framework, исполнительная среде clr.
- •2. Интерфейсы. Стандартные интерфейсы .Net. Сравнение и клонирование объектов. Структуры. Делегаты. События.
- •3. Каков результат компиляции и выполнения приведенного ниже кода?
- •Экзаменационный билет №2
- •1. Основные понятия ооп - инкапсуляция, наследование, полиморфизм.
- •2. Отношение между объектами. Включения и коллекции.
- •3. Что будет выведено в результате выполнения цикла?
- •Экзаменационный билет №3
- •1. Класс Delegate. Логика использования делегатов. Неизменяемость делегатов.
- •2. Пространство имён – определение, примеры
- •3. Что будет выведено на экран в каждом из случаев, приведенных ниже:
- •Экзаменационный билет №4
- •1. Структура программы на c#. Константы. Переменные: описание, область действия, время жизни. Операции, приоритеты операций.Структура программы на c#.
- •2. Параллельные и Взаимосвязанные Вычисления (ccr). Где используется ccr?
- •3. Что будет выведено на экран в каждом из случаев, приведенных ниже:
- •Экзаменационный билет №5
- •1. Понятие полиморфизма
- •2. Перегрузка функций. Алгоритм выбора перегруженной функции.
- •3. Что будет выведено в консоли в результате выполнения следующего кода (и почему):
- •Экзаменационный билет №6
- •1. Конструкторы, их виды (преобразования, умолчания, копирования). Деструктор.
- •2. Обзор dss.
- •3. Какой метод выберет компилятор?
- •Экзаменационный билет №7
- •1. Информационные члены класса и члены-методы.
- •2. Наследование классов. Синтаксис и общий смысл.
- •3. Какой метод выберет компилятор?
- •Экзаменационный билет №8
- •1. Массивы. Строки. Потоки и файлы.
- •2. Ccr.Итераторы.
- •3. Что будет выведено в результате выполнения цикла?
- •Экзаменационный билет №9
- •1. Пространство имён – определение, примеры.
- •2. Циклы for, while, do. Прерывание циклов.
- •3. Что будет выведено в результате выполнения цикла?
- •Экзаменационный билет №10
- •1. Сокрытие методов базового класса.
- •2.Операции в c# (привести примеры операций для логических типов, арифметических и т.Д.)
- •3. Найти неправильное(ые) описание(я) двумерного массива
- •Экзаменационный билет №11
- •1. Конструкторы. Ключевое слово this.
- •2.Особенности итераторов в ccr. Итераторы
- •3.Найти неправильное(ые) описание(я) одномерного массива
- •Экзаменационный билет №12
- •1.Clr (CommonLanguageRuntime) – определение, примеры задач clr, состав ядра.
- •2.Понятие инкапсуляции.
- •3.Каков результат компиляции и выполнения приведенного ниже кода?
- •Экзаменационный билет №13
- •1.Статические члены класса
- •2.Что такое полиморфизм? Пример полиморфизма.
- •3.Что будет выведено на экран при выполнении приведенного ниже кода?
- •Экзаменационный билет №14
- •1.Понятие класса. Доступ к членам класса.
- •2. Инкапсуляция. Понятие класса как абстрактного типа данных.
- •3.Как метод выберет компилятор?
- •Экзаменационный билет №15
- •1. Понятие события
- •2. Механизмы инкапсуляции в c#. Вложенные типы.
- •3. Каков результат компиляции и выполнения приведенного ниже кода?
- •Экзаменационный билет №16
- •1.Определение классов в с#. Ключевые слова internal, public, abstract
- •2.Потоковый ввод-вывод. Работа с файлами/каталогами
- •3. Какой метод выберет компилятор?
- •Экзаменационный билет №17
- •1. Интерфейсы
- •2.Параллельные и Взаимосвязанные Вычисления (ccr). Где используется ccr?
- •3.Что следует ожидать на экране?
- •Экзаменационный билет №18
- •1.Ссылочные типы и типы-значения
- •2.Класс Delegate. Логика использования делегатов. Неизменяемость делегатов.
- •3.Что будет выведено в результате выполнения цикла?
- •Экзаменационный билет №19
- •1.Clr (CommonLanguageRuntime) – определение, примеры задач clr, состав ядра
- •2.Зачем нужны частичные(partial) методы в c#?
- •3.Что будет выведено в консоли в результате выполнения следующего кода (и почему):
- •Экзаменационный билет №20
- •1.Простые типы. Примеры.
- •2.Ссылочный тип данных
- •3.Что будут выведено на экран в результате выполнения кода приведенного ниже?
- •Экзаменационный билет №21
- •1.Переменные. Объявление и инициализация
- •2.Наследование. Замещение методов. Проверка совместимости типов.
- •3.Что будет выведено в результате выполнения цикла?
- •Экзаменационный билет №22
- •1.Определение классов в с#. Ключевые слова internal, public, abstract
- •2.Библиотеки и типы, используемые при симуляции в Robotics
- •3.Что будет выведено на экран при выполнении приведенного ниже кода?
- •Экзаменационный билет №23
- •Экзаменационный билет №24
- •Экзаменационный билет №25
3. Что будет выведено в результате выполнения цикла?
float begin = 1000000000;
int counter = 0;
for (float i = begin; i < (begin + 10); i++)
counter++;
Console.WriteLine(counter);
Ответ: бесконечный цикл.
Оригинальное обоснование: Для таких больших значений float нет разницы между begin+1 и begin+10.
Альтернативное обоснование: Если более корректно, то в данном случае при операции инкремента идет потеря значимости числа, т.к. точность представления для типа float 7 знаков. Но тогда возникает резонный вопрос, а почему нет потери значимости в выражении (begin+10), ведь цикл то выполняется? А ее нет там потому, что компилятор с какого-то перепугу приводит это выражение к типу System.Int64(System.Int64.MaxValue = 9223372036854775807) и только потом выполняет операцию сравнения, т.е. потери значимости здесь не происходит.
Экзаменационный билет №9
1. Пространство имён – определение, примеры.
Пространство имён – это способ организации системы типов в единую группу. Существует общая общеязыковая библиотека базовых классов. И концепция пространства имён обеспечивает эффективную организацию и навигацию в этой библиотеке. Вне зависимости от языка программирования доступ к определённым классам обеспечивается за счёт их группировки в рамках общих пространств имён.
Наиболее часто используемое пространство имён – System. Расположение соответствующей сборки известно. Если не использовать оператора usung System, корректное обращение к функции WriteLine() члену класса Console выглядело бы следующим образом:
System.Console.Writeline(“Hello!”); //Полное квалифицированное
При компиляции модуля, транслятор по полному имени функции (если используется оператор using – то по восстановленному) находит её код, который и используется при выполнении сборки.
2. Циклы for, while, do. Прерывание циклов.
for (<инициализация>; <условие>; <операция>)
{
<код, подлежащий выполнению в цикле>
}
while (<проверка>)
{
<код, подлежащий выполнению в цикле>
}
do
{
<код, подлежащий выполнению в цикле>
}
while (<проверка>);
break - выход из цикла;
continue - выход из итерации;
goto - переход на метку;
return - выход из метода, содержащего цикл.
Пример:
int i = 1;
while (i <= 10)
{
if (i == 6)
break;
Console.WriteLine("{0}", i++);
}
3. Что будет выведено в результате выполнения цикла?
int end = int.MaxValue;
int begin = end - 100;
int counter = 0;
for (int i = begin; i <= end; i++)
counter++;
Console.WriteLine(counter);
Ответ: цикл бесконечный по определению - все значения int меньше или равны int.MaxValue.
Экзаменационный билет №10
1. Сокрытие методов базового класса.
При наследовании какого-нибудь (не абстрактного) члена базового класса, так же наследуется и его реализации. Если унаследованный член является виртуальным, тогда его реализацию можно легко переопределить с помощью ключевого слова override. Однако, помимо этого, независимо от того, является унаследованный член виртуальным или нет, при желании его реализацию еще можно и просто сокрыть. Это удобно в случае, например, когда общедоступный унаследованный член работает не совсем так, как хотелось бы. Делается это с использованием приблизительно такого кода:
public class MyBaseClass
{
public void DoSomething ()
{
// Базовая реализация.
}
}
public class MyDerivedClass : MyBaseClass
{
public void DoSomething()
{
// Реализация в производном классе, скрывающая базовую реализацию.
}
}