Разработка игр на языке программирования C++.sa_UnEn5

Разработка игр на языке программирования C++.sa_UnEn5

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

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

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

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

Вопрос 1

Что такое граф?

  1. Геометрическая фигура, состоящая из точек и соединяющих их отрезков
  2. Математическая модель для представления отношений между объектами
  3. Тип данных в С++, отвечающий за построение древовидных структур данных
Вопрос 2

Что такое цикл в графе?

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

Что такое дерево в теории графов?

  1. Граф с несколькими компонентами связности
  2. Граф с циклами
  3. Связный ациклический граф
Вопрос 4

Что такое Эйлеров цикл в графе?

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

Что такое гамильтонов цикл в графе?

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

Что такое матрица смежности графа?

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

Как работает алгоритм deep first search?

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

Как строится двоичное дерево поиска?

  1. Двоичное дерево поиска строится путем добавления элементов в дерево в порядке возрастания. Каждый узел дерева имеет не более двух потомков. При добавлении элемента в дерево он помещается в самый левый свободный узел.
  2. Двоичное дерево поиска строится путем добавления элементов в дерево согласно заданному алгоритму сортировки. Каждый узел дерева имеет не более двух потомков. При добавлении элемента в дерево он помещается на соответствующую позицию согласно алгоритму сортировки.
  3. Каждый узел дерева имеет не более двух потомков. При добавлении элемента в дерево он сравнивается с корнем дерева. Если элемент меньше корня, он добавляется в левое поддерево, если больше - в правое. Процесс повторяется для соответствующего поддерева, пока не будет найдено место для нового элемента.
Вопрос 9

Как устроена такая структура данных как куча?

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

Что такое сбалансированное дерево?

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

Какие структуры данных называют персистентными?

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

Как работают жадные алгоритмы?

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

Как работает динамическое программирование?

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

Что такое теория игр?

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

Как работает алгоритм Дейкстры, ищущий кратчайшие пути от одной из вершин графа до всех остальных?

  1. Алгоритм работает пошагово - на каждом шаге он “посещает” одну вершину и пытается уменьшать метку – минимальное известное расстояние от этой вершины до начальной. Работа алгоритма завершается, когда все вершины посещены.
  2. Алгоритм использует динамическое программирование. Сперва строится матрица расстояний между всеми парами вершин. Затем алгоритм сравнивает все возможные пути через граф между каждой парой вершин и постепенно улучшает оценку кратчайшего пути между двумя вершинами, пока оценка не станет оптимальной.
  3. Алгоритм начинает с расстояния до начальной вершины, равным 0, а до всех остальных - бесконечностью. Затем алгоритм повторяет несколько раз: он смотрит на все ребра и пытается улучшить расстояния до вершин. Если расстояние от начальной вершины до одной вершины на ребре плюс вес ребра меньше текущего расстояния до другой вершины на ребре, то расстояние обновляется.
Вопрос 16

Выберите верное утверждение:

  1. При выделении динамической памяти объект помещается в сегмент под названием куча (heap), которая организована как древовидная структура данных
  2. При выделении динамической памяти объект помещается в сегмент под названием куча (heap), которая организована как непрерывная область памяти из занятых и свободных блоков
  3. При выделении динамической памяти объект помещается в сегмент под названием стек (stack), который работает по принципу «кто последний пришёл, тот первым обрабатывается»
Вопрос 17

Выберите верное утверждение:

  1. При работе с кучей управление памятью необходимо осуществлять программисту, например, нужно вручную чистить память
  2. При работе со стеком управление памятью необходимо осуществлять программисту, например, нужно вручную чистить память
  3. В С++ есть встроенный сборщик мусора, который почистит ненужную память, даже если программист забыл это сделать вручную
Вопрос 18

Зачем нужны умные указатели в С++?

  1. Для ускорения работы программы
  2. Для уменьшения размера исполняемого файла программы
  3. Для автоматического освобождения памяти и обеспечения безопасного ее использования
Вопрос 19

В чём заключается одна из основных проблем при работе с многопоточностью в С++?

  1. Обеспечение ускорения выполнения программы при использовании многопоточности
  2. Синхронизация использования ресурсов для исключения взаимной блокировки
  3. Отсутствие поддержки многопоточности на большинстве современных процессоров
Вопрос 20

Как работает mutex в С++?

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

Что такое асимптотическая сложность алгоритма?

  1. Количество операций, которые выполняет алгоритм для решения определённой задачи
  2. Оценка скорости роста времени выполнения алгоритма в зависимости от размера входных данных
  3. Скорость выполнения алгоритма при решении конкретной задачи с заданными входными данными
Вопрос 22

