46 вопросов на собеседовании по C++ от ведущих IT компаний

Если вы готовитесь к собеседованию в команде разработчиков программного обеспечения, которая регулярно использует C ++, лучшее, что вы можете сделать, - это попрактиковаться в вопросах, которые вы, скорее всего, увидите.

Когда вы работаете над этими проблемами, убедитесь, что вы имитируете среду собеседования: сядьте в тихом месте, говорите вслух, работая над вопросом, и рассчитайте время.

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

Вопросы для собеседования по C ++ от ведущих ит компаний
  • Вопрос Accenture - Различия между классом и структурой в C ++.
  • Вопрос Infosys - что делает функция Friend в C ++?
  • Вопрос ACI Worldwide - в чем разница между вектором и массивом?
  • Вопрос Accenture - каковы спецификаторы доступа в C ++?
  • Вопрос IBM - что такое функция main () в C ++? Можем ли мы запустить программу без основного метода?
  • Вопрос 23andMe - Что такое наследование в объектно-ориентированном программировании?
  • Вопрос Infosys - в чем разница между абстрактными и интерфейсными классами?
  • Вопрос Google - Различия между инкапсуляцией и абстракцией.
  • Вопрос Intel - напишите программу для печати заданного шаблона.
  • Вопрос Accenture - что такое криптовалюта и блокчейн? Как бы вы объяснили это нетехнически?
  • Вопрос IBM - как бы вы убедили банк заменить свои обычные методы на блокчейн?
  • Вопрос Accenture - В чем разница между открытым и закрытым контуром?
  • Объясните некоторые важные различия между C и C ++
  • Вопрос Adobe - в чем разница между C ++ и Java? Как вы думаете, какой из них лучше и почему?
  • Вопрос Google - что такое концепция OOPS и как она реализована в C ++?
  • Вопрос Infosys - что такое структуры и чем они отличаются от классов?
  • Вопрос Intel - В чем разница между ссылкой и указателем?
  • Вопрос IBM - что такое виртуальные функции?
  • Вопрос 23andMe - Что такое виртуальный класс и класс друзей?
  • Вопрос Adobe - что такое виртуальные конструкторы / деструкторы?
  • Приведите примеры структур данных на C ++
  • Вопрос Infosys - Назовите мне один недостаток использования C ++.
  • Вопрос Google - как обработка исключений выполняется в C ++ и Java?
  • Дополнительные вопросы на собеседовании по C ++
  • Объясните сборку мусора. Есть ли это в C ++?
  • Вопрос Infosys - что такое встроенная функция?
  • Вопрос IBM - в чем разница между обычным указателем и указателем void?
  • Вопрос Accenture - Почему используется список ссылок?
  • Вопрос IBM - что такое хеш-функция? Объясните на примере
  • Вопрос 23andMe - В чем разница между компаратором и сопоставимым интерфейсом
  • Вопрос Adobe - что такое RAII?
  • Укажите на недостаток класса в C ++.
  • Вопрос Infosys - в чем разница между декларацией и определением?
  • Объясните основную идею конструктора и деструктора в C ++.
  • Вопрос Google - в чем разница между мьютексом и семафором? Какой из них вы бы использовали для защиты доступа к операции приращения?
  • Infosys question - Для функции, которая производит случайное целое число в диапазоне от 1 до 5, напишите функцию, которая производит случайное целое число в диапазоне от 1 до 7.
  • Вопрос Intel - опишите алгоритм обхода графа в глубину.
  • Вопрос Infosys - как в C ++ выполняется динамическое выделение памяти?
  • Вопрос Adobe - напишите функцию f (a, b), которая принимает аргументы из двух символьных строк и возвращает строку, содержащую только символы, найденные в обеих строках в порядке a. Напишите версию с порядком N в квадрате и версию с порядком N.
  • Вопрос Google - вам предоставляется источник приложения, которое дает сбой при запуске. Запустив его 10 раз в отладчике, вы обнаружите, что он никогда не дает сбоев в одном и том же месте. Приложение является однопоточным и использует только стандартную библиотеку C. Какие ошибки программирования могли вызвать этот сбой? Как бы вы протестировали каждую из них?
  • Что такое многопоточное программирование? Что такое тупик?


