Основы программирования на C#



Авторы специализируются на тестах по любым дисциплинам! Средний балл по тестам 4,6.
 
Любые вопросы по дистанционному обучению. Тесты, письменные работы, сессия под ключ.
 
Известный интернет сайт, помощь по любым учебным вопросам - от теста до дипломной работы. Личный менеджер.
 
Крупная биржа студенческих работ. Закажи напрямую у преподавателя. Низкие цены, стена заказов.
 
Биржа студенческих работ. Потребуется самостоятельная выгрузка работ.
 

К неявным преобразованиям относятся:

  • (Правильный ответ) преобразования, выполняемые автоматически
  • любые преобразования над объектами ссылочных типов
  • преобразования, указанные программистом

Закрытые методы класса

  • составляют интерфейс класса
  • (Правильный ответ) не могут быть вызваны клиентами
  • (Правильный ответ) позволяют клиентам не вникать в детали реализации

Три массива: <int[] ar1 = new int[5]; double[] ar2 ={5.5, 6.6, 7.7}; int[,] ar3 = new Int32[3,4]; > принадлежат

  • одному и тому же классу
  • разным классам, общность которых определяется только родительским классом object
  • (Правильный ответ) разным классам, но у которых есть общий родительский класс Array

Правда ли, что:

  • (Правильный ответ) стандартные математические функции представлены статическими методами класса Math
  • (Правильный ответ) метод Next класса Random является перегруженным
  • еще на этапе компиляции возникнет ошибка в следующем фрагменте кодаint x=1;int y=2;if (Math.Sin(x) > 0.5) y=1;

При создании объектов перечислений

  • (Правильный ответ) объекты получают значение, даже если инициализация не задана
  • требуется их явная инициализация
  • (Правильный ответ) нельзя вызывать конструктор

Отметьте истинное высказывание:

  • каждая case-ветвь оператора switch должна заканчиваться оператором break
  • любое выражение может использоваться в качестве оператора
  • оператор foreach не применим при работе с массивами
  • (Правильный ответ) оператор if может быть эквивалентен по своему действию пустому оператору

При определении собственных классов можно задать:

  • только конструкторы с атрибутом public
  • (Правильный ответ) конструкторы с атрибутами private и protected
  • (Правильный ответ) статический конструктор

Класс имеет:

  • несколько конструкторов с одинаковой сигнатурой
  • (Правильный ответ) не более одного статического конструктора
  • не более одного закрытого конструктора
  • только конструктор по умолчанию
  • только один конструктор

Отметьте истинные высказывания:

  • (Правильный ответ) класс Form1 в Windows-проекте по умолчанию является наследником класса Form
  • (Правильный ответ) проект библиотеки классов может не содержать точки входа Main
  • (Правильный ответ) пространство имен допускает вложенность и может содержать в качестве элемента пространство имен

Преобразование к типу object

  • (Правильный ответ) всегда возможно и выполняется автоматически
  • возможно только для объектов ссылочного типа
  • возможно, но требует явного задания преобразования

Для выделения из текста подстроки, в которой x и y разделены знаком операции + или -, следует использовать шаблон:

  • (Правильный ответ) @»x[\+|\-]y»
  • @»x[+|-]y»
  • @»(x+y)|(x-y)»

Правда ли, что:

  • (Правильный ответ) под десериализацией понимают процесс восстановление состояния объектов, хранимых в долговременной памяти
  • (Правильный ответ) создать объект класса интерфейса обычным путем с использованием конструктора и операции new нельзя
  • различают три типа клонирования: поверхностное (shallow), глубокое (deep) и сверхглубокое (overdeep)

Правда ли, что:

  • при вызове конструктора класса ему может быть передана ссылка на создаваемый конструктором объект
  • (Правильный ответ) поле класса может быть объектом описываемого класса
  • потомкам доступны все поля и методы родительского класса

Правда ли, что:

  • класс может не быть универсальным, но таковым может быть отдельное поле класса
  • (Правильный ответ) в библиотеке FCL Visual Studio 2005 существуют универсальные интерфейсы
  • делегаты не могут иметь родовых параметров

Начальный Windows-проект содержит:

  • класс Window
  • пространство имен Form
  • класс Form
  • (Правильный ответ) класс Form1– наследника класса Form

Класс Exception

  • имеет фиксированное число потомков
  • является абстрактным классом
  • (Правильный ответ) является родительским классом для всех классов, описывающих определенный тип исключения

Размерность массива определяется:

  • числом его элементов
  • (Правильный ответ) числом его индексов
  • по максимальному значению элементов