Необходимо добавить N элементов в начало пустого std::vector. Какая будет асимптотическая сложность у данной операции?

  1. Добавление одного элемента в std::vector выполняется очень быстро, за постоянное время, то есть за О(1). Поскольку нужно добавить N элементов, то получаем асимптотическую сложность O(1*N), что равносильно O(N), то есть в результате имеем линейное время
  2. Добавление одного элемента в начало std::vector имеет сложность O(n), т.к. каждый раз придётся сдвигать все остальные элементы вправо. Следовательно, добавление N элементов в начало будет иметь сложность O(N^2), т.е. получаем квадратичное время
  3. std::vector является аналогом обычного массива, а значит память под него выделяется сразу, и гарантировать добавление всех N элементов нельзя. Однако, пока есть свободная память, добавление элементов будет происходить за постоянное время, то есть сложность получаем О(1)
Вопрос 23

Какая асимптотическая сложность у алгоритма бинарного поиска?

  1. O(log n)
  2. O(n log n)
  3. O(n)
Вопрос 24

Какая асимптотическая сложность у операций добавления и удаления элементов в стеке?

  1. Операции добавления и удаления элементов в стеке имеют асимптотическую сложность O(n log n), так как каждый раз при добавлении или удалении элемента необходимо отсортировать все элементы стека.
  2. Операции добавления и удаления элементов в стеке имеют асимптотическую сложность O(n), так как каждый раз при добавлении или удалении элемента необходимо переместить все остальные элементы стека.
  3. Стек реализован таким образом, что добавление и удаление элементов происходит только с вершины стека, что осуществляется быстро и эффективно. Соответственно сложность у таких операций О(1).
Вопрос 25

Какой алгоритм поиска наиболее эффективен для неотсортированных данных?

  1. Бинарный поиск
  2. Интерполяционный поиск
  3. Линейный поиск
Вопрос 26

Как работает алгоритм бинарного поиска в С++?

  1. Бинарный поиск работает путем сортировки массива и последовательного сравнения каждого элемента с искомым значением до тех пор пока, не будет найден искомый элемент или пока не будут проверены все элементы.
  2. Бинарный поиск работает путем разделения массива на несколько частей и параллельного поиска в каждой из них. Когда искомый элемент найден в одной из частей, поиск завершается.
  3. Бинарный поиск работает путем деления отсортированного массива пополам и сравнения искомого значения с элементом в середине. Если значение меньше элемента в середине, то поиск продолжается в левой половине массива, иначе - в правой. Этот процесс повторяется до тех пор, пока не будет найден искомый элемент или пока не останется ни одного элемента для поиска.
Вопрос 27

Какой алгоритм сортировки является наиболее эффективным для больших данных?

  1. Пузырьковая сортировка
  2. Сортировка выбором
  3. Быстрая сортировка
Вопрос 28

Что такое хэш?

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

Что такое рекурсия в программировании?

  1. Это ситуация, при которой функция вызывает сама себя в своем теле. Каждый вызов функции создает новый экземпляр этой функции на стеке вызовов. Рекурсивные функции должны иметь базовый случай, который прекращает рекурсию, иначе они будут вызывать себя бесконечно.
  2. Это ситуация, при которой функция вызывается из цикла или из другой функции несколько раз подряд. Программист должен предусмотреть условие выхода из рекурсии, иначе функция будет вызываться бесконечно.
  3. Рекурсия в программировании - это ситуация, при которой функция вызывается несколько раз подряд с разными аргументами. Программист должен прописать выход из рекурсии при определённых значениях аргумента, иначе рекурсия будет вызываться бесконечно много раз с новыми и новыми аргументами
Вопрос 30

Для чего нужна малая теорема Ферма в программировании?

  1. Для алгоритмов шифрования и проверки чисел на простоту
  2. Малая теорема Ферма используется в программировании для ускорения алгоритмов генерации случайных чисел
  3. Малая теорема Ферма используется в программировании для ускорения алгоритмов поиска, сортировки и компрессии данных
Вопрос 31

Что такое класс в программировании?

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

Что такое поле класса?

  1. Какие-либо данные, некая информация, характеризующая класс
  2. Область памяти, в которой класс виден программе
  3. Некий набор команд, выполняющий определённые операции над характеристиками класса
Вопрос 33

Что такое метод класса?

  1. Какие-либо данные, некая информация, характеризующая класс
  2. Пользовательский тип данных, состоящий из комбинации базовых типов данных
  3. Функция, которая совершает те или иные действия над полями своего класса
Вопрос 34

Что такое объект?

  1. Любые данные, которые не имеют конкретного постоянного адреса в памяти
  2. Любые данные, которые имеют конкретный постоянный адрес в памяти
  3. Конкретный экземпляр класса, или переменная класса
Вопрос 35

Что такое конструктор?

  1. Специальный класс встроенной библиотеки STL, который выделяет память объектам при их создании
  2. Специальный метод класса, который используется при создании объекта для корректной инициализации его полей
  3. Любой метод класса, который не возвращает значение
Вопрос 36

