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

Введение в объектно-ориентированное программирование.ои(dor) — вариант 6

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

15 вопросов Вариант 6 Доступ 7 дней
Содержание теста

Вопросы и варианты

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

Вопрос 1

Контейнерные классы – это…

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

Библиотека стандартных шаблонов – это …

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

Итераторы – это …

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

Контейнеры делятся на два вида - это …

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

Какой вид контейнеров обеспечивают хранение конечного количества однотипных величин в виде непрерывной последовательности?

  1. последовательные контейнеры
  2. ассоциативные контейнеры
  3. множественные контейнеры
Вопрос 6

Стандартизованный интерфейс могут предоставлять:

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

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

  1. вектор
  2. очередь
  3. стек
  4. структура данных, которая уже является моделью динамического массива
  5. структура данных, которая построена по принципу LILO (last in — last out: последний пришел — последний вышел)
  6. структура данных, которая работает по принципу FILO (first in — last out; первый пришел — последний вышел)
Вопрос 8

Каждый контейнерный класс имеет 4 основных метода для работы с оператором - метод begin(),метод end(),метод cbegin(),метод cend(). Установите соответствие между названием метода контейнерного класса и его описанием.

  1. iterator begin() const_iterator begin () const
  2. iterator end() const_iterator end () const
  3. reverse_iterator rbegin() const_reverse_iterator rbegin () const
  4. указывают на первый элемент
  5. указывают на элемент, следующий за последним
  6. указывают на первый элемент в обратной последовательности
Вопрос 9

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

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

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

  1. создать вектор
  2. внести данные в конец вектора
  3. заменить новыми значениями
  4. вывести содержимое
Вопрос 11

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

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

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

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

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

  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
Вопрос 14

Стек – это динамическая структура сохранения данных, которая работает по принципу «последний пришел — первый вышел» (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
Вопрос 15

Для работы с очередью вам понадобится знать функции: 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 чисел. Затем будет указан самый первый элемент в очереди. Потом он будет удален и выведен на экран новый первый элемент (после удаления). Далее строка «Очередь не пуста!»