Программирование (Объектно-ориентированное программирование (Язык C#)
Программирование (Объектно-ориентированное программирование (Язык C#)
1. Что является точкой входа в программу на языке C#?
Статическая процедура Main() или класс, содержащий статическую процедуру с именем Main. В любом случае, main() точно должен присутствовать.
2. Что отличает консольное приложение на языке C# от приложения Windows Forms?
Например, не используется библиотека System.Windows.Forms, отстуствует GUI. Ну чем ДОС отличается от винды, йопт.
3. Какое имя логического типа данных может использоваться в программах C#?
System.Boolean или bool, скорее всего bool.
4. Что возвращает оператор new в языке C#?
Ссылку на созданный объект, или участок памяти с новым объектом или как-то так.
5. Что означает ключевое слово this в языке C#?
Ключевое слово this ссылается на текущий экземпляр класса, а также используется в качестве модификатора первого параметра метода расширения (вторая часть предложения не ясна и вряд ли будет).
6. Каким будет значение p1.X после выполнения следующего кода C#?
Point p1 = new Point (10,10); Point p2 = p1; p2.X =26;
10
7. Каким действием можно освободить память приложения от конкретного экземпляра класса C#?
Присвоить объекту значение NULL или воспользоваться методом Dispose(), скорее всего второе
8. Каким образом можно передать аргументы x, y из конструктора конструктору базового класса в С#?
С помощью ключевого слова base:
MyClass(x,y):base(x,y){...}
9. Какой оператор цикла отсутствует в языке С#?
Присутствуют:
for
foreach
do while (возможно по отдельности или вместе )
10. Какое отличие структуры от класса в С#?
Главные отличия – не участвуют в наследовании, не имеют ссылочной семантики (то есть передаются по значению а не по ссылке )
11. Сколько аргументов должен получать конструктор структуры языка С#?
Конструктор по умолчанию – ни одного, остальные – сколько угодно.
12. Какое выражение создаёт экземпляр (объект) класса X на языке C#?
X var = new X (…);
13. Каков размер переменной типа float в языке C#?
32 бита или 4 байта
14. Какой метод не входит в состав класса object в языке C#?
Входят:
Equals
Finalize
GetHashCode
GetType
MemberwiseClone
ReferenceEquals
ToString
15. Каков доступ по умолчанию к полям структуры (struct) в языке C#?
private - сомнительно
16. Для чего не используется ключевое слово this в языке C#?
Используется оно:
- Для квалификации элементов, скрытых одинаковыми именами
- Для передачи другим методам объекта в качестве параметра
- Для объявления индексаторов
Возможно не используется для обращения к статическим функциям-членам
17. С помощью какого модификатора в языке C# можно переопределить виртуальную функцию в производном классе?
override
18. Какое свойство характеризует абстрактный класс в языке C#?
Создавать экземпляры абстрактного класса нельзя. Абстрактный класс в объектно-ориентированном программировании — класс, содержащий хотя бы один абстрактный метод. Абстрактный метод не реализуется для класса, в котором описан, однако должен быть реализован для его неабстрактных потомков.
19. Чем интерфейс отличается от класса в языке C#?
Интерфейс - это частный случай класса. Интерфейс представляет собой полностью абстрактный класс, все методы которого абстрактны. В отличие от класса интерфейс не может содержать полей.
20. Что означает ключевое слово try в языке C#?
Инструкция try-catch состоит из блока try, за которым следует одно или несколько предложений catch, в которых определяются обработчики для различных исключений.
Блок try содержит защищаемый код, в котором могут происходить исключения.
21. Возможен ли в языке C# доступ в методе производного класса к унаследованным из базового класса полям?
Из производного класса можно получить доступ к открытым ( public ), защищенным ( protected ), внутренним ( internal ) и защищенным внутренним ( protected internal ) членам базового класса. Хотя производный класс и наследует закрытые члены базового класса, он не может получить доступ к этим членам. Однако все эти закрытые члены все же присутствуют в производном классе и могут выполнять ту же работу, что и в самом базовом классе.
22. Какой тип объекта ошибки может передаваться оператору throw в языке C#?
Любые типы исключения, наследуемые от класса System.Exception
23. Что произойдёт, если не будет найден обработчик для сгенерированного программой исключения?
Произойдет подъем по стеку вызовов, и поиск обработчиков в методе, вызвавшем метод, который выкинул исключение. Если и в нём нет, тогда поиск будет подниматься всё выше и выше, пока не дойдёт до процедуры Main(). Если и там нет, то активируется стандантный обработчик, прерывающий работу программы с соответствующим сообщением.
Если проще – вызовется системный обработчик, программа выдаст окно с ошибкой.
24. Можно ли использовать указатели в программах на языке C#?
Только в блоках небезопасного кода.
25. В каком случае через ссылку на объект класса С# доступен для вызова метод ToString?
Скорее всего если ссылка инициализирована ( не NULL ).
26. Если формальный аргумент метода объявлен как экземпляр класса X, то какого типа в языке C# может быть фактический аргумент при вызове метода?
По идее – X, или наследуемый от него.
27. Можно ли передать доступ к некоторой структуре в вызываемый метод по ссылке?
Да, если использовать ключевое слово ref.
28. Какие данные не относятся к пользовательским типам языка C# (то есть, к типам, определяемым программистами)?
Относятся:
byte
sbyte
int
uint
short
ushort
long
ulong
float
double
char
bool
object
string
decimal
29. Если присваивание переменных x = y допустимо, то допустимо ли обратное присваивание в языке C#?
Если присваиваем значимый тип - всегда, иначе только если y и x - объекты одного класса, либо в классе x указано неявное приведение к y.
30. Для каких типов данных в языке C# базовым является тип object?
Для всех.
31. Какой тип не относится к ссылочным типам языка C#?
Относятся:
class
interface
delegate
dynamic
object
string
Скорее всего правильным ответом будет struct – структура или int, float, double...
32. При каком условии возможно без явных преобразований присваивание y = x в языке C#?
Если одинаковые типы или класс y - базовый для x( x – потомок y ) или в классе x указано неявное приведение к y.
33. Если метод вызывается в языке C# через ссылочную переменную, каким он может быть?
Любым, кроме статического
34. На каком уровне можно объявлять именованный метод в языке C#?
На уровне класса
35. Что задаёт ключевое слово ref в языке C#?
Передача параметров по ссылке
36. Где могут использоваться статические поля классов в языке C#?
Везде, где есть достпуп к классу со статическими полями, они используются вместо глобальных переменных
37. Какие права доступа задают модификаторы доступа internal и protected в языке C#?
internal - переменная доступна из модуля текущего проекта (сборки), классы могут быть не родственны
protected - доступ из текущего класса и его потомков
38. Что делает оператор % в языке C#?
Операция "%" определена над всеми арифметическими типами и возвращает остаток от деления нацело.
39. Укажите корректный способ объявления переменной массива в C#.
int[] array3;
array3 = new int[] { 1, 3, 5, 7, 9 };
40. Какая операция в языке C# доступна только в блоках небезопасного кода?
Арифметические операции с указателями (* и &).
41. Что будет выведено при выполнении следующего кода C#?
int a = 511; byte b = 7; b = a + 5; Console.WriteLine(b);
Он не скомпилируется - a и b разной размерности,
42. Какое ограничение накладывается в языке C# на метод - обработчик события?
Должно быть 2 аргумента - object (ссылка на вызвавший объект) и тип (либо производный от него) EventArgs, возвращает void, например void OnClick(object ob, EventArgs e)
43. Какой код в C# корректно создаст экземпляр класса X и ссылающуюся на него переменную x?
X x = new X(…);
44. Могут ли в языке C# использоваться указатели?
Только в небезопасном unsafe коде.
45. Какое ключевое слово в языке C# не относится к модификаторам переменных?
Относятся:
static
,
readonly
const
46. Что задаёт ключевое слово out в языке C#?
Аргумент, передаваемый через out, допускается не инициализировать; out рассчитан на получение результатов.
47. Какое ключевое слово в С# не относится к механизму обработки исключительных ситуаций?
Относятся:
try
catch
throw
finally
48. Каким образом можно вызвать статический public метод класса X в языке C#?
X.MyStaticPublicMethod();
49. Что задаёт ключевое слово default в языке C#?
Ключевое слово default может использоваться в инструкции switch или в универсальном коде:
Инструкция switch: определяет метку по умолчанию.
Универсальный код: определяет значение параметра типа по умолчанию. Это будет значение NULL для ссылочных типов и ноль для типов значения.
50. Какое ключевое слово в C# не относится к модификаторам прав доступа?
Относятся:
public
private
internal
protected
51. Как присвоить значение переменной b типа bool переменной n типа int?
В C# не существует преобразования между типом bool и другими типами. Но можно воспользоваться тем, что значение false эквивалентно нулю, а значение true — ненулевым значениям.
52. Где используется в языке C# ключевое слово value?
Value - значение, передаваемое как аргумент в свойствах внутри акцессора set
53. В каком контексте в C# используется ключевое слово continue?
Переход к следующей итерации цикла (в цикле)
54. Экземпляры каких типов могут быть элементами стандартных массивов языка C#?
Не могут быть экземпляры статических типов, делегатов (это не тип) и пр. ключевых слов
55. Что задаёт оператор catch в языке C#?
Обработчик исключения.
Инструкция try-catch состоит из блока try, за которым следует одно или несколько предложений catch, в которых определяются обработчики для различных исключений. При возникновении исключения среда CLR ищет оператор catch, который обрабатывает это исключение. Если выполняющийся в данный момент метод не содержит такого блока catch, то среда CLR рассматривает метод, который вызвал текущий метод, и т. д. по стеку вызовов. Если блок catch не найден, то среда CLR отображает пользователю сообщение о необработанном исключении и останавливает выполнение программы.