Все тесты предмета

Ответы на тесты Введение в объектно-ориентированное программирование.ои(dor)_211115

Вопросы и варианты доступны бесплатно. 27 ответов доступны бесплатно — откройте их кнопкой ниже. Полный набор — в личном кабинете на 7 дней.

90 вопросов 1 тест в одном предмете Доступ 7 дней
Содержание предмета

Бесплатные ответы на тесты по предмету «Введение в объектно-ориентированное программирование» — Синергия и МТИ

Вопрос 1Ответ открыт бесплатно

Модификаторы доступа являются ключевыми слова, которые задают параметры доступа для классов, методов и прочих элементов в …

  1. … объектно-ориентированных языках✓ Правильный ответ
  2. … функциональных языках
  3. … процедурных языках
✓ Правильный ответ

… объектно-ориентированных языках

Вопрос 2

В определении класса члены класса с ключевым словом private доступны:

  1. любой функции программы
  2. в случае, если вам известен пароль
  3. методам этого класса
Вопрос 3

Методу класса всегда доступны данные:

  1. объекта, членом которого он является
  2. класса, членом которого он является
  3. любого объекта класса, членом которого он является
Вопрос 4

Шаблон для создания объектов, обеспечивающий начальные значения состояний: инициализация полей-переменных и реализация поведения функций или методов – это …

  1. класс
  2. объект
  3. метод
Вопрос 5

Структурированная переменная, содержащая всю информацию о некотором физическом предмете или реализуемом в программе понятии – это …

  1. класс
  2. объект
  3. метод
Вопрос 6Ответ открыт бесплатно

Метод программирования, идея которого была основана на представление программы, как совокупность объектов – это…

  1. объектно-ориентированное программирование✓ Правильный ответ
  2. структурное программирование
  3. процедурное программирование
✓ Правильный ответ

объектно-ориентированное программирование

Вопрос 7

