Без привязки к предмету

Без привязки к предмету — вариант 62

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

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

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

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

Вопрос 1

Вы разрабатываете консольное меню на C++, где требуется для лучшей читаемости выровнять элементы меню по столбцам. Какой инструмент необходимо использовать для выравнивания столбцов и меню в консоли?

  1. endl – манипулятор для вывода символа новой строки и одновременной очистки буфера
  2. setw из – функция для задания ширины поля вывода
  3. setprecision – функция для задания количества знаков после запятой при выводе чисел с плавающей точкой
  4. flush – функция для принудительной очистки буфера вывода
Вопрос 2

Вы пишете программу на C++ и хотите, чтобы пользователь мог вводить строки с пробелами. Какой способ ввода строки позволяет правильно считывать строку с пробелами?

  1. cin >> str;
  2. getline(cin, str);
  3. scanf("%s", str);
  4. cin.get(str);
Вопрос 3

Вы разрабатываете на C++ приложение для обработки пользовательского ввода. Пользователь вводит имя и возраст, а программа должна отформатировать и вывести сообщение с этими данными. Вы хотите обеспечить читаемый и точный вывод. Какой подход лучше всего соответствует современным практикам форматированного ввода/вывода в C++?

  1. Использование printf и scanf для совместимости с C
  2. Использование cout и cin с манипуляторами из
  3. Использование только файлового ввода/вывода
  4. Использование системных вызовов для работы с консолью
Вопрос 4

Программа, написанная на C++, анализирует пользовательский ввод и должна подсчитать, сколько раз определенный символ встречается в строке. Укажите метод std::string, который будет удобнее всего применять для обхода и анализа содержимого строки.

  1. append()
  2. find() в цикле
  3. resize()
  4. clear()
Вопрос 5

Вы разрабатываете на C++ функцию генерации паролей, в которой требуется сформировать строку из повторяющихся символов (например, символ * должен повторяться N раз). Это нужно для создания визуального индикатора или шаблона. Какой способ создания строки на C++ наиболее корректно реализует повторение одного символа N раз?

  1. std::string s(n, '*');
  2. std::string s = '*';
  3. std::string s = repeat('*', n);
  4. std::string s.append(n, '*');
Вопрос 6

Вы разрабатываете наC++ программу, которая принимает список фамилий студентов, сортирует их в алфавитном порядке и выводит в консоль. Необходимо использовать массив строк и обеспечить устойчивость к пустому вводу. Какой подход является наилучшим для данной задачи?

  1. Использовать char[][] и отсортировать вручную
  2. Использовать std::string с vector и применить sort
  3. Считать строки в int mass[] и сортировать
  4. Использовать массив указателей на char
Вопрос 7

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

  1. Способ передачи по значению
  2. Способ передачи через глобальные переменные
  3. Способ передачи по ссылке
  4. Способ передачи через константную ссылку
Вопрос 8

В программе на C++ предполагается, что пользователь во время выполнения укажет количество элементов массива. Размер массива заранее неизвестен и должен быть определен динамически. Укажите способ выделения памяти, который позволит создать массив из N элементов в момент выполнения программы.

  1. int arr[N];
  2. int* arr = new int[N];
  3. int arr = new int(N);
  4. int arr[] = malloc(N);
Вопрос 9

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

  1. Использование обычных указателей и ручное управление памятью
  2. Использование глобального массива элементов
  3. Применение умных указателей (например, std::unique_ptr)
  4. Использование ссылок вместо указателей
Вопрос 10

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

  1. Перегрузка функции
  2. Лямбда-функции
  3. Константные методы
  4. Использование глобальных переменных
Вопрос 11

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

  1. По значению
  2. По ссылке
  3. Через константную ссылку
  4. Через указатель
Вопрос 12

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

  1. Использовать одну глобальную переменную и процедуру без параметров
  2. Написать несколько функций с параметрами и использовать перегрузку при необходимости
  3. Все вычисления поместить в main
  4. Использовать только встроенные (inline) функции без возвращаемого значения
Вопрос 13