Когда нужно вручную прописывать конструктор копирования?

  1. Если в классе есть динамическое выделение памяти
  2. Если в дальнейшем планируется копировать объекты этого класса
  3. Если в дальнейшем используются указатели на этот класс
Вопрос 37

Что такое статическая переменная?

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

Что такое контейнер?

  1. Объект для хранения неограниченно большого количества данных (пока есть доступная память)
  2. Массив, в котором объекты хранятся в отсортированном порядке
  3. Объект для хранения других объектов
Вопрос 39

Что такое наследование?

  1. Такое соотношение между классами, когда производный класс использует структуру и/или функционал базового класса
  2. Обращение к полям и методам класса через указатель на объект этого класса, при этом используется стрелочка “->” вместо точки
  3. Принцип программирования, согласно которому разработчик не должен допускать повторяемости кода
Вопрос 40

Когда нужно вручную прописывать деструктор?

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

Что такое итератор?

  1. Переменная, помогающая перебирать элементы контейнера
  2. Счётчик циклов методов класса
  3. Статическая переменная, считающая количество экземпляров своего класса
Вопрос 42

Что такое r-value?

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

Когда нужно прописывать ключевое слово virtual перед методом класса?

  1. Когда метод переопределяется в производном классе, и при этом может произойти обращение к этому переопределённому методу через указатель на базовый класс, то перед методом базового класса нужно прописать слово virtual
  2. Когда метод переопределяется в производном классе, и при этом может произойти обращение к этому переопределённому методу через указатель на базовый класс, то перед методом производного класса нужно прописать слово virtual
  3. Когда метод переопределяется в производном классе, и при этом может произойти обращение к этому переопределённому методу через указатель на производный класс, то перед методом базового класса нужно прописать слово virtual
Вопрос 44

Когда нужно использовать виртуальные деструкторы?

  1. Когда нужно удалить родительские объекты через указатель на производный класс
  2. Когда нужно удалить производные объекты через указатель на базовый класс
  3. Когда при удалении объекта нужно очистить динамически выделенную память
Вопрос 45

Что такое абстрактный класс?

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

Что такое компилятор?

  1. Программа-редактор для создания других программ
  2. Программа, которая переводит код на языке программирования в машинный код
  3. Программа в виде чёрного окна, где пользователь может вести текст
Вопрос 47

Что такое функция в программировании?

  1. Группа операторов, у которой есть имя и которая может возвращать значение
  2. Любая команда в коде программы, заканчивается «;»
  3. Отдельно взятый функционал из стандартных библиотек пространства имён std
Вопрос 48

Что такое переменная в программировании?

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

Может ли быть опущен блок ˂else˃ в условном операторе?

  1. Да, может
  2. Нет, не может
  3. Может, но только если условие всегда истинно
Вопрос 50

Что такое итерация цикла?

  1. Последовательность действий цикла
  2. Условие выхода из цикла
  3. Единичное выполнения тела цикла
Вопрос 51

Выберите истинное утверждение об инициализации массива

  1. Массив при объявлении должен быть полностью инициализирован, иначе компилятор выдаст ошибку
  2. При объявлении обязательно указывается размер массива, а инициализировать элементы некоторыми значениями можно позже
  3. Пользователь сам в процессе выполнения программы может задать размер массива и провести его инициализацию
Вопрос 52

Что хранит в себе указатель?

  1. Тип данных переменной, на которую указывает
  2. Адрес ячейки памяти, обычно в виде шестнадцатеричного числа
  3. Хранит значение, как и переменная, на которую он указывает
Вопрос 53

Что будет, если к указателю прибавить целое число?

  1. В результате получится указатель на исходный тип, а значение будет на указанное число элементов больше
  2. Значение, на которое указывает указатель, увеличится на это число
  3. Адрес, на который, указывает указатель, увеличится на такое же количество байт
Вопрос 54

Что такое стек?

  1. Хранилище информации, в котором сперва обрабатывается последний сохранённый элемент
  2. Хранилище информации, в котором сперва обрабатывается первый сохранённый элемент
  3. Производный тип данных, в котором группируются несколько отдельных переменных разных типов вместе
Вопрос 55

Что позволяет сделать отладчик в Visual Studio?

  1. Автоматически проверить программу на наличие ошибок
  2. Остановить программу в любой момент выполнения
  3. Пошагово выполнить программу, отслеживая значения переменных
Вопрос 56

Как считать предложение (слова, разделённые пробелами) с консоли и записать его в переменную типа string?

  1. Использовать поток std::cin >>
  2. Использовать операцию getstring()
  3. Использовать операцию getline(cin, string)
Вопрос 57

Что такое файл?

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

Как вызвать функцию?

  1. Написать имя функции, а в круглых скобках передать корректные формальные параметры
  2. Написать имя функции, а в круглых скобках передать корректные фактические параметры
  3. Функции вызываются с помощью оператора return
Вопрос 59

Перегруженные функции это:

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

При передаче аргументов по значению:

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