Установите соответствие между терминами и определениями:

  1. полиморфизм
  2. инкапсуляция
  3. абстрагирование
  4. наследование
  5. метод направлен на определение точки, где единое управление лучше разделить, или наоборот, собрать воедино разделённые управления
  6. принцип быстрой и надёжной организации своей иерархической управляемости
  7. принцип, в котором учитывается все самое важное в предмете, для моделирования и решения конкретной задачи
  8. принцип создания класса, на базе уже существующего, при этом, у нас есть возможность пользоваться функционалом (свойствами и методамбазового
Вопрос 8

Установите соответствие между открытиями и их создателями:

  1. первая программа для аналитической машины
  2. аналитическая машина
  3. ткацкий станок с перфокартами
  4. Ада Августа Лавлейс
  5. Чарльз Беббидж
  6. Жозеф Мари Жаккар
Вопрос 9

Установите соответствия между языками и видами программирования.

  1. С++
  2. 1C
  3. Haskell
  4. объектно-ориентированное программирование
  5. процедурное программирование
  6. функциональное программирование
Вопрос 10Ответ открыт бесплатно

Проставьте открытия в программировании в исторической последовательности:

  1. ткацкий станок с перфокартами✓ Правильный ответ
  2. аналитическая машина✓ Правильный ответ
  3. первая программа для аналитической машины✓ Правильный ответ
  4. объектно-ориентированное программирование✓ Правильный ответ
✓ Правильный ответ

ткацкий станок с перфокартами ; аналитическая машина ; первая программа для аналитической машины ; объектно-ориентированное программирование

Вопрос 11

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

  1. C++
  2. Simula
  3. Java
  4. Python
Вопрос 12

Проставьте историческую последовательность: как после появления объектно-ориентированного программирования развивалось это направление:

  1. компонентное программирование
  2. прототипно-ориентированное программирование
  3. класс-ориентированное программирование
Вопрос 13Ответ открыт бесплатно

Предсказать результат следующей программы:

  1. на экран выведется «C»✓ Правильный ответ
  2. на экран выведется строка «Compiler Error», т.к. компилятор увидит ошибку в строке 1
  3. на экран выведется «B»
  4. на экран выведется строка «Garbage Value», т.к. компилятор не сможет запустить конструктор
✓ Правильный ответ

на экран выведется «C»

Вопрос 14

Представлен код программы. Какой результат выполнения?

  1. на экран выведется «Garbage Values»
  2. на экран ничего не выведется
  3. на экран выведется «Compiler Error in line cout
  4. на экран выведется «Compiler Error in line cout
Вопрос 15

Перед Вами код. Опишите его работу.

  1. в этом классе два скрытых поля – health и ammo, получить значения которых извне можно с помощью методов get_health() и get_ammo()
  2. в этом классе четыре скрытых поля – int x, int y, int scale, int position, получить значения которых извне, можно с помощью методов void draw
  3. в этом классе одно скрытое поле – health, получить значения которых извне, можно с помощью метода int get_ammo()
Вопрос 16Ответ открыт бесплатно

Специальная функция класса, которая вызывается при создании нового объекта этого класса и предоставляет возможность инициализировать объекты во время их создания и гарантировать, что все данные члены будут иметь корректные значения это …

  1. конструктор✓ Правильный ответ
  2. … деструктор
  3. … процедура
✓ Правильный ответ

конструктор

Вопрос 17

Специальный метод без параметров, имя которого состоит из символа ~ и имени класса это …

  1. … конструктор
  2. … деструктор
  3. … процедура
Вопрос 18

Конструктор копирования должен иметь в качестве параметра ссылку, потому что …

  1. иначе при передаче параметра по значению конструктор будет вызываться рекурсивно
  2. функция-член класса может иметь в качестве параметра только ссылку
  3. переменная, передаваемая по ссылке, может быть изменена
Вопрос 19

Конструкторы подчиняются тем же правилам относительно типов параметров, что и …

  1. перегруженные функции
  2. деструкторы
  3. методы
Вопрос 20Ответ открыт бесплатно

При выполнении операции присваивания между существующими объектами одного типа вызывается …

  1. конструктор по умолчанию
  2. конструктор копирования
  3. в этом случае никакой конструктор не вызывается✓ Правильный ответ
✓ Правильный ответ

в этом случае никакой конструктор не вызывается

Вопрос 21

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

  1. получения сведений о проблемах, возникших в программном коде
  2. того, чтобы узнать, какие в классах могут быть конструкторы
  3. обеспечения выбора подходящих атрибутов класса
Вопрос 22

При описании нового объекта с инициализацией другим объектом этого же типа вызывается …

  1. конструктор по умолчанию
  2. конструктор копирования
  3. конструктор с параметром-объектом
Вопрос 23Ответ открыт бесплатно

Установите последовательность создания конструктора:

  1. прописывается конструктор✓ Правильный ответ
  2. указываются аргументы✓ Правильный ответ
  3. запускается компиляция✓ Правильный ответ
✓ Правильный ответ

прописывается конструктор ; указываются аргументы ; запускается компиляция

Вопрос 24

Если есть два класса, один из которых базовый, а другой - унаследованный от базового, то последовательность вызовов следующая:

  1. вызов конструктора базового класса
  2. вызов конструктора унаследованного класса
  3. компиляция
Вопрос 25

Конструктор — это особый тип метода класса, который автоматически вызывается при создании объекта этого же класса. Деструктор — это специальный тип метода класса, который выполняется при удалении объекта класса. В то время, как конструкторы предназначены для инициализации класса, деструкторы предназначены для очистки памяти после него. Т.о., опишите код программы:

  1. в коде описывается класс «date», он имеет переменные день и год. Здесь применен деструктор date(). Он удаляет с динамической памяти объект «month»
  2. в коде описывается класс «day» и «year», данные имеют открытый тип. Здесь применен конструктор date()
  3. в коде описывается класс «date», он имеет переменные месяц и год. Здесь применен деструктор date(). Он удаляет с динамической памяти объект «month»
Вопрос 26Ответ открыт бесплатно

Предсказать результат следующей программы:

  1. на экран выведется «0», т.к. деструктор удалит все значения переменной
  2. на экран выведется «Compiler Error in line cout✓ Правильный ответ
  3. на экран выведется «Compiler Error in line cout✓ Правильный ответ
✓ Правильный ответ

на экран выведется «Compiler Error in line cout

Вопрос 27

Перед Вами код. Опишите его результат.

  1. код выведет на экран Hello world;. Согласно стандарту, выбор одной из перегруженных функций осуществляется по правилу «Наиболее подходящей функции»
  2. код выведет на экран int:1 bool:1 bool:1. . "Hello world" имеет тип const char* и приведение его к POD-типу bool целесообразней чем к типу std::string
  3. код ничего не выведет на экран. Приведения типов нет
Вопрос 28

Обычно, компилятор автоматически создает конструктор копирования для каждого класса, но в некоторых случаях, программист создает конструктор копирования, называемый:

  1. … явным конструктором копирования
  2. … неявным конструктором копирования
  3. … конструктором по умолчанию
Вопрос 29

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

  1. конструктор копирования
  2. конструктор по умолчанию
  3. именованный конструктор
Вопрос 30Ответ открыт бесплатно

Конструктор копирования должен иметь в качестве параметра ссылку, потому что …

  1. иначе, при передаче параметра по значению конструктор будет вызываться рекурсивно✓ Правильный ответ
  2. функция-член класса может иметь в качестве параметра только ссылку
  3. переменная, передаваемая по ссылке, может быть изменена
✓ Правильный ответ

иначе, при передаче параметра по значению конструктор будет вызываться рекурсивно

Вопрос 31

Правило трёх (также известное как «Закон Большой Тройки» или «Большая Тройка») - это правило в C++, гласящее, что если класс или структура определяет один из следующих методов, то они должны явным образом определить все три метода:

  1. деструкторы, конструкторы, оператор присваивания
  2. деструкторы, методы, функции
  3. конструкторы, классы, объекты
Вопрос 32

Особый вид оператора присваивания, используемый для присваивания объектов одного класса друг другу …

  1. функция
  2. оператор сложения
  3. оператор присваивания
Вопрос 33Ответ открыт бесплатно

Операторы присваивания хранят значение в объекте, указанном левым операндом. Существует два вида операций присваивания:

  1. простое присваивание, множественное присваивание
  2. логическое присваивание, составное присваивание
  3. простое присваивание, составное присваивание✓ Правильный ответ
✓ Правильный ответ

простое присваивание, составное присваивание

Вопрос 34

Установите соответствие между операторами и их значениями:

  1. =
  2. *=
  3. /=
  4. сохранение значения второго операнда в объект, указанный первым операндом
  5. умножение значения первого операнда на значение второго операнда, сохранение результата в объект, указанный первым операндом
  6. деление значения первого операнда на значение второго операнда, сохранение результата в объект, указанный первым операндом
Вопрос 35

Установите соответствие между операторами и их значениями

  1. +=
  2. -=
  3. сложение значения первого операнда со значением второго операнда, сохранение результата в объект, указанный первым операндом
  4. вычитание значения второго операнда из значения первого операнда, сохранение результата в объект, указанный первым операндом
  5. сдвиг значения первого операнда влево на количество битов, заданное значением второго операнда, сохранение результата в объект, указанный первым операндом
Вопрос 36Ответ открыт бесплатно

Установите соответствие между операторами и их значениями

  1. ^=
  2. &=
  3. >>=
  4. выполнение операции побитового исключающего ИЛИ для значений первого и второго операндов, сохранение результата в объект, указанный первым операндом
  5. выполнение операции побитового И для значений первого и второго операндов, сохранение результата в объект, указанный первым операндом
  6. сдвиг значения первого операнда вправо на количество битов, заданное значением второго операнда; сохранение результата в объект, указанный первым операндом
✓ Правильный ответ

^= = выполнение операции побитового исключающего ИЛИ для значений первого и второго операндов, сохранение результата в объект, указанный первым операндом ; &= = выполнение операции побитового И для значений первого и второго операндов, сохранение результата в объект, указанный первым операндом ; >>= = сдвиг значения первого операнда вправо на количество битов, заданное значением второго операнда; сохранение результата в объект, указанный первым операндом

Вопрос 37

Проставьте последовательность алгоритма процесса присваивания

  1. вычислить левостороннее значение первого операнда. На этом этапе становится известным местонахождение целевого объекта, приёмника нового значения
  2. вычислить правостороннее значение второго операнда. Этот этап может быть сколь угодно большим и включать другие операторы, в том числе оператор присвоения
  3. присвоить вычисленное правостороннее значение левостороннему значению. Во-первых, при конфликте типов должно быть осуществлено их приведение (либо, выдано сообщение об ошибке, ввиду его невозможности). Во-вторых, собственно присваивания значения в современных языках программирования может быть подменено, может включать не только перенос значений ячеек памяти
  4. возвратить вычисленное правостороннее значение, как результат выполнения операции
Вопрос 38

Посмотрите код и напишите алгоритм его создания:

  1. перегрузка оператора присваивания
  2. проверка на самоприсваивание
  3. выполнение копирования значений
  4. возвращаем текущий объект
Вопрос 39

Посмотрите код и напишите алгоритм его создания

  1. определение переменных
  2. вывод на экран
  3. увеличение значения
  4. вывод на экран значений с1, с2
Вопрос 40Ответ открыт бесплатно

Описать работу кода программы:

  1. задан класс string, в котором будут описаны алгоритмы обработки строковой информации. В данном классе описано два конструктора для возможности создания пустой и некоторой начальной строк. Кроме того, задано два метода: GetString() и SetString(), через которые осуществляется доступ к массиву buff[], являющимся частным элементом класса. Представленный класс описывает минимальный набор функций для работы со строками. С помощью него можно задать какую-либо строку и получить ее, например, для вывода на экран✓ Правильный ответ
  2. задан класс string, в котором будут описаны алгоритмы обработки строковой информации. В данном классе есть один конструктор для возможности создания пустой строки. Кроме того, задано два метода: GetString() и SetString(), через которые осуществляется доступ к массиву buff[], являющимся частным элементом класса. Представленный класс описывает минимальный набор функций для работы со строками. С помощью него можно задать какую-либо строку и получить ее, например, для вывода на экран
  3. задан класс string, в котором будут описаны алгоритмы обработки строковой информации. В классе описаны конструкторы для возможности создания пустой и некоторой начальной строк. Кроме того, задан один метод: GetString(), через который осуществляется доступ к массиву buff[], являющимся частным элементом класса
✓ Правильный ответ

задан класс string, в котором будут описаны алгоритмы обработки строковой информации. В данном классе описано два конструктора для возможности создания пустой и некоторой начальной строк. Кроме того, задано два метода: GetString() и SetString(), через которые осуществляется доступ к массиву buff[], являющимся частным элементом класса. Представленный класс описывает минимальный набор функций для работы со строками. С помощью него можно задать какую-либо строку и получить ее, например, для вывода на экран

Вопрос 41

Описать работу кода программы:

  1. здесь функция operator++() создает новый объект класса Counter, для использования его в качестве возвращаемого значения. Далее, функция возвращает объект temp. Получаем ожидаемый эффект. Выражение типа ++c1 теперь возвращает значение, которое можно использовать в других выражениях, таких, как: c2 = ++c1
  2. здесь функция operator++() создает новый объект класса Counter, названный temp, для использования его в качестве возвращаемого значения. Она сначала увеличивает переменную count в своем объекте, а затем создает объект temp и присваивает ему значение count, то же значение, что и в собственном объекте. В конце функция возвращает объект temp. Получаем ожидаемый эффект. Выражение типа ++c1 теперь возвращает значение, которое можно использовать в других выражениях, таких, как: c2 = ++c1
  3. здесь функция operator++() создает новый объект класса Counter, названный temp, для использования его в качестве возвращаемого значения. Она сначала увеличивает переменную count в своем объекте, а затем создает объект temp и присваивает ему значение count, то же значение, что и в собственном объекте. В конце функция возвращает объект temp. Получаем ожидаемый эффект. Выражение типа ++c2 теперь возвращает значение, которое можно использовать в других выражениях, таких, как: c1 = ++c2
Вопрос 42

Операция присваивания копированием – это особый вид операции присваивания, используемый для присваивания объектов одного класса друг другу. Является одним из особых членов-функций и генерируется автоматически компилятором в случае, если нет явного объявления программистом. Код, сгенерированный компилятором и выполняет побитовое копирование. Операция присваивания копированием отличается от конструктора копирования тем, что должна очищать члены-данные цели присваивания (и правильно обрабатывать самоприсваивание), тогда как конструктор копирования присваивает значения неинициализированным членам-данным. Опишите работу кода программы:

  1. для начала защищаем от неправильного самоприсваивания, затем выделяем «новую» память и копируем элементы. Далее, освобождаем «старую» память и в конце присваиваем значения в «новой» памяти объекту
  2. для начала используем оператор выбора члена для выбора члена структуры. Затем выделяем новый массив данных, далее удаляем массив, а затем создаем новый
  3. для начала объявляем переменную типа класса, определяем функцию член. Затем связываем методы с объектами класса, далее возвращаем значения в «новой» памяти объекту
Вопрос 43Ответ открыт бесплатно

Предположим, что класс Derv является частным производным класса Base. Мы определяем объект класса Derv, расположенный в функции main(). Через него мы можем получить доступ к:

  1. членам класса Derv, объявленным как public✓ Правильный ответ
  2. членам класса Derv, объявленным как protected
  3. членам класса Derv, объявленным как private
  4. членам класса Base, объявленным как public
✓ Правильный ответ

членам класса Derv, объявленным как public

Вопрос 44

Иерархия классов …

  1. показывает те же взаимоотношения, что и схема организации
  2. описывает взаимоотношение типа «имеет»
  3. описывает взаимоотношения типа «является частью»
  4. показывает те же взаимоотношения, что и наследственное дерево
Вопрос 45

Использование виртуальных функций для полиморфной обработки родственных объектов относят к:

  1. элементам методологии наследования в ООП
  2. элементам абстрагирования
  3. элементам инкапсуляции данных
Вопрос 46Ответ открыт бесплатно

Процесс создания новых классов, называемых наследниками или производными классами, из уже существующих или базовых классов– это …

  1. наследование✓ Правильный ответ
  2. полиморфизм
  3. абстрагирование
✓ Правильный ответ

наследование

Вопрос 47

Роль наследования в объектно-ориентированном программировании заключается в:

  1. сохранении информации и обеспечении перегрузок
  2. сокращении размера кода, упрощении связи между элементами программы
  3. организации иерархической управляемости
Вопрос 48

Синтаксис наследования выглядит так:

  1. class имя: тип_наследования имя_базового_класса {// программный код производного класса}
  2. classname имя: имя_базового_класса {// программный код производного класса}
  3. class имя: тип_наследования {// программный код производного класса}
Вопрос 49

Основное преимущество наследования – это возможность повторного использования кода. Укажите последовательность выполнения представленного кода:

  1. указываются значения в классе Child
  2. прописываются доступы к к члену класса Parent
  3. класс Parent описывается
  4. прописывается что класс Child наследуется от Parent
Вопрос 50Ответ открыт бесплатно

Укажите последовательность написания кода:

  1. пишем значение переменной количества часов преподавателя✓ Правильный ответ
  2. пишем фамилию имя отчество учителя✓ Правильный ответ
  3. пишем вывод фамилии имени отчества учителя✓ Правильный ответ
  4. пишем вывод «Количества часов:»✓ Правильный ответ
✓ Правильный ответ

пишем значение переменной количества часов преподавателя ; пишем фамилию имя отчество учителя ; пишем вывод фамилии имени отчества учителя ; пишем вывод «Количества часов:»

Вопрос 51

Как решить вопрос о том, какой из спецификаторов использовать при наследовании? В большинстве случаев, производный класс представляет собой улучшенную или более специализированную версию базового класса. В случае, когда объект производного класса предоставляет доступ как к общим методам базового класса, так и к более специализированным методам своего класса, имеет смысл воспользоваться общим наследованием. Проставьте последовательность создания кода простого наследования:

  1. в классе были определены только те члены, которые являются общими для всех объектов этого класса
  2. ввели изменения, что каждый человек (независимо от пола, профессии и т.д.) имеет имя и возраст
  3. для облегчения сортировки мы добавили в класс метод getName(), дающий доступ к именам из функции
Вопрос 52

Ключевыми элементами методологии объектно-ориентированного проектирования, связанного с наследованием относят: 1) выбор надлежащей совокупности типов; 2) проектирование взаимосвязей между типами и применение наследования для использования общего кода; 3) использование виртуальных функций для полиморфной обработки родственных объектов. Опишите код программы, содержащую наследование:

  1. в коде описано открытое наследование. В результате данные из базового класса остаются в производном классе
  2. в коде описано закрытое наследование. В результате данные из производного класса закрыты от данных базового класса
  3. в коде описано защищенное наследование. В результате данные из базового класса защищены от данных производного класса
Вопрос 53Ответ открыт бесплатно

Важный момент при наследовании - это перегруженные функции - методы класса-потомка. Если в классе-родителе и в его классах-потомках встречаются методы с одинаковым именем, то для объектов класса-потомка, компилятор будет использовать методы именно класса-потомка. Перегруженные методы класса-потомка, могут вызывать методы класса-родителя. В таком случае, важно помнить, что необходимо правильно определить область действия с помощью оператора «::». Иначе, компилятор воспримет это, как вызов функцией самой себя. Наглядно, если бы мы перегрузили в классе функцию - это выглядело бы так. Опишите, что указывает данная запись кода:

  1. эта запись указывает компилятору — если значение FirstClass не равно нулю — вызвать метод show_value() класса value. А он, в свою очередь, отобразит это значение на экране
  2. эта запись указывает компилятору — если значение value не равно нулю — вызвать метод FirstClass класса show_value(). А он, в свою очередь, отобразит это значение на экране
  3. эта запись указывает компилятору — если значение value не равно нулю — вызвать метод show_value() класса FirstClass. А он, в свою очередь, отобразит это значение на экране✓ Правильный ответ
✓ Правильный ответ

эта запись указывает компилятору — если значение value не равно нулю — вызвать метод show_value() класса FirstClass. А он, в свою очередь, отобразит это значение на экране

Вопрос 54

Роль наследования в ООП такая же, как у функций в процедурном языке программирования, т.е. сократить размер кода и упростить связи между элементами программы. В определенных ситуациях могут появиться некоторые проблемы, связанные со множественным наследованием. Рассмотрим наиболее общую проблему. Допустим, что в обоих базовых классах существуют методы с одинаковыми именами, а в производном классе метода с таким именем нет. Рассмотрим пример. Как в этом случае объект производного класса определит, какой из методов базовых классов выбрать?

  1. проблема решается путем использования оператора разрешения, определяющего класс, в котором находится метод. Таким образом, «ObjC.A::show ( )» направляет нас к версии метода show(), принадлежащей классу A, а «objC.B::show ( )» направляет нас к методу, принадлежащему классу B, Б
  2. проблема решается путем использования перегрузки функций. Таким образом, «ObjC.A::show ( )» направляет нас к версии метода show(), принадлежащей классу С, а «objC.B::show ( )» направляет нас к методу, принадлежащему классу A
  3. проблема решается путем использования оператора наследования. Таким образом, «ObjC.A::show ( )» направляет нас к версии метода show(), принадлежащей классу B, а «objC.B::show ( )» направляет нас к методу, принадлежащему классу C
Вопрос 55

ключевое слово virtual используется …

  1. … для использования функции как виртуальной
  2. … для определения функции как виртуальной
  3. … для объявления функции как виртуальной
Вопрос 56Ответ открыт бесплатно

Когда используется таблица виртуальных функций?

  1. … при обработке виртуальных функций добавляют к каждому объекту скрытый элемент✓ Правильный ответ
  2. … при работе с виртуальными методами выделяют указатели
  3. … при указании на объект
✓ Правильный ответ

… при обработке виртуальных функций добавляют к каждому объекту скрытый элемент

Вопрос 57

Что реализуется через механизмы перегрузки (функций и операций), виртуальные функции и шаблоны?

  1. полиморфизм
  2. абстрагирование
  3. инкапсуляция
Вопрос 58

Определение функции, в которой типу обрабатываемых данных присвоено условное обозначение - это...

  1. прототип функции
  2. шаблон функции
  3. виртуальный метод
Вопрос 59

Указателем базового класса можно воспользоваться для …

  1. определения виртуального метода
  2. указания на объект производного класса
  3. защиты объекта производного класса
Вопрос 60Ответ открыт бесплатно

Множественное наследование – это наследование, при котором создание производного класса основывается на …

  1. использовании нескольких непосредственных базовых классов✓ Правильный ответ
  2. использовании одного базового класса
  3. использовании нескольких непосредственных виртуальных классов
✓ Правильный ответ

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

Вопрос 61

Опишите процесс выполнения конструкторов при порождении из нескольких классов поэтапно.

  1. конструктор порожденного класса
  2. конструкторы членов, являющихся объектами класса
  3. конструкторы базовых классов в порядке их задания
Вопрос 62

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

  1. вызов конструктора базового класса
  2. вызов конструктора унаследованного класса
  3. компиляция
Вопрос 63Ответ открыт бесплатно

Проставьте последовательность процесса написания представленного кода:

  1. создаем объект c класса C✓ Правильный ответ
  2. указываем rParent ссылаться на часть A объекта c✓ Правильный ответ
  3. вызываем метод rParent.getName()✓ Правильный ответ
  4. вызываем rParent.GetName(), что приводит к вызову A::getName()✓ Правильный ответ
✓ Правильный ответ

создаем объект c класса C ; указываем rParent ссылаться на часть A объекта c ; вызываем метод rParent.getName() ; вызываем rParent.GetName(), что приводит к вызову A::getName()

Вопрос 64

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

  1. в данном примере описывается одна версия функции show().Функция не возвращает результат. В зависимости от того, передан ли функции аргумент при вызове, отображается сообщение о том, что у функции нет аргумента, или сообщение с указанием значения аргумента
  2. в данном примере описывается одна версия функции show(). У функции текстовый аргумент. В зависимости от того, передан ли функции аргумент при вызове, отображается сообщение о том, что у функции нет аргумента, или сообщение с указанием значения аргумента
  3. в данном примере описывается две версии функции show(). В одном случае функция описана без аргументов. Во втором случае у функции текстовый аргумент. Функция не возвращает результат в обоих случаях. В зависимости от того, передан ли функции аргумент при вызове, отображается сообщение о том, что у функции нет аргумента, или сообщение с указанием значения аргумента
Вопрос 65

При множественном наследовании может сложиться ситуация, когда один и тот же базовый класс наследуется (через разные цепочки наследования) в производном классе несколько раз. Обычно, в этом ничего хорошего нет, т.к. нередко такие ситуации приводят к ошибкам. С другой стороны, совсем избежать подобных ситуаций бывает проблематично. Выход состоит в том, чтобы при создании цепочки наследования, использовать виртуальные базовые классы. Перед Вами код. Выберите, какой будет результат кода.

  1. Base NonVirtual called. Derived Virtual called
  2. Base NonVirtual called. Base Virtual called. Base NonVirtual called
  3. Base NonVirtual called. Base Virtual called. Base NonVirtual called. Derived Virtual called
Вопрос 66Ответ открыт бесплатно

Виртуальные методы – это один из важнейших приёмов реализации полиморфизма. Они позволяют создавать общий код, который может работать как с объектами базового класса, так и с объектами любого его класса-наследника. При этом, базовый класс определяет способ работы с объектами, и любые его наследники могут предоставлять конкретную реализацию этого способа. Общий шаблон объявления чисто виртуального метода следующий:

  1. virtual тип_результата имя_метода(список_аргументов)=0; Метод в классе можно не описывать, а только объявить. Другими словами, в классе допустимо указать тип результата метода, его название и аргументы, а программный код тела метода не указывать. Такие методы называются чисто виртуальными и описываются с ключевым словом virtual. Заканчивается описание чисто виртуального метода знаком равенства и нулем✓ Правильный ответ
  2. virtual имя_метода(список_аргументов) Метод в классе можно не описывать, а только объявить. Другими словами, в классе допустимо указать тип результата метода, его название и аргументы, а программный код тела метода не указывать. Такие методы называются чисто виртуальными и описываются с ключевым словом virtual. Заканчивается описание чисто виртуального метода списком аргументов
  3. virtual тип_результата (список_аргументов)=0; Метод в классе можно только описать. Другими словами, в классе допустимо указать тип результата метода, программный код и аргументы. Такие методы называются чисто виртуальными и описываются с ключевым словом virtual. Заканчивается описание чисто виртуального метода знаком равенства и нулем
✓ Правильный ответ

virtual тип_результата имя_метода(список_аргументов)=0; Метод в классе можно не описывать, а только объявить. Другими словами, в классе допустимо указать тип результата метода, его название и аргументы, а программный код тела метода не указывать. Такие методы называются чисто виртуальными и описываются с ключевым словом virtual. Заканчивается описание чисто виртуального метода знаком равенства и нулем

Вопрос 67

Классы, предназначенные для хранения данных, организованных определенным образом:

  1. … контейнерные классы
  2. … классы-операторы
  3. … классы-методы
Вопрос 68

Набор согласованных обобщённых алгоритмов, контейнеров, средств доступа к их содержимому и различных вспомогательных функций в C++

  1. … библиотека типов данных
  2. … библиотека стандартных шаблонов
  3. … библиотека функций
Вопрос 69

Сущности, использующиеся для получения доступа к отдельным данным в контейнере.

  1. итераторы
  2. классы
  3. переменные
Вопрос 70Ответ открыт бесплатно

Контейнеры бывают …

  1. последовательные и ассоциативные✓ Правильный ответ
  2. простые и множественные
  3. логические и придуманные
✓ Правильный ответ

последовательные и ассоциативные

Вопрос 71

Последовательные контейнеры …

  1. обеспечивают хранение конечного количества однотипных величин в виде непрерывной последовательности
  2. обеспечивают быстрый доступ к данным по ключу
  3. обеспечивают доступ к конструкторам
Вопрос 72

Все контейнерные классы предоставляют …

  1. виртуальные методы
  2. стандартизованный интерфейс
  3. свойства функций
Вопрос 73Ответ открыт бесплатно

Проставьте порядок выполнения кода поэтапно.

  1. заменить новыми значениями✓ Правильный ответ
  2. вывести содержимое✓ Правильный ответ
  3. создать вектор✓ Правильный ответ
  4. внести данные в конец вектора✓ Правильный ответ
✓ Правильный ответ

заменить новыми значениями ; вывести содержимое ; создать вектор ; внести данные в конец вектора

Вопрос 74

Проставьте последовательность функций классов-контейнеров в языке C++

  1. создание пустого контейнера (через конструктор)
  2. удаление объекта из контейнера
  3. добавление нового объекта в контейнер
  4. доступ к сохраненным объектам
  5. просмотр количества объектов, находящихся на данный момент в контейнере
  6. очистка контейнера от всех объектов
  7. сортировка объектов/элементов (не всегда)
Вопрос 75

Пример работы с контейнером приведен ниже. В файле находится произвольное количество целых чисел. Программа считывает их в вектор и выводит на экран. Опишите последовательность кода:

  1. с помощью метода push_back число заносится в вектор, размер которого увеличивается автоматически
  2. организуется цикл до конца файла, в котором из него считывается очередное целое число
  3. для создания вектора v применяется конструктор по умолчанию
  4. записывается соответствующая специализация шаблона vector — vector
Вопрос 76Ответ открыт бесплатно

Векторы — это умные массивы. Они занимаются автоматическим размещением себя в памяти, расширением и сужением своего размера по мере вставки или удаления данных. Векторы можно использовать в какой-то мере как массивы, обращаясь к элементам, с помощью привычного оператора []. Случайный доступ выполняется очень быстро в векторах. Также, довольно быстро осуществляется добавление (или проталкиваниновых данных в конец вектора. Когда это происходит, размер вектора автоматически увеличивается для того, чтобы было куда разместить новое значение. Рассмотрим код программы. Выберете, что демонстрирует данный пример.

  1. заполнение данными методом insert(). Метод insert() имеет два параметра: будущее расположение нового элемента в контейнере и значение элемента. Прибавляем две позиции к результату выполнения метода begin(), чтобы перейти к элементу № 2 (третий элемент в контейнере, считая с нуля). Элементы от точки вставки до конца контейнера сдвигаются, чтобы было место для размещения вставляемого. Размер контейнера автоматически увеличивается на единицу
  2. для создания вектора v используется штатный конструктор вектора без параметров. Как с любыми контейнерами STL, для задания типа переменных, которые будут храниться в векторе, используется шаблонный формат (в данном случае это тип int). Мы не определяем размер контейнера, поэтому вначале он равен 0. Метод push_back() вставляет значение своего аргумента в конец вектора (конец располагается там, где находится самый большой индекс). Начало вектора (элемент с индексом 0), в отличие от списков и очередей, не может использоваться для вставки новых элементов✓ Правильный ответ
  3. если переменной main присвоить значение true, то push_back() никогда не будет удален, память никогда не будет освобождена и произойдет утечка памяти. Однако, если бы push_back() был вектором, то подобное никогда бы и не произошло, так как память освобождалась бы автоматически, при выходе push_back() из области видимости (независимо от того, выйдет ли функция раньше из области видимости или нет). Именно из-за этого, использование std::vector является более безопасным, чем динамическое выделение памяти через оператор v
✓ Правильный ответ

для создания вектора v используется штатный конструктор вектора без параметров. Как с любыми контейнерами STL, для задания типа переменных, которые будут храниться в векторе, используется шаблонный формат (в данном случае это тип int). Мы не определяем размер контейнера, поэтому вначале он равен 0. Метод push_back() вставляет значение своего аргумента в конец вектора (конец располагается там, где находится самый большой индекс). Начало вектора (элемент с индексом 0), в отличие от списков и очередей, не может использоваться для вставки новых элементов

Вопрос 77

Стек – это динамическая структура сохранения данных, которая работает по принципу «последний пришел — первый вышел» (Last-In First-Out). В стеке добавление новых элементов и удаление существующих элементов производится с одного конца, который называется вершиной стека. Организация данных с помощью стека эффективна, когда нужно реализовать: обмен данными между методами приложения с помощью параметров; синтаксический анализ разнообразных выражений. Рассмотрим пример. Выберете, что будет результатом программы:

  1. программа попросит ввести шесть любых целых чисел. Например: 9 5 2 1 5 6. Затем выведет строку, где будет указан верхний элемент стека – 6. Далее, будет предложение удаления верхнего элемента. Затем, опять будет указан новый верхний элемент стека – 5. Далее, выведется строка – «Process returned 0 (0x0) execution time: 0.010 s. Press any key to continue
  2. программа попросит ввести шесть любых целых чисел. Например: 9 5 2 1 5 6. Затем выведет строку, где будет указан верхний элемент стека – 9. Далее, будет предложение удаления верхнего элемента. Затем, опять будет указан новый верхний элемент стека – 5
  3. программа попросит ввести пять любых целых чисел. Например: 5 2 1 5 6. Затем выведет строку, где будет указан верхний элемент стека – 6. Далее, будет предложение добавления верхнего элемента. Затем, опять будет указан новый верхний элемент стека. Далее выведется строка – «Process returned 0 (0x0) execution time : 0.010 s. Press any key to continue
Вопрос 78

Для работы с очередью вам понадобится знать функции: push(), pop(), front(), back(), empty(). 1) Для добавления в очередь нового элемента нужно воспользоваться функцией — push(). В круглых скобках должно находится значение, которое мы хотим добавить. 2) Если нам понадобилось удалить первый элемент нужно оперировать функцией pop(). В круглых скобках уже ничего не нужно указывать, но по правилам, они должны присутствовать! Эти функции не нуждаются в указании аргумента: empty(), back() и front(). 3) Если вам понадобилось обратиться к первому элементу очереди, то вам понадобится функция front(). 4) Чтобы обратиться к последнему элементу в очереди, вам поможет функция back(). 5) Чтобы узнать, пуста ли очередь, нужно воспользоваться функцией empty(). Если ваша очередь пуста — возвратит true. Если в ней что-то есть — возвратит false. В коде (нижмы использовали все выше перечисленные методы. Выберете, что будет результатом программы:

  1. пользователь должен ввести 6 чисел. Затем будет указан самый первый элемент в очереди. Потом он будет удален и выведен на экран новый, первый элемент (после удаления). Далее, будет выведен на экран последний элемент в очереди
  2. пользователь должен ввести 7 чисел. Затем будет указан самый первый элемент в очереди. Потом он будет удален и выведен на экран новый, первый элемент (после удаления). Далее, строка «Очередь не пуста! и «Process returned 0 (0x0) execution time : 0.010 s. Press any key to continue»
  3. пользователь должен ввести 5 чисел. Затем будет указан самый первый элемент в очереди. Потом он будет удален и выведен на экран новый первый элемент (после удаления). Далее, строка «Очередь не пуста!»
Вопрос 79

Механизм языков программирования, предназначенный для описания реакции программы на ошибки времени выполнения и другие возможные проблемы (исключения), которые могут возникнуть при выполнении программы, и приводят к невозможности дальнейшей отработки программой её базового алгоритма – это:

  1. … обработка исключительной ситуации
  2. … конструктор копирования
  3. … вызов функции
Вопрос 80Ответ открыт бесплатно

Особый вид оператора, используемый для присваивания объектов одного класса друг другу – это…

  1. … оператор присваивания✓ Правильный ответ
  2. … оператор сложения
  3. … оператор деления
✓ Правильный ответ

… оператор присваивания

Вопрос 81

Реакция на исключительное обстоятельство, которое возникает во время работы программы - это …

  1. исключение
  2. обработка
  3. уничтожение
Вопрос 82

В C ++ функция может указывать исключения, которые она генерирует, с помощью ключевого слова:

  1. throw
  2. catch
  3. try
Вопрос 83Ответ открыт бесплатно

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

  1. простые и сложные
  2. с данными и без данных
  3. синхронные и асинхронные✓ Правильный ответ
✓ Правильный ответ

синхронные и асинхронные

Вопрос 84

Классическим примером исключительной ситуации в С++ является:

  1. целочисленное деление на ноль
  2. создание нового блока кода
  3. уменьшение памяти
Вопрос 85

Проставьте последовательность работы конструкций исключительных ситуации:

  1. catch
  2. throw
  3. try
Вопрос 86Ответ открыт бесплатно

Обработка исключений, возбужденных оператором throw, идет по следующей схеме:

  1. завершается выполнение защищенного try-блока: раскручивается стек подпрограмм, вызываются деструкторы для тех объектов, время жизни которых истекает и т.д.✓ Правильный ответ
  2. создается статическая переменная со значением, заданным в операторе throw. Она будет существовать до тех пор, пока исключение не будет обработано. Если переменная-исключение является объектом класса, при ее создании работает конструктор копирования✓ Правильный ответ
  3. выполняется поиск первого из catch-блоков, который пригоден для обработки созданного исключения✓ Правильный ответ
✓ Правильный ответ

завершается выполнение защищенного try-блока: раскручивается стек подпрограмм, вызываются деструкторы для тех объектов, время жизни которых истекает и т.д. ; создается статическая переменная со значением, заданным в операторе throw. Она будет существовать до тех пор, пока исключение не будет обработано. Если переменная-исключение является объектом класса, при ее создании работает конструктор копирования ; выполняется поиск первого из catch-блоков, который пригоден для обработки созданного исключения

Вопрос 87

Проставьте последовательность стандартных исключений в иерархии родительско-дочерних классов.

  1. std:logic_failure
  2. std:exception
  3. std:domain_error
Вопрос 88

Мы рассмотрим ситуацию создания динамического массива. В программе для обработки исключительных ситуаций создадим динамический массив. Единственная особенность программы в том, что размер создаваемого массива определяется пользователем уже в процессе выполнения программы: при запуске программы, появляется сообщение с просьбой ввести целое число, число считывается, и в соответствии со считанным значением создается динамический массив. Рассмотрим программный код. Каким будет результат, если после выполнения программы ввести отрицательное число.

  1. this application has requested the Runtime to terminate it in an unusual way. Please contact the application’s support team for more information. terminate called after throwing an instance of ‘std::bad_alloc’ what(): std::bad_alloc
  2. a part of conditional expression is always true: 0xff. babygrid.cpp 711
  3. dereferencing of the null pointer 'cond_col' might take place
Вопрос 89

В представленной программе используются throw, try и catch вместе. Результат выполнения программы следующий: We caught an int exception with value -1. Continuing our way! Опишите как работают блоки.

  1. оператор try используется для генерации исключения -1 типа int. Затем блок throw обнаруживает оператор try и перемещает его в соответствующий блок catch, который обрабатывает исключения типа int. Блок catch типа int и выводит соответствующее сообщение об ошибке
  2. оператор throw используется для генерации исключения -1 типа int. Затем блок try обнаруживает оператор throw и перемещает его в соответствующий блок catch, который обрабатывает исключения типа int. Блок catch типа int и выводит соответствующее сообщение об ошибке
  3. оператор throw определяет тип объекта для генерации исключения -1 типа int. После чего блок try удаляет оператор throw и инициирует блок catch, который обрабатывает исключения
Вопрос 90Ответ открыт бесплатно

Чтобы в блоке try сгенерировать исключительную ситуацию, нужно использовать оператор throw. Оператор throw может быть вызван внутри блока try или внутри функции, которая вызывается из блока try. Общая форма оператора throw: throw исключение; В результате выполнения оператора throw генерируется исключение некоторого типа. Это исключение должно быть обработано в блоке catch. Рассмотрим пример использования блока try…catch. Демонстрируется использование блока try…catch для обработки выражения. В данном выражении, в трех случаях может возникнуть исключительная ситуация: - корень из отрицательного числа a, если a

  1. если пользователь введет a = 5 и b = 0, то ответ ошибки будет следующим: «Division by 0»✓ Правильный ответ
  2. если пользователь введет a = 5 и b = 0, то ответ ошибки будет следующим: «Negative root»
  3. если пользователь введет a = 2 и b = 0, то ответ ошибки будет следующим: «Out of range»
✓ Правильный ответ

если пользователь введет a = 5 и b = 0, то ответ ошибки будет следующим: «Division by 0»

О материалах и доступе

Что входит в набор «Введение в объектно-ориентированное программирование.ои(dor)_211115»?

90 вопросов с вариантами из опубликованных тестов (1). Сверьте формулировки и варианты с вашим заданием перед покупкой: разные программы могут содержать разные вопросы.

Какие ответы можно посмотреть бесплатно?

Нажмите «Показать ответы бесплатно»: после завершения индикатора откроется бесплатная часть ответов. Бесплатные ответы отмечены зелёным. При нескольких правильных вариантах отмечены все варианты из ключа ответа. Остальные ответы доступны после покупки.

Как получить полный доступ?

Стоимость — 2 499 ₽. Войдите в личный кабинет и оплатите выбранный предмет. Доступ действует 7 дней; подписки и автоматических списаний нет.

Что делать, если обнаружена ошибка?

Напишите нам и пришлите номер заказа, формулировку вопроса и подтверждение ошибки. Гарантия: 1 ошибка — вернём деньги.

Связаться с АртемХелп · Условия покупки · Политика конфиденциальности