Бесплатные ответы на тесты по предмету «Введение в объектно-ориентированное программирование» — Синергия и МТИ
Быстрый поиск
Найдите вопрос в материалах предмета
Ищем по тексту вопросов и вариантов ответа на этой странице.
Показано 90 вопросов
По вашему запросу ничего не найденоПопробуйте сократить фразу или проверить написание.
Вопрос 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С++
21C
3Haskell
4объектно-ориентированное программирование
5процедурное программирование
6функциональное программирование
Вопрос 10Ответ открыт бесплатно
Проставьте открытия в программировании в исторической последовательности:
1ткацкий станок с перфокартами✓ Правильный ответ
2аналитическая машина✓ Правильный ответ
3первая программа для аналитической машины✓ Правильный ответ
4объектно-ориентированное программирование✓ Правильный ответ
✓ Правильный ответ
ткацкий станок с перфокартами ; аналитическая машина ; первая программа для аналитической машины ; объектно-ориентированное программирование
Вопрос 11
Проставьте создание языков программирования в исторической последовательности (от старого до нового):
1C++
2Simula
3Java
4Python
Вопрос 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компиляция
Вопрос 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
Синтаксис наследования выглядит так:
1class имя: тип_наследования имя_базового_класса {// программный код производного класса}
2classname имя: имя_базового_класса {// программный код производного класса}
3class имя: тип_наследования {// программный код производного класса}
Вопрос 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
При множественном наследовании может сложиться ситуация, когда один и тот же базовый класс наследуется (через разные цепочки наследования) в производном классе несколько раз. Обычно, в этом ничего хорошего нет, т.к. нередко такие ситуации приводят к ошибкам. С другой стороны, совсем избежать подобных ситуаций бывает проблематично. Выход состоит в том, чтобы при создании цепочки наследования, использовать виртуальные базовые классы. Перед Вами код. Выберите, какой будет результат кода.
1Base NonVirtual called. Derived Virtual called
2Base NonVirtual called. Base Virtual called. Base NonVirtual called
3Base NonVirtual called. Base Virtual called. Base NonVirtual called. Derived Virtual called
Вопрос 66Ответ открыт бесплатно
Виртуальные методы – это один из важнейших приёмов реализации полиморфизма. Они позволяют создавать общий код, который может работать как с объектами базового класса, так и с объектами любого его класса-наследника. При этом, базовый класс определяет способ работы с объектами, и любые его наследники могут предоставлять конкретную реализацию этого способа. Общий шаблон объявления чисто виртуального метода следующий:
1virtual тип_результата имя_метода(список_аргументов)=0; Метод в классе можно не описывать, а только объявить. Другими словами, в классе допустимо указать тип результата метода, его название и аргументы, а программный код тела метода не указывать. Такие методы называются чисто виртуальными и описываются с ключевым словом virtual. Заканчивается описание чисто виртуального метода знаком равенства и нулем✓ Правильный ответ
2virtual имя_метода(список_аргументов) Метод в классе можно не описывать, а только объявить. Другими словами, в классе допустимо указать тип результата метода, его название и аргументы, а программный код тела метода не указывать. Такие методы называются чисто виртуальными и описываются с ключевым словом virtual. Заканчивается описание чисто виртуального метода списком аргументов
3virtual тип_результата (список_аргументов)=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 применяется конструктор по умолчанию
Векторы — это умные массивы. Они занимаются автоматическим размещением себя в памяти, расширением и сужением своего размера по мере вставки или удаления данных. Векторы можно использовать в какой-то мере как массивы, обращаясь к элементам, с помощью привычного оператора []. Случайный доступ выполняется очень быстро в векторах. Также, довольно быстро осуществляется добавление (или проталкиваниновых данных в конец вектора. Когда это происходит, размер вектора автоматически увеличивается для того, чтобы было куда разместить новое значение. Рассмотрим код программы. Выберете, что демонстрирует данный пример.
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 ++ функция может указывать исключения, которые она генерирует, с помощью ключевого слова:
1throw
2catch
3try
Вопрос 83Ответ открыт бесплатно
Исключительные ситуации, возникающие при работе программы, можно разделить на два основных типа:
1простые и сложные
2с данными и без данных
3синхронные и асинхронные✓ Правильный ответ
✓ Правильный ответ
синхронные и асинхронные
Вопрос 84
Классическим примером исключительной ситуации в С++ является:
1целочисленное деление на ноль
2создание нового блока кода
3уменьшение памяти
Вопрос 85
Проставьте последовательность работы конструкций исключительных ситуации:
1catch
2throw
3try
Вопрос 86Ответ открыт бесплатно
Обработка исключений, возбужденных оператором throw, идет по следующей схеме:
1завершается выполнение защищенного try-блока: раскручивается стек подпрограмм, вызываются деструкторы для тех объектов, время жизни которых истекает и т.д.✓ Правильный ответ
2создается статическая переменная со значением, заданным в операторе throw. Она будет существовать до тех пор, пока исключение не будет обработано. Если переменная-исключение является объектом класса, при ее создании работает конструктор копирования✓ Правильный ответ
3выполняется поиск первого из catch-блоков, который пригоден для обработки созданного исключения✓ Правильный ответ
✓ Правильный ответ
завершается выполнение защищенного try-блока: раскручивается стек подпрограмм, вызываются деструкторы для тех объектов, время жизни которых истекает и т.д. ; создается статическая переменная со значением, заданным в операторе throw. Она будет существовать до тех пор, пока исключение не будет обработано. Если переменная-исключение является объектом класса, при ее создании работает конструктор копирования ; выполняется поиск первого из catch-блоков, который пригоден для обработки созданного исключения
Вопрос 87
Проставьте последовательность стандартных исключений в иерархии родительско-дочерних классов.
1std:logic_failure
2std:exception
3std:domain_error
Вопрос 88
Мы рассмотрим ситуацию создания динамического массива. В программе для обработки исключительных ситуаций создадим динамический массив. Единственная особенность программы в том, что размер создаваемого массива определяется пользователем уже в процессе выполнения программы: при запуске программы, появляется сообщение с просьбой ввести целое число, число считывается, и в соответствии со считанным значением создается динамический массив. Рассмотрим программный код. Каким будет результат, если после выполнения программы ввести отрицательное число.
1this 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
2a part of conditional expression is always true: 0xff. babygrid.cpp 711
3dereferencing 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 ошибка — вернём деньги.