- •Экзаменационный билет №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
2. Пространство имён – определение, примеры
Пространство имён – это способ организации системы типов в единую группу. Существует общая общеязыковая библиотека базовых классов. И концепция пространства имён обеспечивает эффективную организацию и навигацию в этой библиотеке. Вне зависимости от языка программирования доступ к определённым классам обеспечивается за счёт их группировки в рамках общих пространств имён.
Наиболее часто используемое пространство имён – System. Расположение соответствующей сборки известно. Если не использовать оператора usung System, корректное обращение к функции WriteLine() члену класса Console выглядело бы следующим образом:
System.Console.Writeline(“Hello!”); //Полное квалифицированное
При компиляции модуля, транслятор по полному имени функции (если используется оператор using – то по восстановленному) находит её код, который и используется при выполнении сборки.
3. Что будет выведено на экран в каждом из случаев, приведенных ниже:
А)
try {
Console.WriteLine("Hello ");
return;
}
finally { Console.WriteLine("Goodbye "); }
Console.WriteLine("world!");
Ответ: Hello Goodbye. Finally выполняется даже если выполнение прервано по return.
Б)
try {
Console.WriteLine("Hello ");
Thread.CurrentThread.Abort();
}
finally { Console.WriteLine("Goodbye "); }
Console.WriteLine("world!");
Ответ: Hello Goodbye. Abort выбрасывает исключение ThreadAbortException, которое обрабатывается finally, затем выполнение прерывается.
Экзаменационный билет №4
1. Структура программы на c#. Константы. Переменные: описание, область действия, время жизни. Операции, приоритеты операций.Структура программы на c#.
При создании консольного приложения в Visual C#, в первой линии в редакторе кода содержится директива using с перечислением нескольких пространств имен .NET Framework. Пространство имен позволяет, в некотором смысле, сгруппировать вместе классы и структуры, что ограничивает их область действия и позволяет избежать конфликта имен с другими классами и структурами. При создании программы в Visual C# пространство имен создается автоматически. Для использования в программе классов из других пространств имен необходимо указать их с директивой using. При создании нового приложения наиболее часто используемые пространства имен .NET Framework включены в список по умолчанию. При использовании классов из других пространств имен в библиотеке классов необходимо добавить директиву using для пространства имен к исходному файлу. Следующая после оператора using строка содержит комментарий. Комментарии являются полезными для включения в них примечаний для себя или других программистов.
В программе на C# должен присутствовать метод Main, в котором начинается и заканчивается управление. В методе Main создаются объекты и выполняются другие методы. Метод Main является статическим методом, расположенным внутри класса или структуры. В примере он расположен в классе с именем MainClass.
using System;
// Сomment
namespace Example
{
class MainClass
{
public static void Main (string[]args)
{
Console.WriteLine ("Hello World!");
}
}
}
Константы. Представляют собой неизменные значения, известные во время компиляции и неизменяемые на протяжении времени существования программы. Константы объявляются с модификатором const. Только встроенные типы C# (за исключением System.Object) могут быть объявлены как const. Определяемые пользователем типы, включая классы, структуры и массивы, не могут быть const. Для создания класса, структуры или массива, которые инициализируются один раз во время выполнения (например, в конструкторе) и после этого не могут быть изменены, используется модификатор readonly.
Константы должны инициализировать сразу после объявления.
class Calendar1
{
public const int months = 12;
}
Объявление переменной. Выполняется следующим образом:
<тип> <имя>;
Эквивалентные формы определения переменных элементарных размерных типов:
int a;
System.Int32 a;
Эквивалентные формы записи операторов определения и инициализации переменных элементарных размерных типов:
int a = 0;
int a = new int();
System.Int32 a = 0;
System.Int32 a = new System.Int32();
CLR не допускает использования в выражениях неинициализированных локальных переменных. В C# к таковым относятся переменные, объявленные в теле метода. Так что при разработке алгоритма следует обращать на это особое внимание.
Область видимости переменных. Это та часть кода, в пределах которого доступна данная переменная. Область определяется такими правилами:
Поле (field), известное также как переменная-член класса, находится в области видимости до тех пор, пока в этой области находится содержащий поле класс;
Локальная переменная (local variable) - находится в области видимости до конца блока операторов или метода в котором она обьявлена;
Локальная переменная, которая обьявлена в операторах for, while или подобных им, видна в пределах тела цикла.
Операции, приоритеты операций. Для каждого определённого в C# типа существует собственный набор операций, определённых на множестве значений этого типа.
Общие характеристики используемых в C# операций представлены ниже:
Категории операций |
Операции |
Арифметические |
+ - * / % |
Логические (boolean и побитовые) |
& | ^ ! ~ && || |
Строковые (конкатенаторы) |
+ |
Increment, decrement |
++ -- |
Сдвига |
>> << |
Сравнения |
== != < > <= >= |
Присвоения |
= += -= *= /= %= &= |= ^= <<= >>= |
Member access |
. |
Индексации |
[] |
Cast (приведение типа) |
() |
Conditional (трёхоперандная) |
?: |
Delegate concatenation and removal |
+ - |
Создания и удаление объекта |
new/delete |
Type information |
is sizeof typeof |
Overflow exception control (управление исключениями) |
checked unchecked |
Indirection and Address (неуправляемый код) |
* -> [] & |
На основе элементарных (первичных) выражений с использованием операций и дополнительных разделителей в виде открывающихся и закрывающихся скобок формируются выражения более сложной структуры.
Приоритет операций:
Приоритет |
Операции |
1 |
() [] . (постфикс)++ (постфикс)-- new sizeof typeof unchecked |
2 |
! ~ (имя типа) +(унарный) -(унарный) ++(префикс) --(префикс) |
3 |
* / % |
4 |
+ - |
5 |
<< >> |
6 |
< > <= => is |
7 |
== != |
8 |
& |
9 |
^ |
10 |
| |
11 |
&& |
12 |
|| |
13 |
?: |
14 |
= += -= *= /= %= &= |= ^= <<= >>= |