Правда ли, что:

  • (Правильный ответ) метод Format может вызываться с разным числом параметров
  • существуют константы класса StringBuilder
  • метод Join позволяет воссоздать строку в исходном виде, расщепленную методом Split

К значимым типам языка C# относятся:

  • строки
  • все арифметические типы, кроме типа double
  • (Правильный ответ) все арифметические типы
  • массивы

Для ограниченной универсальности справедливы следующие утверждения:

  • ограничение универсальности накладывает ограничения на все родовые параметры
  • (Правильный ответ) неограниченную универсальность ограничивает статический контроль типов
  • введение ограничений универсальности на родовой параметр T сужает возможности работы с объектами типа T
  • в одном предложении where можно задать ограничения на несколько родовых параметров

Отладка позволяет

  • доказать, что в системе нет ошибок
  • устранить все ошибки, существующие в системе
  • (Правильный ответ) доказать, что в системе есть ошибки

Правда ли, что:

  • индексатор – это специальный инструментарий, нумерующий методы класса
  • (Правильный ответ) статическое поле с атрибутом readonly может использоваться в качестве константы класса
  • (Правильный ответ) методы-свойства обеспечивают различные стратегии доступа к закрытым полям класса

Отметьте истинное высказывание:

  • (Правильный ответ) в рекурсивной процедуре должна присутствовать нерекурсивная ветвь
  • квадратичные методы сортировки, требующие O(n2) операций всегда работают медленнее, чем сортировки с порядком операций O(n*log(n))
  • многопроцессорный современный компьютер решит задачу «Ханойские башни» в течение суток
  • каждый цикл имеет только один инвариант

Для того чтобы было возможным преобразование массива с элементами класса S в массив с элементами класса T, необходимо

  • классы S и T должны быть значимого типа
  • (Правильный ответ) классы S и T должны быть ссылочного типа
  • массивы должны иметь одинаковое число элементов
  • (Правильный ответ) размерности массивов должны совпадать

Отметьте истинное высказывание:

  • в языке C# переменные m1 и m2, являющиеся массивами, всегда принадлежат одному классу
  • (Правильный ответ) массив массивов позволяет задать многомерный массив
  • в языке C# для массивов не допускается отложенная инициализация

Оператор return

  • (Правильный ответ) завершает выполнение функции или процедуры
  • (Правильный ответ) возможен в процедурах
  • (Правильный ответ) обязателен в функциях

Дано перечисление enum TC {red, blue, yellow} и три переменных c1, c2, c3 этого класса. В результате присваиваний: с1 = TC.yellow; c2 = TC.blue; c3 = c1 | c2; эти переменные получат следующие значения базового типа:

  • (Правильный ответ) 2, 1, 3
  • 2, 1, 0
  • 1, 2, 3
  • 0, 1, 2

Дано объявление делегата: public delegate double D (double x); Какие объявления его экземпляров будут корректны в определенном контексте?

  • (Правильный ответ) D d4 = new D(Person.f2)
  • (Правильный ответ) D d1 = new D(Math.Sin)
  • (Правильный ответ) D d5 = new D(f3)
  • (Правильный ответ) D d3 = new D(x.f1)

Для программы, вычисляющей сумму первых n элементов массива S=A[0]; k=0; while(k !=(n-1)) { k++; S+=A[k];} подходящими инвариантами цикла являются

  • (Правильный ответ)
  • S= A[k]

Правда ли, что:

  • (Правильный ответ) задание предусловий, постусловий, вариантов и инвариантов циклов является такой же частью процесса разработки корректного метода, как и написание самого кода
  • из истинности инварианта цикла и условия завершения цикла всегда следует истинность постусловия цикла
  • вариант цикла является выражением булевского типа
  • из истинности инварианта цикла всегда следует истинность предусловия цикла

Правда ли, что:

  • (Правильный ответ) каждая функция (метод), сигнатура которого совпадает с сигнатурой делегата, может рассматриваться как экземпляр класса, заданного делегатом
  • над делегатами определены четыре операции (+, -, *, /)
  • (Правильный ответ) функцией высшего порядка называется такая функция (метод) класса, у которой один или несколько аргументов принадлежат к функциональному типу

В каком фрагменте возникнет ошибка:

  • (Правильный ответ) sbyte sb1=1, sb2= 2, sb3 = sb1+ sb2
  • ulong ul1 =1, ul2= 2, ul3 = ul1 + ul2
  • int x=5, y; if(x>4) y=x
  • int x; if (5 >4) x= 4

