Главная / Программирование / Основы программирования на C#

Основы программирования на C# - ответы на тесты Интуит

Правильные ответы выделены зелёным цветом.
Все ответы: В учебном курсе представлено полное описание языка C#. Подробно рассматриваются классы, структуры, интерфейсы, делегаты. Особое внимание уделяется наследованию и универсальным классам.
На каких языках программирования можно работать в Visual Studio .Net?
(1) только на языке C#
(2) на четырех языках - Visual C++, C#, Visual Basic, J#
(3) число языков не ограничено
Какие программы корректны по отношению к своим спецификациям?
(1) {n=5}int fact(int n){int f=0; for (int i=0; i< n; i++) f*=i; return(f);}{result = n!}
(2) {n=5}int fact(int n){return(120);}{result = n!}
(3) {false}int fact(int n){int f=0; for (int i=0; i<n; i++) f*=i; return(f);}{result = n!}
(4) {(n целое) & (n>0)}int fact(int n){int f=1; for (int i=2; i<n+1; i++) f*=i; return(f);}{result = n!}
Пусть x – объект класса int[]. В вызове x.M роль M может играть:
(1) свойство Length
(2) метод GetLength
(3) метод CopyTo
Отметьте правильные объявления:
(1) char a = new char("a");
(2) char b = "b";
(3) char[] c = new char[5];
(4) char[] d = {'a','b','c','d'};
Объект класса string можно создать:
(1) конструктором по умолчанию
(2) без явного вызова конструктора
(3) конструктором, которому передается объект string
(4) конструктором, которому передается объект char[]
Отметьте правильные высказывания:
(1) регулярные выражения задают специальный класс языков
(2) для работы с регулярными выражениями в .Net Framework включено пространство имен RegularExpressions
(3) объекты класса Match создаются конструктором с параметрами
(4) объект Match создается при вызове метода Match
(5) регулярное выражение задает шаблон поиска подстроки в строке текста
Класс имеет:
(1) только один конструктор
(2) только конструктор по умолчанию
(3) не более одного статического конструктора
(4) не более одного закрытого конструктора
(5) несколько конструкторов с одинаковой сигнатурой
Какие утверждения справедливы для развернутых и ссылочных типов
(1) структуры относятся к развернутым типам
(2) классы относятся к ссылочным типам
(3) в языке C# есть модификатор expand, позволяющий отнести класс к развернутому типу
(4) объектам развернутого типа память отводится в куче
Для классов клиентов и поставщиков справедливы утверждения:
(1) у класса поставщика может быть много клиентов
(2) у класса клиента может быть много поставщиков
(3) поставщик может быть собственным поставщиком
(4) клиент может быть собственным клиентом
(5) отношение «клиент-поставщик» – задает отношение «имеет»
(6) отношение «клиент-поставщик» – задает отношение «является»
Ключевое слово interface в языке C# задает описание:
(1) пользовательского интерфейса класса
(2) открытой части класса
(3) частного случая класса
(4) абстрактного класса
Отметьте корректные объявления делегата – функционального класса:
(1) public class D = delegate void(string s)
(2) Delegate D1 = new Delegate( void(string s)
(3) public delegate void D2 (string s)
(4) delegate int T(int x1, ref int x2)
(5) public delegate T1(int x)
Обработчик события
(1) всегда принадлежит классу, вызывающему событие
(2) никогда не принадлежит классу, вызывающему событие
(3) может принадлежать классу, вызывающему событие
(4) принадлежит только одному классу, слушающему событие
(5) может принадлежать многим классам, слушающим события
Универсальный класс – это:
(1) класс, способный решать любые задачи пользователя
(2) класс, методы которого могут иметь родовые параметры
(3) класс с родовыми параметрами
(4) класс, функциональные возможности которого превосходят возможности его потомков
Классы Debug и Trace:
(1) имеют разный набор свойств и методов, используемых для класса Debug в интересах отладки, для класса Trace – в интересах трассировки
(2) в Debug конфигурации проекта игнорируются методы и свойства класса Trace
(3) в Release конфигурации проекта игнорируются методы и свойства класса Debug
(4) классы Trace и Debug имеют одинаковый набор свойств и методов
Объект класса Graphics можно получить
(1) конструктором класса Graphics
(2) статическим методом класса Graphics
(3) используя статическое свойство класса Form
(4) методом CreateGraphicsкласса Control
(5) используя аргумент, передаваемый обработчику некоторых событий
К значимым типам языка C# относятся:
(1) все арифметические типы
(2) массивы
(3) строки
(4) все арифметические типы, кроме типа double
Преобразования между значимыми и ссылочными типами
(1) всегда допустимы
(2) никогда не допустимы
(3) должны быть явными
(4) используют операции boxing и unboxing
(5) могут быть неявными
Отметьте правильные объявления переменной:
(1) int x;
(2) int x(77);
(3) int x =77;
(4) int x = new int(77);
(5) int x = new int();
Верно, что приоритет операций выше:
(1) умножения чем сложения
(2) отношения чем умножения
(3) эквивалентности чем конъюнкции
(4) унарных чем бинарных
Операциями присваивания языка C# являются:
(1) +=
(2) ++
(3) &=
(4) &&=
(5) >>=
Чему будет равно x в результате выполнения следующего фрагмента: int x=5; for(int i =1; i<5; i++); x+=5;
(1) 5
(2) 10
(3) 25
(4) 30
(5) 20
Метод можно описать на уровне:
(1) класса
(2) пространства имен
(3) проекта
(4) решения
Отметьте истинные высказывания:
(1) для языков программирования, входящих в Visual Studio .Net, каждый компилятор использует собственную библиотеку классов FCL
(2) для языков программирования, входящих в Visual Studio .Net, все компиляторы используют одну и ту же библиотеку классов FCL
(3) библиотека классов FCL является частью Visual Studio .Net
(4) библиотека классов FCL является частью каркаса Framework .Net, отделенного от Visual Studio
Отметьте истинное высказывание:
(1) в рекурсивной процедуре должна присутствовать нерекурсивная ветвь
(2) многопроцессорный современный компьютер решит задачу "Ханойские башни" в течение суток
(3) квадратичные методы сортировки, требующие O(n2) операций всегда работают медленнее, чем сортировки с порядком операций O(n*log(n))
(4) каждый цикл имеет только один инвариант
Отметьте истинные высказывания:
(1) массив массивов является более общей структурой данных, чем многомерный массив
(2) в языке C# переменные m1 и m2, являющиеся массивами с разным числом элементов всегда принадлежат разным классам
(3) в языке C# переменные m1 и m2, являющиеся массивами с разными типами элементов всегда принадлежат разным классам
(4) процедура – функция в C# может возвращать массив в качестве результата
Отметьте истинные высказывания:
(1) все классы-массивы являются прямыми потомками только одного родительского класса
(2) все классы-массивы наследуют свойства и методы своих предков - двух классов и четырех интерфейсов
(3) метод Sort позволяет сортировать любые массивы
(4) если S и T принадлежат разным классам – массивам, то присваивание S=T недопустимо
Отметьте истинные высказывания:
(1) в языке C#, также как и в С++, строка завершается нулевым кодом
(2) в языке C# можно объявить строку типа char*
(3) у класса char нет конструкторов с параметрами
(4) существуют неявные взаимно-обратные преобразования между типами char и string
(5) существует неявное преобразование символов char в целочисленный тип
Отметьте правильные высказывания:
(1) при присваивании строк s = s1 создается дополнительная ссылка на объект, связанный с s1
(2) присваивание s[i] = ch; где s класса string, а ch – переменная класса char, недопустимо
(3) константы “\\c\x58” и @”\cX” эквивалентны
Отметьте правильные высказывания
(1) у класса Regex есть метод Match
(2) образец@"\w+"распознает непустую последовательность букв и цифр
(3) образец @"\w+"распознает непустую последовательность букв и цифр, начинающуюся с буквы
(4) свойство Success метода Match в случае успеха распознавания возвращает найденную строку
(5) Знаки + и - в образце должны задаваться в виде \+ и \-
Отметьте истинные высказывания:
(1) каждый объект содержит набор из всех полей, определенных в классе
(2) создание объекта выполняется операцией new с вызовом конструктора класса
(3) для реализации стратегии доступа к закрытым полям класса используются методы-свойства
Отметьте истинные высказывания:
(1) сложение точки – структуры Point с размером – структурой Size дает новую точку
(2) у структуры нет конструкторов
(3) у структуры нет наследников
(4) сложение двух точек – структур Point создает линию – структуру Line
Отметьте истинное высказывание:
(1) класс называется абстрактным, если он не вводит собственных полей данных
(2) если метод класса А объявлен с модификатором virtual, то для него применяется статическое связывание
(3) у класса может быть несколько непосредственных родительских классов
(4) у класса может быть только один непосредственный потомок
(5) в проектах на C# контроль типов выполняется на этапе компиляции
Отметьте истинные высказывания
(1) слово «интерфейс» имеет разный смысл в зависимости от контекста
(2) множественное наследование интерфейсов дает те же возможности, что и множественное наследование классов
(3) при наследовании интерфейса ICloneable необходимо реализовать методMemberwiseClone
(4) при наследовании двух интерфейсов имена их методов должны быть различными
(5) несколько интерфейсов могут быть наследниками одного и того же интерфейса
Отметьте истинные высказывания:
(1) каждый объявленный функциональный класс (delegate) является наследником класса Delegate
(2) сигнатура метода, связываемого с экземпляром делегата, в точности должна совпадать с сигнатурой, определенной делегатом
(3) один из аргументов функции высшего порядка является экземпляром делегата
(4) для делегатов определена операция вычитания
(5) определение делегата в точности эквивалентно определению указателя на функцию
Отметьте истинные высказывания
(1) все события имеют одинаковую сигнатуру из двух аргументов с одними и теми же типами
(2) все события имеют сигнатуру из двух аргументов, но с отличающимися типами
(3) все события, не имеющие собственных аргументов, передаваемых обработчику, соответствуют стандартному встроенному делегату EventHandler
(4) для класса с большим числом событий целесообразно применять динамическое связывание
(5) для связывания событий с обработчиком можно применять только операцию +=
Отметьте истинные высказывания:
(1) наследник универсального класса всегда универсален
(2) для универсального класса не может указываться атрибут сериализации
(3) родовые параметры универсального класса могут задаваться как на уровне класса, так и на уровне методов
(4) класс без родовых параметров может быть наследником универсального интерфейса
(5) делегаты могут иметь родовые параметры
Отметьте истинные утверждения:
(1) в тексте охраняемого блока всегда должен присутствовать оператор throw, выбрасывающий исключение
(2) никакая программа не может быть корректной по отношению к произвольным спецификациям
(3) вывод, поступающий от методов класса Debug, может быть направлен только одному, заранее выбранному слушателю
(4) если блок finally сопровождает охраняемый блок, то он всегда будет выполняться
(5) правильно организованная отладка позволяет доказать корректность программы
Отметьте истинные высказывания:
(1) модальное окно нельзя покинуть, не закрыв его
(2) цвет может быть выбран из специального окна, открывающегося в процессе работы с объектом класса ColorDialog
(3) у класса Menu нет потомков
Отметьте истинные высказывания:
(1) существует неявное преобразование переменных арифметического типа в объекты
(2) существует неявное преобразование объектов в переменные арифметического типа
(3) возможно явное преобразование объектов в переменные арифметического типа
(4) переменная арифметического типа в определенном контексте воспринимается как объект
Отметьте истинные высказывания:
(1) существует неявное преобразование переменных арифметического типа в объекты
(2) существует неявное преобразование объектов в переменные арифметического типа
(3) существует явное преобразование объектов в переменные арифметического типа
(4) в зависимости от контекста переменная арифметического типа представляет собой объект
Отметьте истинные высказывания:
(1) глобальные переменные в C# могут быть объявлены только в пространстве имен
(2) поля класса играют роль глобальных переменных для методов класса
(3) имя локальной переменной не должно совпадать ни с именем аргумента метода, ни с именем поля класса
(4) в непересекающихся блоках процедуры допускаются одинаковые имена переменных
В результате объявления: int x=1,y=2,z=((x|y + ++x)>5)? x|y : ++x +2 ; переменные x,y,z получат значения
(1) x=1; y=2; z=4
(2) x=2; y=2; z=4
(3) x=3; y=2; z=5
(4) возникнет ошибка на этапе трансляции
(5) возникнет ошибка на этапе выполнения
(6) x=1; y=2; z=3
Отметьте истинные высказывания:
(1) все методы класса Math являются статическими
(2) для вызова методов класса Random нужно предварительно создать экземпляр этого класса
(3) класс Random позволяет получить только повторяющиеся серии случайных чисел
(4) все переменные, входящие в выражение присваивания, должны быть явно инициализированы
Отметьте истинное высказывание:
(1) присваивание является операцией языка C#
(2) в теле оператора foreach текущий элемент позволяет получать и изменять значения элементов, хранящихся в контейнере
(3) в операторе if число ключевых слов if должно совпадать с числом слов else
(4) case-выражение в операторе switch может задавать диапазон значений
Спецификации CLS задают:
(1) спецификации, предназначенные для разработчиков трансляторов
(2) спецификации модуля, предназначенного для использования в проектах на разных языках программирования
(3) спецификации, которые безусловно должны выполняться программистами, работающими в среде Visual Studio .Net
(4) спецификации для программистов, работающих на языке C#
Какая из процедур вызовет ошибку периода трансляции?
(1) public static void L1_V1_Q31(int[] A, int S) { S=0; for(int i =0; i<A.Length; i++) S+=A[i]; }
(2) public static void L1_V1_Q32(ref int[] A, ref int S) { S=0; for(int i =0; i<A.Length; i++) S+=A[i]; }
(3) public void L1_V1_Q33(val int[] A, val int S) { S=0; for(int i =0; i< A.Length; i++) S+=A[i]; return(S); }
(4) public static int L1_V1_Q34(object[] A) { int S=0; foreach(int i in A) S+=(int)i; return(S); }
Пусть процедура ItWorks имеет следующий заголовок: public void ItWorks(object[] A) .Какой массив может быть передан ей в качестве аргумента?
(1) int[] x
(2) string[] s
(3) Person[] p; (Person – класс, определенный пользователем
(4) Anketa[] a; (Anketa – структура, определенная пользователем
Какие высказывания справедливы для класса StringBuilder?
(1) существует конструктор класса, которому можно передать аргумент класса string
(2) переменные этого класса можно создавать без явного вызова конструктора
(3) набор операций класса тот же, что и у класса string
(4) классы string и StringBuilder относятся к неизменяемым классам
(5) методы Remove, Insert, Replace возвращают новую строку, представляющую результат операции
Какие слова принадлежат языку, заданному регулярным выражением: @“[A-Za-z]\w+=\w+[\+|\-|\*]\w+”
(1) x=u+v+w
(2) xyz=2x*y5
(3) a = b-c
(4) U=v+w
(5) Agent007=James-Bond
Метод-Свойство класса
(1) может иметь атрибут доступа private
(2) может включать методы get и set
(3) включает только один из методов get или set
(4) позволяет реализовать различные стратегии доступа к закрытым полям класса
(5) обязательно должно быть указано для каждого закрытого поля класса
При создании объектов перечислений
(1) нельзя вызывать конструктор
(2) требуется их явная инициализация
(3) объекты получают значение, даже если инициализация не задана
В родительском классе описан метод public virtual void M(int x) {}. Какое объявление в классе потомке вызовет ошибку на этапе компиляции, не допускающую выполнения проекта?
(1) override void M(int x){}
(2) public override void M(int item){}
(3) public new void M(int x){}
Интерфейс ISerializable
(1) автоматически реализует глубокую сериализацию
(2) позволяет управлять процессом сериализации
(3) имеет два метода, которые должен реализовать класс, наследующий интерфейс
(4) конфликтует с атрибутом класса Serializable
Решение – это:
(1) специальный тип проекта
(2) специальный компонент проекта
(3) модуль, содержащий проекты и другие ресурсы
(4) стартовый проект на языке C#
Функция обратного вызова – это:
(1) функция, прямо или косвенно вызывающая саму себя
(2) функция f, вызывающая функцию g, переданную ей в качестве одного из аргументов, c сигнатурой, удовлетворяющей контракту, заданному функцией f
(3) пара функций, взаимно вызывающих друг друга
(4) функция высшего порядка
Объявление события в классе может представлять собой:
(1) объявление метода класса
(2) объявление поля класса
(3) объявление метода-свойства класса, включающего методы get и set
(4) объявление метода-свойства класса, включающего методы add и remove
Какие фрагменты кода корректны в предположении, что используемые родительские классы и интерфейсы определены корректно?
(1) class A<B, C> { B b; C c;}
(2) class A1<A1, B> { A1 a1; B b;}
(3) interface IC<T> { } class A2<B> : IC<T> { }
(4) class D<T1, T2>{ } class A3<B> where B : D<int, int> { }
Оператор throw
(1) передает управление catch-блоку, следующему за try-блоком
(2) может вызываться без аргументов
(3) имеет два аргумента
(4) вызывает прерывание процесса вычислений охраняемого блока
(5) создает исключение – объект класса, производного от Exception
Классы Control, Form и ListBox связаны следующими отношениями наследования
(1) класс Control является наследником класса Form
(2) класс Form является наследником класса Control
(3) класс ListBox является наследником класса Form
(4) класс ListBox является наследником класса Control
(5) классы Control и Form не связаны отношением наследования
Цель и источник согласованы по присваиванию, если
(1) базовый тип цели и тип источника совпадают
(2) тип источника является потомком базового типа цели
(3) базовый тип цели является потомком типа источника
(4) базовый тип цели – object
В проверяемом (checked) блоке проверяется корректность
(1) всех преобразований типов
(2) преобразований внутри арифметического типа
(3) только преобразований, выполняемых методом Parse
(4) только преобразований, выполняемых методами класса Convert
Отметьте правильные объявления константы
(1) const double size = 55;
(2) const int size = 55;
(3) const byte size = 55;
(4) const double size = 5.5;
(5) const size = 55;
Отметьте истинные высказывания:
(1) операция typeof может выполняться только в небезопасных блоках
(2) метод Parse определен для всех арифметических типов
(3) метод Parse позволяет преобразовать строковый тип в арифметический
(4) метод GetType возвращает результат того же типа, что и операция typeof
В каком фрагменте возникнет ошибка:
(1) sbyte sb1=1, sb2= 2, sb3 = sb1+ sb2
(2) ulong ul1 =1, ul2= 2, ul3 = ul1 + ul2
(3) int x; if (5 >4) x= 4
(4) int x=5, y; if(x>4) y=x
В каких фрагментах возникнет ошибка компиляции:
(1) int x=5, y =2*2+1, z; if (y=x) z=2*x; else z=x+y;
(2) int a=2, b=3,c=5, x;if(a<b)if(c>a)if(c>a+b) x=a+b+c;
(3) int x, y, z; if (5 >4) x=5; y=x; z=y;
В каких вызовах возникнет ошибка, если задано описание int x=1; int z=0; int p(int x, out int y){…}
(1) x=p(out 77,z)
(2) x=p(77+z, out z)
(3) p(77+z, out z)
(4) x=p(77, out 77+z)
Проект на C#:
(1) может быть написан и скомпилирован только в среде Visual Studio .Net
(2) может быть создан в любом текстовом редакторе и скомпилирован без использования Visual Studio .Net
(3) может быть написан и скомпилирован в любой среде разработки, включающей компилятор языка C#
Размерность массива определяется:
(1) числом его элементов
(2) числом его индексов
(3) по максимальному значению элементов
Три массива: <int[] ar1 = new int[5]; double[] ar2 ={5.5, 6.6, 7.7}; int[,] ar3 = new Int32[3,4]; > принадлежат
(1) одному и тому же классу
(2) разным классам, но у которых есть общий родительский класс Array
(3) разным классам, общность которых определяется только родительским классом object
Для типа char существует
(1) неявное преобразование в тип byte
(2) неявное преобразование в тип int
(3) неявное преобразование в тип string
(4) метод ToString для преобразования в тип string
Изменить значение строки класса string
(1) можно только используя статические методы класса
(2) можно только используя динамические методы класса
(3) вообще невозможно
Для выделения из текста подстроки, в которой x и y разделены знаком операции + или -, следует использовать шаблон:
(1) @"(x+y)|(x-y)"
(2) @"x[\+|\-]y"
(3) @"x[+|-]y"
В Visual Studio 2005 (Framework 2.0) для класса разрешается определять:
(1) только унарные операции
(2) только бинарные операции
(3) унарные и бинарные операции
(4) операции произвольной арности
Перечисление – это
(1) абстрактный класс
(2) класс без собственных методов
(3) класс без собственных полей
Если метод родительского класса объявлен с атрибутом virtual, то потомок класса:
(1) обязан переопределить реализацию метода
(2) обязан переопределить сигнатуру метода
(3) может наследовать реализацию класса
Тег <summary>, заданный для метода М:
(1) используется в подсказке при вызове метода M
(2) является комментарием и не используется в других целях
(3) представляет часть документации проекта при построении XML-отчета
Экземпляр делегата следует рассматривать как:
(1) единственную нетипизированную ссылку на метод
(2) единственную ссылку на метод с жестко фиксированной сигнатурой, заданной делегатом
(3) совокупность ссылок - на метод с жестко фиксированной сигнатурой, заданной делегатом, на объект, вызвавший метод, на список присоединенных делегатов
Сообщение о событии получает:
(1) только один объект одного класса, имеющего обработчик события, присоединенный к объекту, задающему событие
(2) несколько объектов одного класса, имеющего обработчик события, присоединенный к объекту, задающему событие
(3) все объекты одного класса, имеющего обработчик события, присоединенный к объекту, задающему событие
(4) все объекты всех классов, имеющих обработчики события, присоединенные к событию
Для ограничения универсальности
(1) задаются специальные методы класса
(2) задаются специальные поля класса
(3) родовые параметры могут быть объявлены наследниками некоторого класса и или интерфейсов
Отладка позволяет
(1) доказать, что в системе нет ошибок
(2) доказать, что в системе есть ошибки
(3) устранить все ошибки, существующие в системе
Меню в формах:
(1) создать нельзя
(2) можно создать только вручную
(3) можно создать только программно
(4) можно создать вручную и программно
Операции упаковки и распаковки (boxing, unboxing)
(1) преобразуют объекты значимого типа в ссылочный и обратно
(2) обе операции выполняются автоматически, не требуя явного задания преобразования типов
(3) задают преобразование строк из кодировки Unicode в кодировку ASCII и обратно
Необходимость в преобразованиях может возникать:
(1) в выражениях
(2) при присваивании
(3) при замене формальных аргументов фактическими
При объявлении переменной
(1) обязательно указание модификатора доступа
(2) обязательно указание типа
(3) обязательна ее инициализация
(4) обязательно указание атрибутов
Под перегруженной операцией понимается операция:
(1) для которой существует несколько реализаций
(2) применимая к операндам разного типа
(3) сложность которой превышает сложность операции сложения
В языке C# присваивание:
(1) это оператор языка, не применимый в выражениях
(2) это операция, применимая в выражениях
(3) синтаксически является операцией, чаще всего используемой в роли оператора
Метод является:
(1) функцией, если тип возвращаемого значения отличен от void
(2) функцией, если указан модификатор метода function
(3) процедурой, если указан void как тип возвращаемого значения
(4) процедурой, если указан модификатор метода procedure
Пространство имен – это:
(1) множество имен, включающих имена переменных проекта
(2) множество имен, включающих имена переменных класса
(3) модуль, содержащий встроенные пространства имен и классы, имена которых уникальны в пространстве имен
Правда ли, что:
(1) корректность программы можно определить, только по отношению к ее спецификациям
(2) рекурсивной называется программа с циклами
(3) предусловие метода накладывает ограничение на входные данные
Отметьте верные утверждения:
(1) массивы C# являются динамическими
(2) запись T[] следует понимать как одномерный массив с элементами типа T
(3) значения элементов массива можно не инициализировать при первом использовании
Правда ли, что:
(1) над массивами определены операции поиска элементов и сортировки
(2) класс Array является абстрактным классом
(3) массив можно рассматривать как коллекцию и использовать для просмотра цикл foreach
Правда ли, что:
(1) статический метод IsLetterOrDigit класса char возвращает true, если символ является буквой или цифрой
(2) большинство статических методов класса char перегружены
(3) все методы класса char являются статическими
Правда ли, что:
(1) метод Join позволяет воссоздать строку в исходном виде, расщепленную методом Split
(2) метод Format может вызываться с разным числом параметров
(3) существуют константы класса StringBuilder
Для выделения из текста подстроки, состоящей из трех символов, в которой первый и третий символы являются буквами т или к, а второй символ произвольной буквой кириллицы в нижнем регистре, следует использовать шаблон:
(1) @"т|к.т|k"
(2) @"[т|к][а-я][т|к]"
(3) @"[т|к]?[т|к]"
Правда ли, что:
(1) статические поля представляют общий информационный пул для всех объектов классов, позволяя извлекать и создавать общую информацию
(2) конструктор не может быть объявлен с атрибутом private
(3) для класса C# нельзя задать деструктор
Правда ли, что:
(1) константы разных перечислений могут совпадать
(2) в качестве базового класса для перечисления можно задать класс char
(3) структура может быть родительским классом для другой структуры
Правда ли, что:
(1) при множественном наследовании классов проблем больше, чем при множественном наследовании интерфейсов
(2) ситуация дублирующего наследования для интерфейсов не возникает
(3) для реализации интерфейса IComparable наследнику достаточно реализовать всего один метод CompareTo(object obj)
Выберите верное утверждение:
(1) стандартные атрибуты используются CLR и влияют на то, как она будет выполнять проект
(2) для каждого проекта указывается та процедура, с которой начинается выполнение проекта
(3) в C# допускаются только однострочные комментарии, начинающиеся парой символов //
Правда ли, что:
(1) класс Delegate не допускает создания потомков в программах на C#
(2) пара функций f и g называются функциями обратного вызова, если они взаимно вызывают друг друга
(3) наследование является альтернативой обратному вызову
Правда ли, что:
(1) делегат, задающий тип события, может иметь произвольную сигнатуру
(2) класс, обрабатывающий события, может отсоединить обработчики событий других классов, чтобы они не мешали его работе
(3) обработчику события передаются входные аргументы, характеризующие событие, а он может передать объекту, создавшему событие, выходные аргументы
Правда ли, что:
(1) универсальный класс, описывающий стек, не конкретизирует тип элементов, хранимых в стеке
(2) при ограничении универсальности становятся недоступными операции над объектами, разрешенные универсальным классом
(3) вместо того, чтобы включать тип Т в качестве родового параметра универсального класса, достаточно использовать тип object всюду, где используется тип Т. Эффект будет тот же
Правда ли, что:
(1) спецификации необходимы только на этапе проектирования системы
(2) константы компиляции задаются в начальной точке проекта – процедуре Main
(3) методы класса Trace включают два атрибута Conditional с константами DEBUG и TRACE и действуют в конфигурациях Debug и Release
Правда ли, что:
(1) Обычно меню в форме создается вручную в режиме проектирования
(2) команды, задаваемые кнопками панели, не могут пересекаться с командами меню
(3) линию можно нарисовать с помощью кисти
Укажите истинные высказывания:
(1) операции упаковки и распаковки могут выполняться при замене формальных аргументов метода на фактические аргументы
(2) целью называется левая часть оператора присваивания, а также формальный аргумент при передаче фактического аргумента в процедуру или функцию в момент вызова
(3) присваивание может быть ссылочным или значимым в зависимости от типа цели
Правда ли, что:
(1) неявные преобразования выполняются автоматически
(2) от типов фактических аргументов зависит, какой из перегруженных методов будет вызван
(3) явные преобразования всегда безопасны
Отметьте верные утверждения:
(1) время жизни переменных зависит от контекста объявления
(2) значения статических полей не изменяются в ходе вычислений
(3) локальными называются переменные, объявленные внутри метода
Правда ли, что:
(1) операция сложения не определена для операндов типа short
(2) вычисление выражения ведется слева направо, начиная с самой левой операции
(3) выражение C# может обладать побочным эффектом
Верно ли, что:
(1) код на C# <byte b = 1; b+=1;> эквивалентен коду <byte b = 1; b = b+1;>
(2) класс Random имеет несколько конструкторов
(3) операция присваивания выполняется справа налево
Отметьте верное утверждение:
(1) фрагмент кода if (x = y) всегда приводит к появлению ошибки еще на этапе трансляции
(2) удаление пустого оператора никогда не меняет семантику программы
(3) доказано, что без оператора перехода goto можно обойтись
Правда ли, что:
(1) функция всегда вычисляет значение, возвращаемое в качестве результата
(2) методы родительского класса с модификатором private недоступны для вызова в методе, определяемом в классе потомка
(3) число фактических аргументов при вызове метода должно совпадать с числом формальных аргументов этого метода
Каркас Framework .Net это:
(1) надстройка над операционной системой, предназначенная для выполнения управляемого кода, например сборок, построенных компиляторами Visual Studio .Net
(2) транслятор JIT, выполняющий трансляцию модулей, написанных на языке MSIL
(3) библиотека классов, используемая компилятором
(4) набор классов, используемых при построении самой Visual Studio .Net
Для программы, вычисляющей сумму первых n элементов массива: S=A[0]; k=0; while(k !=(n-1)) { k++; S+=A[k];} инвариантом цикла являются
(1) files
(2) files
(3) files
(4) k >= 0
(5) S= A[k]
Отметьте правильные объявления:
(1) double[] v1 = {1,2,3}, v2={3,4,5}, v3={6,7,8};
(2) double[,] w1 = new double[3,3];
(3) double[][] z1 = new double[3][];
(4) object[][] z2 = new object[3][];
Пусть массив x принадлежит классу double[][]. В вызове x.M роль M может играть:
(1) метод Sort
(2) свойство Length
(3) метод GetLength
(4) метод Copy
(5) метод CopyTo
Даны объявления: char ch = 'A'; char[] ar ={'B', 'C', 'D'}, ar1= new char[3]; Отметьте синтаксически корректные операторы:
(1) ar1 = char.Parse("BCD")
(2) ar.CopyTo(ar1,0)
(3) ch = char.Copy("B")
(4) ar1= Array.Copy(ar)
Объект класса string можно создать:
(1) конструктором, которому передается объект char*
(2) конструктором, которому передается объект char и целочисленное выражение
(3) конструктором, которому передается строковая константа
(4) конструктором, которому передается часть массива символов
Словом будем называть непустую последовательность букв кириллицы, обрамленную белыми пробелами. Какой образец распознает слова, соответствующие этому определению?
(1) @"\s\W+\s"
(2) @"\s*[а-я]+\s"
(3) @"[А-Яа-я]+"
(4) @"\s[А-Яа-я]+\s"
(5) @"\s[А-Яа-я]*\s"
Объекты класса Rational могут быть созданы в клиентском классе
(1) конструктором по умолчанию
(2) конструктором с аргументами
(3) закрытым конструктором
(4) статическим конструктором
Особенностями структур являются
(1) структуры не могут наследовать интерфейсы
(2) структуры могут наследовать интерфейсы
(3) поля структуры не могут быть инициализированы в момент объявления
(4) для структур нельзя создать собственный конструктор без аргументов
Для классов родителей и потомков справедливо следующее утверждение:
(1) у родительского класса может быть несколько непосредственных потомков
(2) у класса потомка может быть несколько непосредственных родительских классов
(3) класс родитель может быть сам себе родитель
(4) класс потомок может быть собственным потомком
Пусть задано описание интерфейсов: interface IN{string M(string s);} interface IP{string M(string s); string M1(int s);} interface IQ{int M(int s);}. Какие из объявлений классов содержат ошибки
(1) public class C1:IP{string IP.M(string s){return (s+s);} string IP.M1(int x){return x.ToString();}public int M (int s) { return s++;}}
(2) public class C1:IP,IN{string IP.M(string s){return (s+s);} string IP.M1(int x){return x.ToString();}}
(3) public class C1:IP,IN{public string M(string s){return (s+s);} public string M1(int x){return x.ToString();}}
(4) public class C1:IP,IN,IQ{public string M(string s){return (s+s);} public string M1(int x){return x.ToString();}}
Проект – это:
(1) модуль, содержащий классы и являющийся частью решения
(2) спецификация, отвечающая требованиям CLS
(3) компонент пространства имен
(4) набор классов, используемых при построении самой Visual Studio .Net
Дано объявление делегата: public delegate double D (double x); Какие объявления его экземпляров будут корректны в определенном контексте?
(1) D d1 = new D(Math.Sin)
(2) D d3 = new D(x.f1)
(3) D d4 = new D(Person.f2)
(4) D d5 = new D(f3)
Объекты одного класса
(1) имеют одинаковый набор событий
(2) в процессе вычислений зажигают одинаковый набор событий
(3) в процессе вычислений зажигают набор событий, характерный для объекта
(4) в разных сеансах работы зажигают одинаковый набор событий
(5) в разных сеансах работы зажигают разные события
Для ограниченной универсальности справедливы следующие утверждения:
(1) ограничение универсальности накладывает ограничения на все родовые параметры
(2) неограниченную универсальность ограничивает статический контроль типов
(3) введение ограничений универсальности на родовой параметр T сужает возможности работы с объектами типа T
(4) в одном предложении where можно задать ограничения на несколько родовых параметров
Блоки catch
(1) всегда должны сопровождать охраняемый блок
(2) получают управление при возникновении исключительной ситуации и выполняются в порядке их следования
(3) только один из блоков, следующих за try-блоком, захватывает управление вычислением
(4) выбрасывают исключение, если хотят передать управление вызывающему методу
(5) после корректировки причины, вызвавшей исключение, возвращают управление в точку возникновения исключения
Объект, задающий кисть, можно получить:
(1) конструктором класса Brush
(2) методом CreateBrush класса Control
(3) конструктором класса PathGradientBrush
(4) конструктором класса SolidBrush
(5) используя аргумент, переданный обработчику некоторых событий
К ссылочным типам языка C# относятся:
(1) тип double
(2) массивы
(3) строки
(4) все арифметические типы, кроме типа double
(5) структуры
Отметьте истинные высказывания:
(1) в момент объявления все переменные должны быть инициализированы
(2) при объявлении переменных их не следует инициализировать, поскольку используется инициализация по умолчанию
(3) объявление переменных допускает отложенную инициализацию
(4) инициализирующее выражение должно быть константным выражением
(5) при объявлении арифметических переменных в объектном стиле не допускается задавать в конструкторе инициализирующее выражение
Верно, что приоритет операций выше:
(1) условных И, ИЛИ чем логических И, ИЛИ
(2) отношения чем логических
(3) арифметических чем отношения
(4) И чем ИЛИ
В классе Random определен:
(1) перегруженный конструктор Random
(2) перегруженный метод Rnd
(3) перегруженный метод Next
(4) метод Bytes
(5) метод NextInt
Чему будет равно x в результате выполнения следующего фрагмента int a=2, b=3,c=5, x=0; if(a>b)if(c>a)if(c>a+b) x=a+b+c; else x=7;else x=12;
(1) 0
(2) 7
(3) 10
(4) 12
Чем отличаются процедуры от функций:
(1) оператор return можно задавать только в функциях
(2) функция не может возвращать значение void
(3) функцию нельзя вызывать как оператор
(4) процедуру нельзя вызывать в выражениях
Отметьте истинные высказывания:
(1) Для Visual Studio .Net разработано много компиляторов для разных языков программирования и каждый программист может добавить новый компилятор в состав используемой им студии
(2) компилятор C# транслирует исходный текст в код на языке IL
(3) CLS-совместимый модуль может использоваться на любом языке программирования на платформе .NET
Отметьте истинное высказывание:
(1) незавершающийся метод тотально корректен
(2) рекурсивным называется метод, в теле которого содержится вызов другого метода
(3) цикл имеет сколь угодно много инвариантов
Отметьте истинное высказывание:
(1) массив массивов позволяет задать многомерный массив
(2) в языке C# переменные m1 и m2, являющиеся массивами, всегда принадлежат одному классу
(3) в языке C# для массивов не допускается отложенная инициализация
Отметьте истинные высказывания:
(1) все классы-массивы являются прямыми потомками класса Array
(2) в цикле For Each допустимо только чтение элементов массива
(3) между классами-массивами и классом object[] существуют взаимные неявные преобразования
(4) все статические методы класса Array определены только над одномерными массивами
Отметьте истинные высказывания:
(1) в массиве char[] можно заменять символы
(2) в массив char[] можно вставлять новые символы
(3) неинициализированные символы массива char[] имеют нулевой код
(4) существует явное преобразование переменных целочисленного типа в символы char
Отметьте правильное высказывание:
(1) эквивалентность строк (s ==s1) означает совпадение ссылок s и s1
(2) операция (s+s1) определена только над строками, содержащими числа
(3) получить i-й символ строки, используя операцию взятия индекса s[i], недопустимо
(4) аргументы в методе Format позволяют задать ссылку и способ форматирования объектов, вставляемых в строку
(5) у класса string нет статических методов
Какие из трех образцов: @"\s*[а-я]+\s", @"[А-Яа-я]+", @"\s[А-Яа-я]+\s" включат слово "папа" в результат найденного соответствия при поиске в строке "папа мама и я":
(1) все три образца
(2) ни один из образцов
(3) 2-й и 3-й
(4) 1-й и 2-й
Отметьте истинные высказывания:
(1) любые методы класса могут вызывать статические методы
(2) конструкторы класса вызываются автоматически
(3) у класса может быть только индексатор с именем this, возможно перегруженный
(4) класс не может иметь закрытых методов
Отметьте истинные высказывания
(1) объект развернутого типа не разделяет отведенную ему память ни с каким другим объектом
(2) все значимые типы языка C# реализованы структурами
(3) присваивание структур является ссылочным присваиванием
Отметьте истинные высказывания:
(1) класс с модификатором sealed не может иметь потомков
(2) класс с модификатором abstract не может иметь потомков с таким же модификатором
(3) если у метода класса не задан специальный модификатор, то для него по умолчанию применяется динамическое связывание
(4) класс потомок не наследует конструкторы своего родителя
Отметьте истинные высказывания
(1) для того чтобы объекты собственного класса сравнивать на «больше» и «меньше», необходимо сделать класс наследником интерфейса IComparable
(2) для того чтобы объекты собственного класса можно было клонировать, необходимо сделать класс наследником интерфейса ICloneable
(3) для того чтобы объекты собственного класса можно было сериализовать, необходимо сделать класс наследником интерфейса ISerializable
(4) методы разных интерфейсов с одинаковой сигнатурой можно «склеивать» в классе наследнике, назначая им одну реализацию
(5) реализация метода Clone позволяет организовать глубокое клонирование
Отметьте истинные высказывания:
(1) каждый экземпляр делегата обладает методом GetInvocationList
(2) над делегатами определена операция умножения *
(3) язык C# позволяет построить делегата непосредственным наследованием от абстрактного класса Delegate
(4) абстрактный класс Delegate определен в библиотеке FCL
Отметьте истинные высказывания
(1) объект, обрабатывающий событие, может отсоединить других обработчиков события и полностью определить реакцию на событие
(2) объект может определять, обрабатывать ли событие и какой из обработчиков присоединять к событию
(3) метод GetInvocationList используется при обработке событий
(4) все события имеют одну и ту же сигнатуру
Отметьте истинные высказывания:
(1) наследник универсального класса может быть универсальным классом
(2) структуры не могут иметь родовых параметров
(3) в библиотеке FCL существуют универсальные классы и универсальные интерфейсы
(4) универсальность реализована, начиная с версии Framework .Net 2.0
(5) платой за универсальность является раздувание программного кода системы
Отметьте истинные утверждения:
(1) непрерывность программной системы означает, что малым изменениям спецификации соответствуют малые изменения программного текста
(2) невыполнение утверждения Assert приводит к выбрасыванию исключения
(3) схема обработки исключений в C# – это схема с возобновлением
(4) для каждого проекта создаются по умолчанию две конфигурации - Debug и Release
(5) блок finally выполняется только, если в охраняемом блоке выброшено исключение
Отметьте истинные высказывания:
(1) при проектировании формы указывается, будет ли она модальной или немодальной
(2) класс Color имеет фиксированное число статических свойств, задающих различные цвета
(3) закрытие формы и скрытие формы – это разные понятия
(4) методы Show и ShowDialog эквивалентны
Отметьте истинные высказывания:
(1) тип double является классом, родителем которого является класс object
(2) все типы являются наследниками класса object
(3) значимые типы не входят в иерархию классов языка C#
(4) тип string наследует методы родительского класса object и определяет собственные методы
(5) тип int наследует методы родительского класса object и определяет собственные методы
Отметьте истинные высказывания:
(1) у класса Exception нет потомков
(2) у класса Exception фиксированное число потомков
(3) можно создавать собственные классы – потомки класса Exception
(4) объекты класса Exception автоматически создаются в охраняемых блоках при возникновении исключительных ситуаций
Отметьте истинные высказывания:
(1) поля класса могут быть объявлены как static
(2) если поле класса объявлено как static, то все экземпляры класса разделяют значение (область памяти) этого поля
(3) область существования переменной, объявленной в процедуре, распространяется на весь процедурный блок
В результате объявления: int x=2,y=5,z=((x|y +x++)>=9) ? x|y : ++x +2 ; переменные x, y, z получат значения
(1) x=3; y=5; z=7
(2) x=4; y=5; z=6
(3) x=2; y=5; z=7
(4) возникнет ошибка на этапе трансляции
(5) возникнет ошибка на этапе выполнения
(6) x=3; y=5; z=8
Отметьте истинные высказывания:
(1) методы класса Random позволяют получать только положительные случайные числа
(2) метод NextDouble позволяет получать числа типа Double в диапазоне [0,1)
(3) возможность получения повторяющихся серий случайных чисел определяется при вызове методов класса Random
(4) при вызове одного из методов класса Random можно получить целый массив случайных чисел
Отметьте истинное высказывание:
(1) любое выражение может использоваться в качестве оператора
(2) оператор if может быть эквивалентен по своему действию пустому оператору
(3) оператор foreach не применим при работе с массивами
(4) каждая case-ветвь оператора switch должна заканчиваться оператором break
Отметьте истинные высказывания:
(1) только процедуры являются методами класса
(2) формальный аргумент метода может быть выражением
(3) ключевые слова ref и out являются частью сигнатуры метода
(4) перегруженными называются методы с одинаковыми именами, но с разной сигнатурой
Сборщик мусора Garbage Collector это:
(1) компонент компилятора
(2) компонент Visual Studio
(3) компонент Framework .Net
Постусловие метода
(1) может иметь значение true
(2) может иметь значение false
(3) представляет логическое выражение, связывающее входные и выходные аргументы, которое должно быть истинным в момент завершения метода
(4) если на некотором входе в момент завершения метода постусловие не выполняется, то это всегда говорит об ошибке в работе метода
(5) метод корректен, если для всех входов с истинным предусловием гарантируется истинность постусловия на выходе
Какие из процедур корректно вычислят сумму переданного им массива int?
(1) public static void L1_V1_Q31(int[] A, int* S) { S=0; for(int i =0; i< A.Length; i++) S+=A[i]; }
(2) public static void L1_V1_Q32(ref int[] A, ref int S) { S=0; for(int i =0; i< A.Length; i++) S+=A[i]; }
(3) public void L1_V1_Q33(val int[] A, val int S) { S=0; for(int i =0; i< A.Length; i++) S+=A[i]; return(S); }
(4) public static int L1_V1_Q34(object[] A) { int S=0; foreach(int i in A) S+=(int)i; return(S); }
Пусть процедура ItWorks имеет следующий заголовок: public void ItWorks(Array A). Какой массив может быть передан ей в качестве аргумента?
(1) int[] x
(2) int [][] y
(3) string[] s
(4) Person[] p; (Person – класс, определенный пользователем
(5) Anketa[] a; (Anketa – структура, определенная пользователем
Какие высказывания справедливы для класса StringBuilder?
(1) строки string можно присваивать строкам StringBuilder
(2) у класса StringBuilder нет конструктора без параметров
(3) у класса StringBuilder нет операции "+" – конкатенации
(4) классы string и StringBuilder относятся к изменяемым классам
(5) емкость буфера автоматически возрастает, если размер строки превосходит емкость буфера
Какие слова принадлежат языку, заданному регулярным выражением: @ “[a-zA-Z]\w*\s*=\s*\w+(\s*\+\s*\w+)+”
(1) x=y+z
(2) XYZ = 2 + 3 + 7
(3) Agent007 = James + Bond
(4) x5 = 5x
(5) 5y= y5
Поля класса:
(1) могут иметь любой из модификаторов доступа: public, private, protected, internal
(2) могут иметь модификатор static
(3) обычно закрываются
(4) закрытые поля недоступны методам класса
В родительском классе описан метод public virtual void M(int x) {}. Какое объявление в классе потомке вызовет ошибку на этапе компиляции?
(1) public override void M(int item){}
(2) public new void M(int x){}
(3) public override virtual void M(int x){}
(4) public virtual void M(int x, int y){}
Класс с атрибутом Serializable
(1) должен быть наследником интерфейса ISerializable
(2) при вызове форматером метода Serialize выполняет глубокую сериализацию, если класс не является наследником интерфейса ISerializable
(3) допускает два формата сериализации данных
(4) облегчает организацию обмена данными с удаленным приложением
(5) позволяет сохранять данные в текстовом формате
Для создания XML-отчета для проекта необходимо:
(1) задать хотя бы один тег <summary>
(2) отчет всегда строится вместе с проектом
(3) включить соответствующее свойство проекта
Реализация экземпляра делегата в виде метода-свойства позволяет:
(1) скрыть его от клиента
(2) иметь один экземпляр вместо нескольких
(3) динамически связывать экземпляр с методом
(4) экономить память
Класс EventHandler
(1) является классом, которому принадлежат все события
(2) является абстрактным классом и не может иметь экземпляров
(3) является родительским классом для событий, не имеющих собственных аргументов
(4) является потомком класса Delegate
(5) задает сигнатуру события
В каких фрагментах кода возникнут ошибки (предупреждения) на этапе компиляции?
(1) public class B<T> { } public class S : B<int> { }
(2) public class Test1:IComparable<T> {public T x, y;}
(3) public class B1<T> {public T M<T>(T x) { return x; } }
(4) public class B2 <T> {public T1 M<T1>(T1 x) { return x; } }
Атрибут условной компиляции Conditional:
(1) может задаваться для метода и класса
(2) может задаваться только для метода
(3) может задаваться для метода и отдельного оператора
(4) в качестве аргумента принимает только константу условной компиляции
(5) в качестве аргумента принимает выражение над константами условной компиляции
Элемент управления ListBox
(1) может хранить объекты
(2) хранит только строки
(3) может отображать объекты
(4) отображает только строки
(5) позволяет задавать элементы на этапе проектирования
Если формальный аргумент метода объявлен как объект класса T, то фактический аргумент может быть:
(1) только класса T
(2) любого класса
(3) только класса object
(4) класса, являющегося родителем класса T
(5) класса T или класса, являющегося потомком класса T
Охраняемый try-блок
(1) запрещает появление исключительных ситуаций
(2) обрабатывает возникающие в нем исключительные ситуации
(3) завершается, если в нем возникает исключительная ситуация
(4) всегда сопровождается catch-блоками или блоком finally
Какие из выражений являются правильно построенными константами
(1) 0,5
(2) 0.5e-7
(3) 5.5f
Отметьте истинное высказывание:
(1) операции логического и побитового отрицания определены над данными типа bool и арифметического типа соответственно
(2) метод Parse позволяет проводить преобразования арифметического типа в строковый
(3) порядок выполнения всех операций в C# левосторонний
В каких фрагментах возникнет ошибка:
(1) double x; x=Math.Sin(1);
(2) Math M1 = new Math(); int x; x= M1.Sin(1);
(3) int x; x=Random.Next();
(4) int x; Random R1 = new Random(); x=R1.Next();
В каких фрагментах возникнет ошибка:
(1) int x=5, y = 2*2+1, z; if(y >=x) z=2*x; else z=x+y;
(2) int x=5; {int y = 7;} int z = x+y;
(3) string s, s1, s2, s3; s=s1=s2=s3="око"; switch(s) { case s1: x=3; break; case s2: case s3: x=5; break; }
(4) for (int Sum=0, i=0; i<N; i++) Sum += Arr[i]; ( N и Arr определены должным образом)
Функция с побочным эффектом:
(1) возвращает значение void
(2) изменяет значения аргументов, вызываемых по значению
(3) имеет выходные аргументы с ключевыми словами ref или out
(4) вызывается как оператор
Исполнительная среда CLR:
(1) содержит набор компиляторов с языков, входящих в состав Visual Studio
(2) содержит JIT-компилятор с промежуточного языка IL в код платформы, на которой установлена среда CLR
(3) содержит сборщик мусора
Методы P и Q называются взаимно рекурсивными:
(1) если метод P вызывает метод Q
(2) если метод Q вызывает метод P
(3) если метод P вызывает метод Q , а метод Q вызывает метод P
Массив массивов – это массив
(1) двумерный
(2) одномерный, элементы которого являются массивами
(3) в котором массивы, принадлежащие одному измерению, могут иметь произвольное число элементов
Статические методы класса Array
(1) перегружены
(2) применимы ко всем массивам
(3) позволяют выполнять операции над матрицами – умножение, обращение, вычисление определителя
Для строки s типа string запись s[i]
(1) означает символ строки типа char
(2) означает символ строки типа string
(3) не определена
Слова языка LD задаются непустой последовательностью целых чисел, разделенных знаками арифметических операций, например 155/33+17-5*23+7. Какое регулярное выражение описывает этот язык?
(1) @"\d+[{\+|\-|\*|/}\d+]*"
(2) @"{\d+[\+|\-|\*|\/]\d+}+"
(3) @"[\d+[+|-|*|/]\d+]+"
При определении собственных классов можно задать:
(1) только конструкторы с атрибутом public
(2) статический конструктор
(3) конструкторы с атрибутами private и protected
Базовый класс для перечисления
(1) всегда задается по умолчанию
(2) может быть задан по умолчанию
(3) может быть классом string
Класс А является клиентом класса B
(1) если методы и или поля класса A вызываются в методах класса B
(2) если методы и или поля класса B вызываются в методах класса A
(3) если у класса A есть поле, являющееся объектом класса B
Глубокое клонирование
(1) невозможно из-за проблемы зацикливания
(2) возможно только для фиксированного уровня
(3) возможно
XML-отчет:
(1) создается по требованию программиста
(2) создается самим программистом
(3) создается автоматически и является частью любого проекта
(4) хранится в отдельном файле
Делегат в языке C# задает:
(1) класс функций с заданной сигнатурой
(2) функцию с заданной сигнатурой и с заданной реализацией
(3) класс, у которого все методы представляют собой функции
Зажечь событие – это значит:
(1) послать сообщение о событии всем объектам – получателям сообщения
(2) вызвать специальную процедуру, обрабатывающую событие
(3) закончить работу, передав управление операционной системе
В C# универсальными могут быть:
(1) только классы
(2) только классы и структуры
(3) классы и все их частные случаи – интерфейсы, структуры, делегаты, события
Если метод класса снабжен атрибутом Conditional, то метод
(1) будет компилироваться только в конфигурации Debug
(2) будет компилироваться только, если в активной конфигурации определена константа, заданная в атрибуте
(3) всегда будет компилироваться, но вызываться только, если в активной конфигурации определена константа, заданная в атрибуте
Можно создать кисть класса:
(1) Brush
(2) SolidBrush
(3) LinearGradientBrush
Преобразование к типу object
(1) всегда возможно и выполняется автоматически
(2) возможно, но требует явного задания преобразования
(3) возможно только для объектов ссылочного типа
К неявным преобразованиям относятся:
(1) преобразования, указанные программистом
(2) преобразования, выполняемые автоматически
(3) любые преобразования над объектами ссылочных типов
Имя локальной переменной может совпадать:
(1) с именем поля класса
(2) с именем формального аргумента
(3) с именем локальной переменной, объявленной в том же блоке метода
Побочным эффектом могут обладать:
(1) функции
(2) процедуры
(3) выражения
При ссылочном присваивании:
(1) происходит копирование объекта, связанного с источником
(2) создается дополнительная ссылка на существующий объект
(3) всегда остается «висячий» объект в куче (объект, на который не указывает ни одна ссылка)
(4) иногда остается «висячий» объект в куче (объект, на который не указывает ни одна ссылка)
Оператор return
(1) обязателен в функциях
(2) возможен в процедурах
(3) завершает выполнение функции или процедуры
Формальный аргумент метода должен сопровождаться ключевым словом:
(1) ref – если аргумент принадлежит к ссылочному типу
(2) out – если аргумент является выходным параметром метода
(3) in – если аргумент является входным параметром метода
(4) inout – если аргумент является обновляемым параметром метода
Отметьте верные высказывания:
(1) типы данных языка C# при компиляции отображаются в типы данных каркаса Framework .Net
(2) каждому типу проекта, который можно построить в Visual Studio, соответствует свой набор классов библиотеки FCL
(3) проект может содержать несколько пространств имен
Правда ли, что:
(1) для того чтобы рекурсия не приводила к зацикливанию, в тело нормального рекурсивного метода всегда встраивается оператор выбора, одна из ветвей которого не содержит рекурсивных вызовов
(2) рекурсивную программу можно заменить программой с циклами
(3) предусловие и постусловие метода должны проверяться в начале и после завершения метода
Правда ли, что:
(1) в процедуре, которой передан массив в качестве аргумента, можно определить все характеристики этого массива
(2) в C# многомерный массив и массив массивов – это два разных вида массивов
(3) константные массивы можно использовать только при инициализации массивов
Правда ли, что:
(1) методы класса Array позволяют закрыть его на время обработки, запрещая его модификацию другим потоком
(2) допустимо присваивание x=e; (передача аргументов в процедуру), где x и e – это массивы разных классов
(3) если формальный аргумент метода принадлежит классу object, то фактический аргумент не может быть массивом
Правда ли, что:
(1) метод IndexOf класса Array применим к строкам
(2) в языке C# возможно объявить переменную типа char*
(3) массив char[] позволяет работать со строкой постоянной длины
Правда ли, что:
(1) в C# существуют классы, для которых невозможно изменить значение объекта при вызове его методов
(2) метод Split разделяет слово на символы
(3) строки класса StringBuilder имеют собственный буфер
Слова языка LV задаются непустой последовательностью однобуквенных имен в латинице, разделенных знаками арифметических операций, например x/z+c-v*b+n. Какое регулярное выражение описывает этот язык?
(1) @"\w+[{\+|\-|\*|/}\w+]*"
(2) @"\w{[\+|\-|\*|/]\w}+"
(3) @"[A-Za-z][{\+|\-|\*|/}{A-Za-z}]*"
Правда ли, что:
(1) для класса нельзя задать собственные константы
(2) клиент не может получить прямой доступ к закрытым полям класса, но может получить доступ к ним, например через методы-свойства класса
(3) независимо от значения атрибута доступа, все методы и поля класса доступны для не статических методов класса
Дано перечисление enum TC {red, blue, yellow} и три переменных c1, c2, c3 этого класса. В результате присваиваний: с1 = TC.yellow; c2 = TC.blue; c3 = c1 | c2; эти переменные получат следующие значения базового типа:
(1) 0, 1, 2
(2) 2, 1, 3
(3) 1, 2, 3
(4) 2, 1, 0
Правда ли, что:
(1) поле класса может быть объектом описываемого класса
(2) при вызове конструктора класса ему может быть передана ссылка на создаваемый конструктором объект
(3) потомкам доступны все поля и методы родительского класса
Правда ли, что:
(1) метод MemberwiseClone, наследуемый от прародителя object, не может быть вызван у клиента
(2) для полного управления процессом сериализации класс должен наследовать интерфейс ISerializable
(3) класс, наследующий интерфейс, не обязан реализовать все методы интерфейса
Отметьте верные утверждение:
(1) атрибуты распознаются специальным инструментарием и становятся частью метаданных
(2) выполнение стартового консольного проекта начинается с процедуры Main
(3) класс Console поддерживает ввод с клавиатуры и вывод данных на консоль (дисплей)
(4) выполнение стартового консольного проекта может начинаться с любой процедуры
Правда ли, что:
(1) делегат может быть реализован в виде метода-свойства
(2) с экземпляром делегата может быть связана не одна функция, удовлетворяющая его сигнатуре, а целый набор таких функций
(3) делегаты допускают перегрузку
(4) реализация событий основана на делегатах
Правда ли, что:
(1) класс-отправитель сообщения обязан знать всех своих получателей
(2) сообщение о событии следует посылать только тогда, когда гарантируется, что есть хотя бы один получатель сообщения
(3) класс получатель должен иметь обработчик события – процедуру, согласованную по сигнатуре с функциональным типом делегата, задающего событие
Отметьте верное утверждение:
(1) класс может не быть универсальным, но таковым может быть отдельный метод класса
(2) абстрактный класс не может быть универсальным
(3) ограничить универсальность можно единственным способом, используя ограничение наследования
Правда ли, что:
(1) выполнение метода Assert всегда прерывает выполнение программы
(2) даже при появлении исключительной ситуации программа может завершить свою работу в полном соответствии со своими спецификациями
(3) после перехвата исключительной ситуации catch-блоком и исправления ошибки управление возвращается в точку возникновения исключительной ситуации для продолжения нормального процесса вычислений
Правда ли, что:
(1) в проекте с формами всегда должна присутствовать главная кнопочная форма
(2) элемент управления ListBox позволяет хранить список объектов
(3) при наследовании формы элементы управления не наследуются
Правда ли, что:
(1) динамический тип сущности определяется типом объекта, с которым в данный момент связана сущность
(2) данные значимого типа хранятся в куче
(3) в программе на C# вместо типа int можно использовать системный тип Int32
Выберите верные высказывания:
(1) семантика присваивания для ссылочных и значимых типов различна
(2) преобразование из типа byte в тип int относится к явным преобразованиям
(3) исключения являются нормальным способом уведомления об ошибках, возникающих в процессе выполнения программы
Правда ли, что:
(1) аргументом операции typeof является имя типа (класса)
(2) пространство имен Reflection позволяет определить, какими методами обладает тот или иной класс
(3) все арифметические операции являются перегруженными
Правда ли, что:
(1) стандартные математические функции представлены статическими методами класса Math
(2) метод Next класса Random является перегруженным
(3) еще на этапе компиляции возникнет ошибка в следующем фрагменте кода int x=1; int y=2; if (Math.Sin(x) > 0.5) y=1;
Правда ли, что:
(1) оператор break должен присутствовать в каждой ветви оператора разбора случаев switch
(2) можно написать программу с бесконечным циклом
(3) еще на этапе компиляции возникнет ошибка в следующем фрагменте кода <int x=1, y =1; if (x=y) {…};>
Правда ли, что:
(1) тело метода является блоком, представляющим последовательность операторов и описаний переменных, заключенную в фигурные скобки
(2) функцию нельзя вызывать как оператор
(3) типы формального и фактического аргумента должны быть идентичными
JIT - это:
(1) компилятор одного из языков, включаемых в состав Visual Studio
(2) компонент исполнительной среды CLR
(3) компонент компилятора C#
(4) компилятор, используемый сборщиком мусора
Предусловие метода:
(1) может иметь значение true
(2) может иметь значение false
(3) представляет логическое выражение, связывающее входные и выходные аргументы, которое должно быть истинным до начала выполнения метода
(4) невыполнение предусловия до начала выполнения метода всегда говорит об ошибке в работе метода
Отметьте вызовы процедур, в которых переменная sum получит значение 21. int sum =0; int[] mas = {7, 6, 8}; object[] mas2 = {3, 9, 9}; Описания процедур:public static void L1_V1_Q31(int[] A, int S) { S=0; for(int i =0; i< A.Length; i++) S+=A[i]; } public static void L1_V1_Q32(ref int[] A, ref int S) { S=0; for(int i =0; i< A.Length; i++) S+=A[i]; } public static int L1_V1_Q34(object[] A) { int S=0; foreach(int i in A) S+=(int)i; return(S); }
(1) Questions.L1_V1_Q31(mas, sum)
(2) Questions.L1_V1_Q32(ref mas, ref sum)
(3) sum = Questions.L1_V1_Q34(mas)
(4) sum = Questions.L1_V1_Q34(mas2)
Пусть процедура ItWorks имеет следующий заголовок: public void ItWorks(int[] A). Какой массив может быть передан ей в качестве аргумента?
(1) int[] x
(2) byte[] y
(3) string[] s
(4) Person[] p; (Person – класс, определенный пользователем).
Выберите правильные варианты ответа. Переменная класса char[] может вызывать следующие методы и свойства
(1) ToString
(2) GetSymbol
(3) CopyTo
(4) GetType
(5) Value
Какие высказывания справедливы для класса StringBuilder?
(1) у переменной класса StringBuilder нужно вызвать метод ToString, чтобы присвоить ее значение переменной класса string
(2) строки StringBuilder можно создавать конструктором, передавая ему объект string в качестве фактического параметра
(3) недопустимо присваивание s[i] = ch; где s – строка класса StringBuilder, ch – переменная класса char
(4) класс StringBuilder принадлежит изменяемым классам
Какие слова принадлежат языку, заданному регулярным выражением: @“\w\s=\s\w+(\+|\-\w+)+”?
(1) x=y+z
(2) 7 = 5-2
(3) x = 2 + y - 7
(4) x1 = z-x
Даны объявления структур: Point pt1 = new Point(3,5),pt2; Size sz1 = new Size(7,10), sz2; Какие операторы присваивания ошибочны?
(1) pt2 = pt1 +sz1;
(2) sz2 = pt2;
(3) pt2 +=pt1;
(4) pt2 = pt1 +1;
В родительском классе описан метод public void M(int x) {}. Какие объявления в классе потомке вызовут ошибки или предупреждения на этапе компиляции?
(1) public override void M(int x) {}
(2) public new void M(int x) {}
(3) public new void M(int x, int y){}
(4) public void M(int x){}
(5) private new void M(int x){}
При наследовании интерфейсов
(1) класс наследник должен реализовать хотя бы один из его методов
(2) класс наследник может выполнить переименование методов интерфейса
(3) класс наследник может выполнить склейку методов с одинаковой сигнатурой
(4) может выполнить склейку методов с разной сигнатурой
(5) объекту интерфейсного типа доступны закрытые методы интерфейса, реализованные в классе
(6) объекты интерфейсного типа создаются стандартным путем с помощью конструктора
Если вызывается метод объекта класса А, то вызываемый метод:
(1) может быть статическим методом произвольного класса
(2) может быть динамическим (экземплярным) методом произвольного класса
(3) должен быть динамическим (экземплярным) методом класса А
Какие методы делегатов являются статическими?
(1) Combine
(2) Clone
(3) Remove
(4) GetInvocationList
(5) GetHashCode
Все аргументы события принадлежат
(1) классу EventArgs
(2) классу EventArgs, за исключением аргумента, задающего объект, зажигающий событие
(3) потомку класса EventArgs
(4) потомку класса EventArgs за исключением аргумента, задающего объект, зажигающий событие
(5) возможно разным классам
В каких строках кода возникнут ошибки (предупреждения) на этапе трансляции?
(1) abstract public class A5<T> { abstract public void M(T x); }
(2) public class SA5<T> : A5<T> { public override void M(T x) { T y = x; } }
(3) public class B6 { SA5<int> obj1 = new SA5<int>(); }
(4) public class B7 { SA5<T> obj1 = new SA5<T>(); }
Метод Assert
(1) позволяет контролировать корректность выполнения вычислений
(2) заменяет механизм исключений
(3) при нарушении утверждения открывает специальное диалоговое окно
Для форм справедливы следующие утверждения:
(1) действие методов Hide и Show эквивалентно установке свойства Visible в false или true
(2) действия методов Hide и Close эквивалентны
(3) выполнение метода Close для главной формы приводит к завершению приложения
(4) все формы могут быть скрыты, а приложение может продолжать выполняться
(5) выполнение метода Close для любой формы приводит к завершению приложения
Если присваивание x= y; допустимо, то обратное присваивание y=x;
(1) всегда допустимо
(2) всегда допустимо для переменных ссылочных типов
(3) всегда допустимо для переменных значимых типов
(4) может требовать явного преобразования типов
(5) всегда требует явного преобразования типов
При включенной опции компилятора /checked проверка корректности преобразований типов выполняется:
(1) для всех преобразований во всем проекте
(2) для всех преобразований во всем проекте, исключая непроверяемые блоки
(3) только для преобразований арифметического типа во всем проекте, исключая непроверяемые блоки и непроверяемые выражения
(4) для всех преобразований во всем проекте, исключая непроверяемые блоки и непроверяемые выражения
Отметьте правильные объявления константы
(1) double const size = 75.5f;
(2) const double size = 53.5f;
(3) const byte size = 055;
(4) const size = 33;
Отметьте истинное высказывание:
(1) операция new может выполняться только при объявлении переменной
(2) метод Parse определен для всех типов
(3) вызов MaxValue возвращает размер памяти, отводимой значениям типа
(4) условие в операторе if записано c ошибкой: if(2*2 = 4)
В каких фрагментах возникнет ошибка:
(1) float f1=1.0, f2= 2.0, f3 = f1+ f2;
(2) double d1 =1.0, d2= 2.0, d3 = d1 + d2;
(3) int u =5, v, w; if (u >0) v= 4; w=v;
(4) int x=5, y, z; if(x>4) y=x; else y=4; z=y;
В каких фрагментах возникнет ошибка:
(1) x=;; y=7
(2) int x=5, z; {int y=7; z=y+1;} int w = x+z;
(3) string s="кок"; switch(s) { case "око": break; case "кок": case "рок": s="тук"; s=s+s; break; }
(4) int x=5, y, z; if(x>4) y=x; else y=4; z=y;
Какие высказывания верны для полей класса:
(1) поля класса используются для передачи информации методам класса
(2) поле класса всегда можно заменить функцией без аргументов
(3) поле класса иногда можно заменить функцией без аргументов
Библиотека FCL - это:
(1) набор классов, представляющих типы данных, общие для всех языков программирования в независимости от платформы
(2) набор классов, используемых компиляторами среды и не разрешенных для непосредственного использования в программах на C#
(3) набор классов, используемых как компиляторами, так и в программах на C#
Каждое выполнение тела цикла:
(1) сохраняет инвариант цикла
(2) сохраняет вариант цикла
(3) сохраняет предусловие цикла
(4) сохраняет постусловие цикла
При инициализации массива задание конструктора обязательно
(1) для одномерных массивов
(2) для многомерных массивов
(3) для массива массивов
Для того чтобы было возможным преобразование массива с элементами класса S в массив с элементами класса T, необходимо
(1) размерности массивов должны совпадать
(2) массивы должны иметь одинаковое число элементов
(3) классы S и T должны быть ссылочного типа
(4) классы S и T должны быть значимого типа
В каких фрагментах не возникнет ошибка?
(1) char[] s = new char[3]; s = "abc".ToCharArray();
(2) char[] s = new char[3]; s = "abc";
(3) char[] s = new char[3] {'b', 'c', 'd'};
Строки класса StringBuilder создаются тогда, когда
(1) требуется выполнять над строками операции поиска вхождения отдельных символов или подстрок
(2) требуется изменять значение строки, не создавая новой строки
(3) длина строки заранее неизвестна
Класс Regex имеет
(1) открытый конструктор по умолчанию
(2) защищенный конструктор по умолчанию
(3) открытый конструктор с аргументом типа string
(4) защищенный конструктор с аргументом типа string
Закрытые методы класса
(1) позволяют клиентам не вникать в детали реализации
(2) составляют интерфейс класса
(3) не могут быть вызваны клиентами
Дано перечисление enum TC {red, blue, yellow} и три переменных c1, c2, c3 этого класса. В результате присваиваний: с1 = TC.yellow; c2 = TC.blue; c3 = c1 | c2; переменная с3 получит значение
(1) red
(2) blue
(3) yellow
(4) ни одно из этих значений
Интерфейс отличается от абстрактного класса тем, что:
(1) у абстрактного класса все методы абстрактны, а у интерфейса некоторые методы могут иметь реализацию
(2) у интерфейса все методы абстрактны, а у абстрактного класса некоторые методы могут иметь реализацию
(3) потомок может иметь в качестве родителя несколько интерфейсов, но только один абстрактный класс
При построении программной системы методом раскрутки
(1) функциям внешнего слоя доступны без ограничений функции внутренних слоев
(2) функциям внутреннего слоя доступны без ограничений функции внешних слоев
(3) для того, чтобы функциям внешнего слоя были доступны функции внутренних слоев, необходимо задание контракта во внешнем слое, которому должны удовлетворять функции внутренних слоев
(4) для того, чтобы функциям внутреннего слоя были доступны функции внешних слоев, необходимо задание контракта во внутреннем слое, которому должны удовлетворять функции внешних слоев
Для событий, допустимых в каркасе Framework .Net, к делегатам предъявляются следующие ограничения
(1) сигнатура делегата фиксируется
(2) число возможных событий ограничено
(3) события могут обрабатываться объектами только одного класса
На основе универсального класса можно создавать:
(1) только родовые порождения экземпляров класса
(2) только родовые порождения конкретных классов
(3) как родовые порождения конкретных классов, так и экземпляров класса
В теле метода может быть
(1) один try-блок и несколько catch-блоков
(2) число try-блоков не больше суммарного числа catch - finally-блоков
(3) один try-блок и несколько finally-блоков
Класс Menu имеет следующих потомков
(1) MainMenu
(2) DropDownMenu
(3) ContextMenu
(4) MenuItem
Класс object - это
(1) родительский класс для объектов ссылочного типа
(2) родительский класс для объектов значимого типа
(3) родительский класс для объектов классов, создаваемых программистом
Класс Exception
(1) является абстрактным классом
(2) имеет фиксированное число потомков
(3) является родительским классом для всех классов, описывающих определенный тип исключения
Передавать и получать информацию методу можно
(1) через поля класса
(2) через аргументы метода
(3) через глобальные переменные, объявленные в пространстве имен
Ключевое слово new в зависимости от контекста играет роль:
(1) модификатора метода
(2) модификатора переменной
(3) операции
К специальным случаям присваивания относится:
(1) выражение X=1
(2) выражение X+=1
(3) выражение X==1
Операторами цикла в C# являются:
(1) оператор for
(2) оператор foreach
(3) оператор while с проверкой условия в начале цикла
(4) оператор dowhile с проверкой условия в конце цикла
(5) оператор loop с проверкой условия в середине цикла
Почему при ОО-стиле программирования у методов класса мало аргументов:
(1) на число аргументов накладываются ограничения
(2) модификатор params позволяет иметь один формальный аргумент, которому соответствует неограниченное число фактических аргументов
(3) основная информация передается методу и возвращается им через поля объекта, вызвавшего метод
Отметьте верное утверждение:
(1) манифест PE-файла включает в себя описание всех хранимых в нем классов
(2) программисту на C# всегда приходится самостоятельно заниматься освобождением памяти, не доверяя эту работу сборщику мусора
(3) всякая ошибка в ходе выполнения программы приводит к прерыванию ее работы
Правда ли, что:
(1) задание предусловий, постусловий, вариантов и инвариантов циклов является такой же частью процесса разработки корректного метода, как и написание самого кода
(2) вариант цикла является выражением булевского типа
(3) из истинности инварианта цикла и условия завершения цикла всегда следует истинность постусловия цикла
(4) из истинности инварианта цикла всегда следует истинность предусловия цикла
Правда ли, что:
(1) элементы константного массива следует заключать в квадратные скобки
(2) если массив объявляется без инициализации, то создается только висячая ссылка со значением null
(3) для динамических массивов можно указать нижнюю и верхнюю границу изменения индексов
Правда ли, что:
(1) класс Array наследует интерфейс ICompare
(2) возникнет ошибка на этапе компиляции в следующем фрагменте: <foreach (object item in A) item = 1;>, где A имеет тип Array
(3) статический метод BinarySearch класса Array применим только к бинарным массивам булевского типа
Правда ли, что:
(1) класс char имеет динамический метод CompareTo, выдающий в случае несовпадения символов расстояние между ними
(2) все 26 букв латинского алфавита в кодировке Unicode плотно упакованы
(3) все 33 буквы кириллицы в кодировке Unicode плотно упакованы
Правда ли, что:
(1) операция конкатенации (+) не определена над строками класса StringBuilder
(2) емкость буфера, отводимой строке класса StringBuilder всегда равна 1Кб
(3) в C# существуют два вида строковых констант
Правда ли, что:
(1) метод Match класса Regex запускает поиск в заданной строке первого вхождения подстроки, удовлетворяющей образцу поиска
(2) методMatch класса Regex запускает поиск в заданной строке всех вхождений подстроки, удовлетворяющей образцу поиска
(3) метод Matches класса Regex запускает поиск в заданной строке всех непересекающихся вхождений подстроки, удовлетворяющей образцу поиска
Правда ли, что:
(1) методы-свойства обеспечивают различные стратегии доступа к закрытым полям класса
(2) индексатор – это специальный инструментарий, нумерующий методы класса
(3) статическое поле с атрибутом readonly может использоваться в качестве константы класса
Отметьте верные утверждения.
(1) класс int является структурой
(2) никакие операции не определены над объектами перечислений
(3) метод ToString для объекта перечисления возвращает его значение, преобразованное в строку
Правда ли, что:
(1) создать объект класса интерфейса обычным путем с использованием конструктора и операции new нельзя
(2) различают три типа клонирования: поверхностное (shallow), глубокое (deep) и сверхглубокое (overdeep)
(3) под десериализацией понимают процесс восстановление состояния объектов, хранимых в долговременной памяти
Отметьте верные высказывания:
(1) свойства проекта можно установить на странице свойств Property Pages
(2) в Windows-проекте разрешен вывод методами класса Console
(3) класс Form задает общие свойства форм, появляющихся в Windows-проекте
Правда ли, что:
(1) функцией высшего порядка называется такая функция (метод) класса, у которой один или несколько аргументов принадлежат к функциональному типу
(2) каждая функция (метод), сигнатура которого совпадает с сигнатурой делегата, может рассматриваться как экземпляр класса, заданного делегатом
(3) над делегатами определены четыре операции (+, -, *, /)
Правда ли, что:
(1) если обработчику события не передаются дополнительные аргументы, то можно пользоваться стандартным делегатом с именем EventHandler
(2) при зажигании события выполнение метода прерывается, пока не закончат работу все обработчики события
(3) стандартные интерфейсные объекты обладают набором предопределенных событий
(4) объекты классов, создаваемых программистом, наследуют предопределенные события класса object
Правда ли, что:
(1) класс может не быть универсальным, но таковым может быть отдельное поле класса
(2) делегаты не могут иметь родовых параметров
(3) в библиотеке FCL Visual Studio 2005 существуют универсальные интерфейсы
Правда ли, что:
(1) выражение в операторе throw задает объект класса, являющегося наследником класса Exception
(2) нельзя создать собственный класс исключений – потомка класса Exception
(3) константы компиляции определяются в предложении Define
Правда ли, что:
(1) каждому элементу управления формы соответствует поле класса, задающего форму
(2) каждая проектируемая форма является экземпляром отдельного класса – наследника класса Form
(3) при открытии формы методом ShowDialog она появляется как модальное окно
Правда ли, что:
(1) данные ссылочного типа хранятся в куче
(2) базовый тип сущности определяется классом, заданным при объявлении
(3) если при присваивании источник имеет значимый тип, то и цель преобразуется к значимому типу
Отметьте верные утверждения:
(1) нужно создавать try-блоки, чтобы можно было обрабатывать исключения
(2) явно выполняемые преобразования по определению относятся к опасным
(3) не всегда можно однозначно определить, какой из перегруженных методов следует вызвать
Отметьте верное:
(1) память локальным переменным отводится в прологе блока до начала его выполнения
(2) для литералов значение константы является ее именем
(3) сборщик мусора не занимается освобождением памяти для переменных значимого типа
Правда ли, что:
(1) тип результата операции совпадает с типом операндов
(2) логическое отрицание ! и побитовое отрицание ~ дают одинаковые результаты
(3) явное преобразование типа всегда можно выполнить с помощью операции приведения к типу
Отметьте верные утверждения:
(1) еще на этапе компиляции возникнет ошибка в следующем фрагменте <byte x = 200; x+=100;>
(2) еще на этапе компиляции возникнет ошибка в следующем фрагменте <byte x; x+=100;>
(3) еще на этапе компиляции возникнет ошибка в следующем фрагменте <byte[] x = new byte[5]; x[0]+=100;>
Правда ли, что:
(1) цикл foreach применим к массивам
(2) допустима такая конструкция <if (a>0) if (b>0) if(c>0) …>
(3) каждый блок должен завершаться символом точка с запятой
Отметьте верные утверждения:
(1) существование в классе методов с одним и тем же именем называется перегрузкой
(2) любую функцию можно записать в виде процедуры
(3) любую процедуру можно записать в виде функции
Для программы, вычисляющей сумму первых n элементов массива S=A[0]; k=0; while(k !=(n-1)) { k++; S+=A[k];} подходящими инвариантами цикла являются
(1) files
(2) files
(3) files
(4) S= A[k]
Отметьте правильные объявления:
(1) int[][,] mx = { new int[2,3], new int[3,2] };
(2) object[][] mz = { new int[3], new double[4] };
(3) int n = 10; string[,] ms = new string[n,2*n];
(4) double[] md = new double[5] = {1.5, 2.7, 3.9};
(5) float[] mf = {1.5, 2.7, 3.9};
К статическим свойствам и методам класса Array относятся:
(1) метод Reverse
(2) метод BinarySearch
(3) метод Copy
(4) метод CopyTo
Отметьте правильные объявления:
(1) char[] e = new char[4]{'a', 'b', 'c', 'd'};
(2) int n = 4; char[] g = new char[n]{'a','b','c','d'};
(3) char f1;
Отметьте фрагменты, в которых не возникнут ошибки при компиляции и выполнении:
(1) string c1= new string();
(2) string c2= new string("ABC");
(3) int n = 5; string c3= new string ('a', 2*n);
(4) char[] car = new char[3]; car[1] ='a'; car[2] ='b'; string s =new string(car,0,2);
Отметьте правильные высказывания:
(1) регулярное выражение позволяет определить, является ли одна строка частью другой строки
(2) регулярное выражение позволяет определить, принадлежит ли строка языку, заданному регулярным выражением
(3) регулярное выражение позволяет определить, есть ли в строке подстрока, удовлетворяющая шаблону, заданному регулярным выражением
(4) метод Matches находит все вхождения подстрок, удовлетворяющие шаблону
(5) метод Matches находит все непересекающиеся вхождения подстрок, удовлетворяющие шаблону
Тело класса может содержать описание:
(1) полей
(2) методов
(3) классов
(4) интерфейсов
(5) пространств имен
(6) событий
Какие утверждения справедливы относительно взаимных преобразований структур в классы
(1) для преобразования структуры в класс достаточно заменить слово struct словом class
(2) для преобразования класса в структуру всегда достаточно заменить слово class словом struct
(3) для преобразования класса в структуру иногда достаточно заменить слово class словом struct
(4) для преобразования класса в структуру всегда необходимо изменить конструктор класса
(5) для преобразования класса в структуру иногда необходимо изменить конструктор класса
Для понятия «полиморфизм» справедливы следующие утверждения
(1) полиморфизм определяется для семейства классов, связанных отношением наследования
(2) полиморфизм определяется для семейства классов, связанных отношением вложенности
(3) полиморфизм означает, что в классе заданы перегруженные методы
(4) реализация полиморфизма построена на динамическом связывании
(5) реализация полиморфизма предполагает статический контроль типов
Пусть задано описание интерфейса и класса: interface IP{string M(string s); string M1(int s);} public class C1:IP{string IP.M(string s){return (s+s);} string IP.M1(int x){return x.ToString();}public int M (int s) { return (s++);}}. Какие из объявлений в клиентском классе выполнимы
(1) C1 it1 = new C1(); it1.M(7777)
(2) C1 it2 = new C1(); string s ="ss"; s =it2.IP.M(s)
(3) C1 it3 = new C1(); string s ="ss"; s =((IP)it3).M(s)
(4) IP it4 = new IP(); string s= "ss"; s = it4.M(s)
(5) IP it5 = (IP) new C1(); string s= "ss"; s = it5.M(s)
Начальный Windows-проект содержит:
(1) класс Window
(2) класс Form
(3) класс Form1– наследника класса Form
(4) пространство имен Form
Процедура, в которой вызывается событие
(1) передает обработчику событий входные аргументы и продолжает свою работу
(2) передает обработчику событий входные аргументы и ждет окончания работы первого обработчика, связанного с событием
(3) передает обработчику событий входные аргументы и ждет окончания работы всего списка обработчиков, связанного с событием
(4) может использовать в своей работе выходные аргументы события, значения которых сформированы обработчиками события
Какие утверждения справедливы при описании взаимосвязи наследования и универсальности?
(1) основным способом ограничения универсальности является ограничение наследования
(2) из абстрактного универсального класса нельзя создать класс, в котором конкретизированы типы, но не задана реализация методов
(3) из абстрактного универсального класса можно создать класс, в котором конкретизирована реализация методов, но не конкретизированы типы
(4) при объявлении потомка универсального класса можно задать конкретизацию типов родителя, так что потомок не будет универсальным классом
Класс Exception
(1) является родительским классом для всех классов, задающих исключение
(2) является родительским классом для всех классов библиотеки FCL, задающих исключение, но не классов, определенных пользователем
(3) является абстрактным классом
(4) имеет метод throw для выбрасывания исключений
(5) позволяет задать файл, содержащий подробную справку о причине исключения и способах его устранения
При наследовании форм:
(1) наследуемая форма должна принадлежать тому же проекту, что и родительская форма
(2) родительская форма может принадлежать любому проекту
(3) родительская форма может принадлежать только выполняемым проектам - exe или dll проектам
(4) наследуемая форма не может быть открыта в дизайнере форм
(5) обработчики событий элементов управления не наследуются
К типам, определяемым пользователем языка C#, относятся:
(1) классы
(2) строки
(3) перечисления
(4) структуры
Явное преобразование типа может быть выполнено:
(1) статическим методом Convert
(2) статическими методами класса Convert
(3) приведением типа
(4) разрешено только для значимых типов
Отметьте правильные объявления внутри метода:
(1) int x, double y;
(2) int x, y, z = 77;
(3) int x =77, y = new int();
Верно, что приоритет операций выше:
(1) вычитания чем сложения
(2) исключающего ИЛИ чем ИЛИ
(3) логических чем арифметических
(4) эквивалентности чем присваивания
В классе Math определены методы (функции):
(1) Sin
(2) Tg
(3) Ln
(4) MaxValue
(5) Min
Тело цикла for (int i = 1, j=-10; j<10; i--) j++;
(1) ни разу не выполнится
(2) выполнится 3 раза
(3) произойдет зацикливание
(4) выполнится конечное число раз, большее 3-х
При вызове аргумента "по значению":
(1) формальный аргумент должен снабжаться ключевым словом ref
(2) создается копия фактического аргумента
(3) значение фактического аргумента не меняется в результате вызова
(4) фактический аргумент не может быть именем
Отметьте истинное высказывание:
(1) если предусловие равно true , то метод корректен для любого постусловия
(2) если предусловие равно false , то метод корректен для любого постусловия
(3) рекурсивный вариант метода всегда следует заменять нерекурсивным аналогом
(4) нерекурсивный вариант метода всегда предпочтительнее своего рекурсивного аналога
Отметьте истинные высказывания
(1) элементы массива доступны для чтения и записи
(2) в массивы C# можно добавлять и удалять элементы
(3) объявления int[] и double[] задают один и тот же класс-массив
(4) если у метода формальный аргумент является массивом, то его можно вызывать по значению, опуская описатели ref или out, даже если его элементы меняются в теле метода, но не меняется сам массив (ссылка)
Отметьте истинные высказывания:
(1) использование цикла For Each при работе с массивом не допускается
(2) класс Array является потомком класса Object
(3) свойство Length и метод GetLength всегда возвращают один и тот же результат
(4) если S и T массивы ссылочного типа, то присваивание S=T может быть допустимым
(5) в результате присваивания S=T, где S и T массивы, создается копия массива T
Отметьте истинные высказывания:
(1) типы char и string относятся к ссылочным типам
(2) тип char* можно объявлять только в небезопасных блоках и при условии, что проект скомпилирован с опцией unsafe
(3) если проект скомпилирован с опцией unsafe, то тип char* можно объявлять в любом блоке
(4) переменной типа string можно присвоить константу типа char
(5) существует метод в классе string, преобразующий строку в массив символов
Отметьте правильное высказывание:
(1) присваивание ch =s[i]; где s класса string, а ch – переменная класса char, недопустимо
(2) константы “\c\x58” и @”\cX” эквивалентны
(3) метод Join всегда позволяет восстановить исходную строку, расщепленную методом Split
(4) аргументы в методе Format позволяют задать ширину области для вставляемого объекта
Чтобы получить объект Match можно:
(1) создать его, передав конструктору регулярное выражение
(2) создать объект класса Regex, вызвать метод Matches и выбрать нужный объект из коллекции
(3) объявить объект Match без инициализации, создать объект класса Regex, вызвать метод Match и его результат присвоить объекту Match
(4) объявить объект Match без инициализации, создать объект класса Regex, вызвать свойство Group и у полученной группы вызвать свойство Match, результат которого присвоить объекту Match
Отметьте истинные высказывания:
(1) статическое поле класса доступно в любом методе класса
(2) статический конструктор класса вызывается автоматически
(3) у класса может быть задано несколько методов-свойств
(4) у класса может быть задано несколько индексаторов с разными именами
(5) для класса можно задать несколько операций
Отметьте истинные высказывания
(1) поля структуры не могут быть ссылками
(2) структура наследует методы класса object
(3) перечисление наследует методы класса object
(4) структуры и перечисления – частные случаи классов
Отметьте истинные высказывания:
(1) вызов конструктора приводит к вызову конструкторов всех предков класса
(2) клиенту доступны все методы поставщика
(3) наследнику доступны все методы предков
(4) абстрактный класс может иметь полностью реализованный метод
Отметьте истинные высказывания
(1) один класс может наследовать несколько интерфейсов
(2) один интерфейс может наследоваться несколькими классами
(3) из-за коллизии имен дублируемое наследование интерфейсов запрещено
(4) интерфейс может быть наследником нескольких интерфейсов
Отметьте истинные высказывания:
(1) метод Run – это обычно один из первых выполняемых методов Windows-проекта, включаемый в процедуру Main
(2) процедура Main консольного проекта содержит вызов метода Run
(3) класс может выступать в роли цели вызова
(4) в каждый момент выполнения проекта существует текущий объект
Отметьте истинные высказывания:
(1) класс Delegate является наследником интерфейса ICloneable;
(2) класс Delegate является наследником интерфейса ISerializable
(3) операции + и – позволяют оперировать со списком вызова делегатов
(4) метод Combine возвращает в качестве результата объект того же типа, что и экземпляр делегата, вызвавшего метод
Отметьте истинные высказывания
(1) события – это специализированный вариант делегатов
(2) к каждому событию должен быть присоединен хотя бы один обработчик события
(3) методы Combine и Remove, наследованные от класса Delegate не применимы к событиям
(4) допустимо динамическое связывание событий с обработчиками событий
Отметьте корректные высказывания
(1) универсальность и наследование позволяют существенно сократить объем кода программной системы
(2) три типа ограничений универсальности полностью удовлетворяют всем потребностям практики
(3) конкретизацию типов можно выполнять в момент порождения экземпляров универсального класса
(4) прежде чем порождать экземпляры на основе универсального класса, необходимо предварительно создать класс, в котором все родовые параметры будут конкретизированы
(5) универсальный класс транслируется в параметризованный тип IL
Отметьте истинные высказывания:
(1) к исключительным относятся только такие ситуации, которые обнаруживаются операционной системой, когда она не может выполнить предписанные программой действия
(2) метод с атрибутом условной компиляции, компилируется только тогда, когда в активной конфигурации определена константа, заданная в атрибуте
(3) метод с предусловием False всегда корректен
(4) классы Debug и Trace разделяют единую коллекцию слушателей
(5) catch-блок не возвращает управление в охраняемый блок
Отметьте истинные высказывания:
(1) метод DrawString предназначен для вывода текста в графическом режиме
(2) кисть класса LinearGradientBrush предназначена для рисования линий разного цвета
(3) контекстное меню может быть связано как с формой, так и с элементом управления
(4) любую форму можно открыть как модальную
(5) кисти можно создавать конструктором класса Brush
Отметьте истинные высказывания:
(1) метод ToString() может быть вызван переменной X арифметического типа – X.ToString()
(2) метод ToString() может быть вызван объектом X класса Т, созданного пользователем – X.ToString()
(3) объекту класса Т, созданного пользователем, всегда можно присвоить объект базового класса Object
Отметьте истинные высказывания:
(1) метод ToString, задающий преобразование в строку, определен для любого объекта X класса Т, созданного пользователем
(2) объекту базового класса Object можно присвоить объект класса Т, созданного пользователем
(3) исключения, возникающие в охраняемом try-блоке, всегда перехватываются catch-блоком, сопровождающим охраняемый блок
В результате объявления: int x=2, y=3, z= ((x|--y +y)>5) ? x|y : ++x +2 ; переменные x, y, z получат значения
(1) x=1; y=2; z=4
(2) x=2; y=2; z=4
(3) x=2; y=2; z=2
(4) возникнет ошибка на этапе трансляции
(5) возникнет ошибка на этапе выполнения
(6) x=2; y=3; z=3
Отметьте истинное высказывание:
(1) все методы класса Random являются статическими
(2) для вызова методов класса Math нужно предварительно создать экземпляр этого класса
(3) возможность получения повторяющихся серий случайных чисел определяется при вызове конструктора класса Random
(4) при вызове любого из методов класса Random можно получить только одно случайное число
Отметьте истинные высказывания:
(1) некоторые выражения могут использоваться в качестве оператора
(2) оператор switch по своему действию может быть эквивалентен пустому оператору
(3) в заголовке операторе цикла for всегда требуется объявлять переменную, задающую счетчик цикла
(4) в теле оператора foreach не допускается присваивание значения текущему элементу
Отметьте истинные высказывания
(1) только процедуры и функции с атрибутом public являются методами класса
(2) фактический аргумент метода может быть выражением
(3) если формальный аргумент объявлен с ключевым словом out , то в теле метода ему должно присваиваться значение
(4) сигнатуры перегруженных методов должны совпадать
Даны объявления: string s = "Hello, Dolly!"; const int size =15; char[] c0 = new char[size], c1= new char[size]; char[] c2 = new char[size], c3= new char[size]; char[] c4 = new char[size]; Группа операторов выполняется после этих объявлений. Отметьте операторы, не приводящие к ошибке на этапе выполнения:
(1) c0= s.ToCharArray()
(2) c1=c0
(3) Array.Copy(c0,c2,2*size)
(4) c0.CopyTo(c3,0)
(5) c1[7]='P'
Отметьте истинные высказывания:
(1) пространство имен допускает вложенность и может содержать в качестве элемента пространство имен
(2) класс Form1 в Windows-проекте по умолчанию является наследником класса Form
(3) проект библиотеки классов может не содержать точки входа Main