Заключительные вопросы собеседования по C ++
  • Вопрос Intel. У вас есть поток бесконечных запросов (например, поисковые запросы Google в реальном времени, которые вводят люди). Опишите, как вы могли бы найти хорошую оценку в 1000 выборок из этого бесконечного набора данных, а затем написать для него код.
  • Infosys вопрос - Вам дается список номеров. Когда вы дойдете до конца списка, вы вернетесь в начало списка (круговой список). Напишите наиболее эффективный алгоритм поиска минимального числа в этом списке. Найдите любой заданный # в списке. Числа в списке всегда увеличиваются, но вы не знаете, где начинается круговой список, например: 38, 40, 55, 89, 6, 13, 20, 23, 36.
  • Вопрос Google - если у вас есть 1 миллион целых чисел, как бы вы их эффективно отсортировали? (измените конкретный алгоритм сортировки, чтобы решить эту проблему)
  • Вопрос Adobe - напишите код для переворота строки.
  • Как C ++ работает с конструкторами и деконструкторами класса и его дочернего класса?
  • Вопрос Adobe: создайте механизм быстрого кэширования хранилища, который, учитывая ограничение на объем кэш-памяти, будет гарантировать, что только наименее использованные элементы будут отбрасываться при достижении кэш-памяти при вставке нового элемента. Он поддерживает 2 функции: String get (T t) и void put (String k, T t).

Дополнительные инструкции по собеседованию для С++ программиста
Не забывайте, что успешное техническое собеседование - это нечто большее, чем просто правильный ответ на вопрос.

Начнем с разъяснений
Получив вопрос, подумайте и задайте уточняющие вопросы 15–30 секунд, прежде чем сразу перейти к проблеме. Хотя существует ограничение по времени, вы не должны слишком торопиться. Вот некоторые примеры этих вопросов: «Разрешено ли повторение?» или «Вы хотите вернуть перестановки или комбинации?»

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

Сделайте контекстные утверждения
Контекстные утверждения - еще один способ показать положительный сигнал. Если вы аргументируете принимаемые решения, вы можете изменить восприятие вашей работы интервьюером. Это может помочь вам, если вы ошиблись, потому что это дает интервьюеру понимание того, о чем вы думали.

Задайте совместные вопросы, чтобы получить помощь
Пока вы работаете над вопросом собеседования, вы можете достичь точки, когда вам понадобится помощь. Вместо того, чтобы просить «подсказки», что не нравится некоторым интервьюерам, попробуйте дать предысторию вашей проблемы и спросить интервьюера, могут ли они помочь вам вести вас по правильному пути. Например, вы можете сказать: «Мои предположения - это X и Y, я подумываю сделать Z. Но я борюсь с решением [проблемы]». Вы также можете спросить:

  • Мне было интересно, есть ли у вас какие-нибудь мысли.
  • Как вы думаете, я иду в правильном направлении?
  • Как вы думаете, мои предположения неверны?
Имея эти вопросы и советы, вы должны быть более чем готовы к следующему техническому собеседованию на месте. Чувствуете, что вам нужна дополнительная помощь? Ознакомьтесь с этими ресурсами, чтобы попрактиковаться в вопросах собеседования по разработке программного обеспечения.
HR Блог для IT рекрутера в Телеграм
Хочешь всегда получать новые статьи, бесплатные материалы и полезные HR лайфхаки! Подписывайся на нас в Telegram! С нами подбор ит персонала становится проще ;)
Хотите найти талантливого сотрудника?
Оставьте заявку и получите в подарок список вопросов для сбора рекомендаций на кандидата