В рамках учебного проекта вы создаете на C++ приложение, моделирующее поведение различных животных. Вы разрабатываете базовый класс Animal, который должен содержать имя животного и метод speak(). Планируется, что в будущем появятся производные классы для конкретных животных с собственным поведением. Укажите подход, который позволит создать надежную и расширяемую структуру классов для моделирования разных типов животных.

  1. Сделать имя глобальной переменной
  2. Использовать массив строк и switch
  3. Использовать класс с приватными данными и методами
  4. Хранить все данные в main
Вопрос 14

Вы разрабатываете на C++ класс BankAccount, содержащий номер банковского счета, имя владельца и текущий баланс. Необходимо ограничить прямой доступ к этим данным, обеспечив возможность их просмотра и изменения только через специально предусмотренные методы. Какой принцип объектно-ориентированного программирования и способ его реализации следует применить для безопасного управления доступом к полям класса.

  1. Использовать открытые поля и напрямую обращаться к ним
  2. Сделать все методы и поля static
  3. Применить инкапсуляцию, определив поля класса как закрытые (private) и реализовав методы доступа (геттеры и сеттеры) как открытые (public)
  4. Использовать глобальные переменные вне класса
Вопрос 15

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

  1. Использовать глобальные переменные для всех студентов
  2. Хранить данные в открытых полях структуры
  3. Использовать класс с закрытыми полями и методами доступа (геттеры/сеттеры)
  4. Использовать массив строк
Вопрос 16

Вы разрабатываете на C++ класс Vector2D, предназначенный для работы с координатами в двумерном пространстве. Чтобы сделать работу с этим классом более интуитивной, вы хотите, чтобы операция сложения в виде a + b была доступна для объектов Vector2D. Укажите подход в C++, который позволяет реализовать синтаксис a + b для объектов пользовательского класса так, чтобы он был удобен и понятен пользователю.

  1. Перегрузка оператора + как метод класса
  2. Использование глобальной функции add()
  3. Вычисление через указатели на данные
  4. Использование шаблона функции вместо оператора
Вопрос 17

Вы создаете в C++ класс Matrix для работы с матрицами. Требуется реализовать оператор *, чтобы пользователь мог выполнять умножение матриц с помощью привычного синтаксиса A * B. При этом важно обеспечить безопасность доступа к данным и возможность дальнейшего расширения класса. Какой способ перегрузки оператора * в C++ позволяет реализовать корректное и безопасное умножение объектов класса Matrix?

  1. Сделать operator * глобальной функцией и объявить ее friend
  2. Использовать operator = для умножения
  3. Переопределить operator []
  4. Реализовать умножение внутри конструктора
Вопрос 18

Вы реализуете в C++ класс Complex для работы с комплексными числами. Требуется, чтобы было возможно складывать объекты типа Complex, выводить их через cout и сравнивать на равенство. При этом класс должен быть удобен в использовании и безопасен. Какой вариант соответствует этим требованиям?

  1. Использовать только методы-члены (например, add(), equals(), print()) без перегрузки операторов
  2. Перегрузить операторы +, == и
  3. Использовать глобальные функции без operator
  4. Хранить числа в виде строк и складывать как строки
Вопрос 19

Вы разрабатываете на C++ графическую систему, в которой имеется базовый класс Shape с методом draw(). Для разных фигур (таких как круг, прямоугольник и треугольник) метод draw() должен реализовывать свое собственное поведение при вызове через указатель или ссылку на базовый класс. Какой подход позволяет корректно реализовать вызов метода draw() с учетом типа конкретной фигуры во время выполнения программы?

  1. Сделать draw() обычной функцией
  2. Объявить draw() виртуальной в базовом классе
  3. Использовать шаблон вместо класса
  4. Реализовать draw() только в main
Вопрос 20

Вы реализуете на C++ класс Logger, содержащий приватные данные, такие как путь к файлу и уровень логирования. Для записи сообщений в файл вы используете внешнюю функцию logToFile(), которой необходимо предоставить доступ к этим закрытым данным, не нарушая принципов инкапсуляции. Укажите механизм языка C++, который позволяет предоставить внешней функции доступ к приватным членам класса без нарушения безопасности и инкапсуляции.

  1. Сделать все поля публичными
  2. Передавать указатели на приватные поля
  3. Объявить logToFile() дружественной функцией
  4. Использовать статическую переменную внутри класса