Правда ли, что:

  • выполнение метода Assert всегда прерывает выполнение программы
  • (Правильный ответ) даже при появлении исключительной ситуации программа может завершить свою работу в полном соответствии со своими спецификациями
  • после перехвата исключительной ситуации catch-блоком и исправления ошибки управление возвращается в точку возникновения исключительной ситуации для продолжения нормального процесса вычислений

В родительском классе описан метод public void M(int x) {}. Какие объявления в классе потомке вызовут ошибки или предупреждения на этапе компиляции?

  • private new void M(int x){}
  • (Правильный ответ) public override void M(int x) {}
  • (Правильный ответ) public new void M(int x, int y){}
  • (Правильный ответ) public void M(int x){}
  • public new void M(int x) {}

На основе универсального класса можно создавать:

  • (Правильный ответ) как родовые порождения конкретных классов, так и экземпляров класса
  • только родовые порождения экземпляров класса
  • только родовые порождения конкретных классов

Отметьте истинные высказывания:

  • (Правильный ответ) класс потомок не наследует конструкторы своего родителя
  • (Правильный ответ) класс с модификатором sealed не может иметь потомков
  • если у метода класса не задан специальный модификатор, то для него по умолчанию применяется динамическое связывание
  • класс с модификатором abstract не может иметь потомков с таким же модификатором

Дано перечисление enum TC {red, blue, yellow} и три переменных c1, c2, c3 этого класса. В результате присваиваний: с1 = TC.yellow; c2 = TC.blue; c3 = c1 | c2; переменная с3 получит значение

  • red
  • blue
  • (Правильный ответ) ни одно из этих значений
  • yellow

Если формальный аргумент метода объявлен как объект класса T, то фактический аргумент может быть:

  • любого класса
  • (Правильный ответ) класса T или класса, являющегося потомком класса T
  • класса, являющегося родителем класса T
  • только класса object
  • только класса T

Отметьте верные утверждения.

  • (Правильный ответ) класс int является структурой
  • никакие операции не определены над объектами перечислений
  • (Правильный ответ) метод ToString для объекта перечисления возвращает его значение, преобразованное в строку

Глубокое клонирование

  • (Правильный ответ) возможно
  • невозможно из-за проблемы зацикливания
  • возможно только для фиксированного уровня

Меню в формах:

  • (Правильный ответ) можно создать вручную и программно
  • создать нельзя
  • можно создать только программно
  • можно создать только вручную

В каких фрагментах не возникнет ошибка?

  • char[] s = new char[3]; s = «abc»;
  • (Правильный ответ) char[] s = new char[3] {‘b’, ‘c’, ‘d’};
  • (Правильный ответ) char[] s = new char[3];
    s = «abc».ToCharArray();

Каждое выполнение тела цикла:

  • сохраняет предусловие цикла
  • сохраняет постусловие цикла
  • сохраняет вариант цикла
  • (Правильный ответ) сохраняет инвариант цикла

Отметьте истинные высказывания:

  • класс Random позволяет получить только повторяющиеся серии случайных чисел
  • (Правильный ответ) для вызова методов класса Random нужно предварительно создать экземпляр этого класса
  • (Правильный ответ) все методы класса Math являются статическими
  • все переменные, входящие в выражение присваивания, должны быть явно инициализированы

Верно ли, что:

  • код на C# <byte b = 1; b+=1;> эквивалентен коду <byte b = 1; b = b+1;>
  • (Правильный ответ) класс Random имеет несколько конструкторов
  • (Правильный ответ) операция присваивания выполняется справа налево

Функция с побочным эффектом:

  • изменяет значения аргументов, вызываемых по значению
  • вызывается как оператор
  • возвращает значение void
  • (Правильный ответ) имеет выходные аргументы с ключевыми словами ref или out

К статическим свойствам и методам класса Array относятся:

  • (Правильный ответ) метод Copy
  • метод CopyTo
  • (Правильный ответ) метод Reverse
  • (Правильный ответ) метод BinarySearch

Все аргументы события принадлежат

  • (Правильный ответ) возможно разным классам
  • классу EventArgs, за исключением аргумента, задающего объект, зажигающий событие
  • потомку класса EventArgs за исключением аргумента, задающего объект, зажигающий событие
  • потомку класса EventArgs
  • классу EventArgs

