Разработка на C++.фип_БАК_БИ

Разработка на C++.фип_БАК_БИ — вариант 3

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

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

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

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

Вопрос 1

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

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

В какой сегмент памяти попадает функция при вызове?

  1. В сегмент стека, который растёт вниз
  2. В сегмент кучи, которая растёт вверх
  3. В сегмент BSS
Вопрос 3

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

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

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

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

Что позволяет сделать move семантика в С++?

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

Какой метод используется для ожидания завершения потока в C++?

  1. wait();
  2. detach();
  3. join();
Вопрос 7

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

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

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

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

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

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

Что такое О-нотация?

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

Необходимо добавить 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)
Вопрос 12

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

  1. О(n^2), что является очень хорошим показателем для алгоритмов сортировки
  2. O(n log n), что является самым быстрым показателем для алгоритмов сортировки
  3. О(n^2), что является достаточно медленным показателем для алгоритмов сортировки
Вопрос 13

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

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

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

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

Какова асимптотическая сложность поиска элемента в стеке?

  1. Поиск элемента в стеке имеет асимптотическую сложность O(n), так как в худшем случае необходимо просмотреть все элементы стека, чтобы найти нужный элемент.
  2. Поиск элемента в стеке имеет асимптотическую сложность O(1), так как стек реализован в виде хеш-таблицы и поиск элемента происходит мгновенно.
  3. Поиск элемента в стеке имеет асимптотическую сложность O(n log n), так как каждый раз перед поиском элемента необходимо отсортировать все элементы стека.
Вопрос 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. Хэш-функция - это функция, которая преобразует входные данные произвольного размера в выходные данные фиксированного размера
  2. Хэш-функция - это функция, которая используется для шифрования данных с помощью алгоритма хэширования
  3. Хэш-функция - это функция, которая используется для компрессии данных с помощью алгоритма хэширования
Вопрос 26

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

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

Для чего нужны операции по модулю в программировании помимо нахождения остатка от деления и определения чётности числа?

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

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

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

Малая теорема Ферма утверждает, что если p - простое число и a - целое число, не делящееся на p, то a^(p-1) сравнимо с 1 по модулю p. Как работает тест Ферма, основанный на этой теореме?

  1. Тест Ферма - это вероятностный тест простоты чисел. Он основан на малой теореме Ферма и проверяет ее для нескольких случайных значений «а», не делящихся на «р». Если хотя бы одно значение не удовлетворяет условию теоремы, то число считается составным.
  2. Тест Ферма - это точный тест простоты чисел. Он основан на малой теореме Ферма и проверяет ее для всех значений a от 2 до p-1. Если все значения удовлетворяют условию теоремы, то число считается простым.
  3. Тест Ферма - это точный тест простоты чисел. Он основан на малой теореме Ферма и проверяет ее для нескольких случайных значений «а», не делящихся на «р». Если хотя бы одно значение не удовлетворяет условию теоремы, то число считается составным.
Вопрос 30

В модульной арифметике есть выражение ax ≡ 1 (mod m). Что такое «число, обратное по модулю»?

  1. Это такое целое число «х», что остаток от деления «ax» на целое «m» равен единице
  2. Это такое число «х», которое при возведении в -1 степень даёт единицу в остатке при делении на «m»
  3. Это такое число «х», которое при возведении в -1 степень нацело делится на «m»