Вопрос 21

Вы создаете на C++ приложение для моделирования транспортных средств. У вас есть базовый класс Vehicle с виртуальным методом move(), который должен быть реализован по-разному в классах Car и Bicycle. Вы также хотите предоставить внешней функции доступ к внутренним данным класса. Какой подход обеспечит корректную архитектуру и соблюдение принципов объектно-ориентированного программирования (ООП)?

  1. Сделать метод move() обычной функцией и переопределять его по необходимости
  2. Использовать виртуальный метод move() и функцию friend для доступа к данным
  3. Сделать все поля и методы public
  4. Хранить все данные вне класса и передавать их через параметры
Вопрос 22

Вы разрабатываете на C++ программу для анализа текстовых логов. Необходимо последовательно считывать строки из файла, чтобы обрабатывать их одну за другой – например, для поиска ошибок или статистики по записям. Укажите метод ввода, который в C++ позволяет считывать содержимое файла построчно и подходит для анализа каждой строки отдельно.

  1. cin >> строка;
  2. getline(istream, строка);
  3. read();
  4. scanf();
Вопрос 23

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

  1. Двоичная запись через write()
  2. Потоковая запись через ofstream в текстовом формате
  3. Использование системных вызовов write()
  4. Хранение всех данных в оперативной памяти
Вопрос 24

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

  1. Использовать ios::binary и записывать данные через write
  2. Использовать ofstream/ifstream и хранить данные в текстовом формате
  3. Применять системные вызовы напрямую
  4. Хранить все данные в оперативной памяти без сохранения
Вопрос 25

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

  1. Объединить весь код в один файл с расширением .cpp
  2. Использовать расширение .h для объявлений и расширение .cpp для реализаций
  3. Подключать файлы с расширением .cpp друг к другу
  4. Поместить main() во все файлы
Вопрос 26

Вы добавили новые функции в один из модулей проекта на C++. При компиляции проекта возникли ошибки, связанные с повторяющимися символами (повторным определением функций). Это мешает сборке проекта. Назовите правило организации кода в C++, которое позволяет избежать ошибок, связанных с повторным определением функций при использовании нескольких модулей.

  1. Использовать include guard в файлах с расширением .cpp
  2. Определять функции только в файлах с расширением .h
  3. Объявлять функции в файлах с расширением .h и определять в файлах с расширением .cpp один раз
  4. Компилировать только заголовочные файлы
Вопрос 27

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

  1. Разместить весь код в одном файле с расширением .cpp
  2. Использовать один заголовочный файл и делить реализацию на файлы с расширением .cpp по модулям
  3. Повторять определения функций в каждом файле с расширением.cpp
  4. Подключать файлы с расширением .cpp в main напрямую
Вопрос 28

Вы разрабатываете на C++ функцию сортировки, которая должна одинаково работать с массивами или векторами различных типов данных: int, double, std::string и других. При этом важно избежать дублирования кода и обеспечить универсальность решения. Какой механизм языка C++ позволяет создать обобщенную функцию сортировки для работы с разными типами данных без дублирования кода?

  1. Макросы
  2. Шаблон функции
  3. void*
  4. Структуры C
Вопрос 29

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

  1. Проверка вручную в случае ошибки или сбоя return -1
  2. Генерация исключения через throw с последующим перехватом в catch
  3. Использование логического значения (например, возврат true при успешной операции и false при ошибке)
Вопрос 30

Вы разрабатываете на C++ библиотеку математических функций, которая должна работать с различными числовыми типами (int, double, float). Кроме того, требуется безопасно обрабатывать случаи деления на ноль с помощью исключений. Какой подход наиболее соответствует требованиям универсальности и надежности?

  1. Написать отдельные функции для каждого типа
  2. Использовать шаблон с проверкой деления внутри и генерацией исключения при ошибке
  3. Использовать только исключения без шаблонов
  4. Использовать макросы вместо функций