Отметьте корректные объявления делегата – функционального класса:

  • Delegate D1 = new Delegate( void(string s)
  • public class D = delegate void(string s)
  • (Правильный ответ) delegate int T(int x1, ref int x2)
  • public delegate T1(int x)
  • (Правильный ответ) public delegate void D2 (string s)

Правда ли, что:

  • если формальный аргумент метода принадлежит классу object, то фактический аргумент не может быть массивом
  • (Правильный ответ) допустимо присваивание x=e; (передача аргументов в процедуру), где x и e – это массивы разных классов
  • (Правильный ответ) методы класса Array позволяют закрыть его на время обработки, запрещая его модификацию другим потоком

Отметьте истинные высказывания:

  • клиенту доступны все методы поставщика
  • (Правильный ответ) абстрактный класс может иметь полностью реализованный метод
  • наследнику доступны все методы предков
  • (Правильный ответ) объект наследника «является» объектом родителя
  • (Правильный ответ) вызов конструктора приводит к вызову конструкторов всех предков класса

Решение – это:

  • (Правильный ответ) модуль, содержащий проекты и другие ресурсы
  • специальный компонент проекта
  • специальный тип проекта
  • стартовый проект на языке C#

Правда ли, что:

  • (Правильный ответ) от типов фактических аргументов зависит, какой из перегруженных методов будет вызван
  • явные преобразования всегда безопасны
  • (Правильный ответ) неявные преобразования выполняются автоматически

Правда ли, что:

  • (Правильный ответ) в языке C# возможно объявить переменную типа char*
  • (Правильный ответ) метод IndexOf класса Array применим к строкам
  • (Правильный ответ) массив char[] позволяет работать со строкой постоянной длины

Метод можно описать на уровне:

  • решения
  • (Правильный ответ) класса
  • пространства имен
  • проекта

Операции упаковки и распаковки (boxing, unboxing)

  • (Правильный ответ) преобразуют объекты значимого типа в ссылочный и обратно
  • обе операции выполняются автоматически, не требуя явного задания преобразования типов
  • задают преобразование строк из кодировки Unicode в кодировку ASCII и обратно

Правда ли, что:

  • (Правильный ответ) каждому элементу управления формы соответствует поле класса, задающего форму
  • (Правильный ответ) при открытии формы методом ShowDialog она появляется как модальное окно
  • (Правильный ответ) каждая проектируемая форма является экземпляром отдельного класса – наследника класса Form

Отметьте истинное высказывание:

  • если метод класса А объявлен с модификатором virtual, то для него применяется статическое связывание
  • у класса может быть только один непосредственный потомок
  • (Правильный ответ) в проектах на C# контроль типов выполняется на этапе компиляции
  • класс называется абстрактным, если он не вводит собственных полей данных
  • у класса может быть несколько непосредственных родительских классов

Для выделения из текста подстроки, состоящей из трех символов, в которой первый и третий символы являются буквами т или к, а второй символ произвольной буквой кириллицы в нижнем регистре, следует использовать шаблон:

  • (Правильный ответ) @»[т|к][а-я][т|к]»
  • @»[т|к]?[т|к]»
  • @»т|к.т|k»

Пусть процедура ItWorks имеет следующий заголовок:
public void ItWorks(int[] A). Какой массив может быть передан ей в качестве аргумента?

  • string[] s
  • Person[] p; (Person – класс, определенный пользователем).
  • byte[] y
  • (Правильный ответ) int[] x

Правда ли, что:

  • (Правильный ответ) в C# многомерный массив и массив массивов – это два разных вида массивов
  • (Правильный ответ) константные массивы можно использовать только при инициализации массивов
  • (Правильный ответ) в процедуре, которой передан массив в качестве аргумента, можно определить все характеристики этого массива

Отметьте правильное высказывание:

  • (Правильный ответ) аргументы в методе Format позволяют задать ссылку и способ форматирования объектов, вставляемых в строку
  • операция (s+s1) определена только над строками, содержащими числа
  • эквивалентность строк (s ==s1) означает совпадение ссылок s и s1
  • получить i-й символ строки, используя операцию взятия индекса s[i], недопустимо
  • у класса string нет статических методов

Правда ли, что:

  • (Правильный ответ) выражение C# может обладать побочным эффектом
  • вычисление выражения ведется слева направо, начиная с самой левой операции
  • (Правильный ответ) операция сложения не определена для операндов типа short

Отметьте истинные высказывания

  • объявления int[] и double[] задают один и тот же класс-массив
  • в массивы C# можно добавлять и удалять элементы
  • (Правильный ответ) элементы массива доступны для чтения и записи
  • (Правильный ответ) если у метода формальный аргумент является массивом, то его можно вызывать по значению, опуская описатели ref или out, даже если его элементы меняются в теле метода, но не меняется сам массив (ссылка)

Перечисление – это

  • абстрактный класс
  • (Правильный ответ) класс без собственных полей
  • (Правильный ответ) класс без собственных методов

Атрибут условной компиляции Conditional:

  • в качестве аргумента принимает выражение над константами условной компиляции
  • может задаваться для метода и отдельного оператора
  • (Правильный ответ) в качестве аргумента принимает только константу условной компиляции
  • (Правильный ответ) может задаваться только для метода
  • может задаваться для метода и класса

Отметьте истинные высказывания:

  • (Правильный ответ) существует неявное преобразование переменных арифметического типа в объекты
  • (Правильный ответ) возможно явное преобразование объектов в переменные арифметического типа
  • (Правильный ответ) переменная арифметического типа в определенном контексте воспринимается как объект
  • существует неявное преобразование объектов в переменные арифметического типа

Укажите истинные высказывания:

  • (Правильный ответ) операции упаковки и распаковки могут выполняться при замене формальных аргументов метода на фактические аргументы
  • (Правильный ответ) присваивание может быть ссылочным или значимым в зависимости от типа цели
  • (Правильный ответ) целью называется левая часть оператора присваивания, а также формальный аргумент при передаче фактического аргумента в процедуру или функцию в момент вызова

Преобразования между значимыми и ссылочными типами

  • должны быть явными
  • (Правильный ответ) используют операции boxing и unboxing
  • (Правильный ответ) могут быть неявными
  • всегда допустимы
  • никогда не допустимы

Правда ли, что:

  • (Правильный ответ) обработчику события передаются входные аргументы, характеризующие событие, а он может передать объекту, создавшему событие, выходные аргументы
  • класс, обрабатывающий события, может отсоединить обработчики событий других классов, чтобы они не мешали его работе
  • (Правильный ответ) делегат, задающий тип события, может иметь произвольную сигнатуру

Отметьте правильные объявления:

  • (Правильный ответ) char[] e = new char[4]{‘a’, ‘b’, ‘c’, ‘d’};
  • (Правильный ответ) char f1;
  • int n = 4; char[] g = new char[n]{‘a’,’b’,’c’,’d’};

Метод Assert

  • заменяет механизм исключений
  • (Правильный ответ) при нарушении утверждения открывает специальное диалоговое окно
  • (Правильный ответ) позволяет контролировать корректность выполнения вычислений

Отметьте истинные высказывания:

  • только процедуры являются методами класса
  • формальный аргумент метода может быть выражением
  • (Правильный ответ) перегруженными называются методы с одинаковыми именами, но с разной сигнатурой
  • (Правильный ответ) ключевые слова ref и out являются частью сигнатуры метода

Пусть x – объект класса int[]. В вызове x.M роль M может играть:

  • (Правильный ответ) метод CopyTo
  • (Правильный ответ) свойство Length
  • (Правильный ответ) метод GetLength

Какие из трех образцов: @»\s*[а-я]+\s», @»[А-Яа-я]+», @»\s[А-Яа-я]+\s» включат слово «папа» в результат найденного соответствия при поиске в строке «папа мама и я»:

  • (Правильный ответ) 1-й и 2-й
  • все три образца
  • 2-й и 3-й
  • ни один из образцов

Отметьте истинные утверждения:

  • невыполнение утверждения Assert приводит к выбрасыванию исключения
  • (Правильный ответ) для каждого проекта создаются по умолчанию две конфигурации — Debug и Release
  • схема обработки исключений в C# – это схема с возобновлением
  • блок finally выполняется только, если в охраняемом блоке выброшено исключение
  • (Правильный ответ) непрерывность программной системы означает, что малым изменениям спецификации соответствуют малые изменения программного текста

Отметьте истинные высказывания:

  • (Правильный ответ) делегаты могут иметь родовые параметры
  • (Правильный ответ) родовые параметры универсального класса могут задаваться как на уровне класса, так и на уровне методов
  • наследник универсального класса всегда универсален
  • класс без родовых параметров может быть наследником универсального интерфейса
  • для универсального класса не может указываться атрибут сериализации

Выберите верные высказывания:

  • (Правильный ответ) исключения являются нормальным способом уведомления об ошибках, возникающих в процессе выполнения программы
  • (Правильный ответ) семантика присваивания для ссылочных и значимых типов различна
  • преобразование из типа byte в тип int относится к явным преобразованиям

Правда ли, что:

  • емкость буфера, отводимой строке класса StringBuilder всегда равна 1Кб
  • (Правильный ответ)