C++ является одним из преобладающих языков объектно-ориентированного программирования (ООП) общего назначения, используемых для разработки технического и коммерческого программного обеспечения. Бьерн Страуструп разработал его в 1979 году в Bell Labs.

Введение

C++ является расширением языка программирования Си. Это высокоуровневый язык программирования, сочетающий в себе черты как низкоуровневых, так и высокоуровневых языков.

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

Общие вопросы для базового/первого раунда собеседования:

Q1: Что такое объектно-ориентированное программирование?

Объектно-ориентированное программирование — это парадигма программирования, связанная с реальным миром. Он основан на понятиях объектов. Объекты содержат данные и информацию.

Вопрос 2. Назовите основные компоненты языка ООП.

Важными компонентами объектно-ориентированного языка программирования являются:

  • Объекты
  • Классы
  • Наследование
  • Полиморфизм
  • Передача сообщений
  • Динамическое связывание
  • Абстракция данных и инкапсуляция

Вопрос 3. Чем C++ отличается от Python?

Основные различия между C++ и Python:

  • C++ — компилируемый язык, а Python — интерпретируемый язык. C++ намного быстрее, чем Python.
  • C++ более популярен для встраиваемых или корпоративных приложений, тогда как Python более известен машинным обучением и веб-дизайном.
  • C++ более предсказуем, потому что это строго типизированный язык. Python — это язык с динамической типизацией, поэтому; это менее предсказуемо.

Q4. Каково значение наследования в объектно-ориентированных языках?

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

В5. Что такое виртуальные функции?

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

Вопросы, заданные на этапе кодирования интервью [обновлено в 2021 г.]:

Вопрос 6. Предположим, у вас есть двумерный массив. Напишите программу, которая проверяет, равен ли какой-либо элемент массива нулю. Затем сделайте всю строку и столбец нулевыми.

Решение

void rep_to_zeroes(vector<vector<int>>& matrix) { if (matrix.empty()) { return; } unordered_set<size_t> zero_rows; unordered_set<size_t> zero_cols; size_t rows = matrix.size(); size_t cols = matrix[0].size(); for (size_t p = 0; p < rows; ++p) { for (size_t q = 0; q < cols; ++q) { if (matrix[p][q] == 0) { if (zero_rows.find(p) == zero_rows.end()) { zero_rows.insert(p); } if (zero_cols.find(q) == zero_cols.end()) { zero_cols.insert(q); } } } } for (size_t r : zero_rows) { for (size_t c = 0; c < cols; ++c) { matrix[r][c] = 0; } } for (size_t c : zero_cols) { for (size_t r = 0; r < rows; ++r) { matrix[r][c] = 0; } } } bool is_row_or_col_zero(vector<vector<int>>& matrix, int r, int c) { size_t rows = matrix.size(); size_t cols = 0; if (rows > 0) { cols = matrix[0].size(); } for (int p = 0; p < cols; ++p) { if (matrix[r][p] == 0) { return true; } } for(int p = 0; p < rows; ++p) { if (matrix[p][c] == 0) { return true; } } return false; } void verify(vector<vector<int>>& matrix) { auto mat_copy = matrix; rep_to_zeroes(matrix); size_t rows = matrix.size(); size_t cols = 0; if (rows > 0) { cols = matrix[0].size(); } for (int p = 0; p < rows; ++p) { for (int q = 0; q < cols; ++q) { if (is_row_or_col_zero(mat_copy, p, q)) { assert(matrix[p][q] == 0); } } } } int main(int argc, char const *argv[]) { vector<vector<int>> matrix = { {1, 5, 45, 0, 81}, {6, 7, 2, 82, 8}, {20, 22, 49, 5, 5}, {0, 23, 50, 0, 92} }; print_matrix(matrix); verify(matrix); print_matrix(matrix); matrix = create_random_matrix(5, 5); print_matrix(matrix); verify(matrix); print_matrix(matrix); for (int p = 0; p < 25; p++) { for (int q = 0; q < 25; q++) { matrix = create_random_matrix(p, q); verify(matrix); } } return 0; }

Q7. Если вам дана строка, напишите программу для удаления всех дубликатов данной строки. Решение

#include <bits/stdc++.h> using namespace std; char *remove_duplicate(char str[], int n) { // Used as index in the modified string int index = 0; // Traverse through all characters for (int p=0; p<n; p++) { // Check if str[p] is present before it int q; for (q=0; q<p; q++) if (str[p] == str[q]) break; // If not present, then add it to // result. if (q == p) str[index++] = str[p]; } return str; } // Driver code int main() { char str[]= "jeepsforjeeps"; int n = sizeof(str) / sizeof(str[0]); cout << remove_duplicate(str, n); return 0; }

Хотите решить вопросы интервью, заданные в Amazon, Facebook, Microsoft и других, посетите CodeStudio.

Вы уже решили Проблему детских имен в Code Studio? Если нет, то сделайте это сейчас.

Q8. Перепишите код после удаления ошибок из следующего кода:

Решение:

int sum, diff, prod, quotient, mod; int a, b; cout<<"Enter the value of a ="; cin>>a; cout<<"Enter the value of b ="; cin>>b; sum=a+b; diff=a-b; prod=a*b; quotient=a/b; mod=a%b;

Q9. Запишите вывод следующего программного кода C++.

Предположим, что все необходимые заголовочные файлы уже включены в программу.

Решение:

using namespace std; typedef char STRING[80]; void MIXITNOW(STRING S) { int Size=strlen(S); for (int I=0;I<Size;I+=2) { char WS=S[I]; S[I]=S[I+1]; S[I+1]=WS; } for (int I=1;I<Size;I+=2) if (S[I]>='M' && S[I]<='U') S[I]='@'; } int main() { STRING Word="CRACKAJACK"; MIXITNOW(Word); cout<<Word<<endl; return 0; } RCCAAKAJKC

Q10. В чем разница между линейными и нелинейными структурами данных?

Линейная структура данных — это структура, элементы которой образуют последовательность или линейный список. Примерами линейных структур данных являются массивы и связанные списки. Нелинейные структуры данных в основном используются для представления данных, содержащих иерархические отношения между элементами.

Примерами нелинейных структур данных являются записи, деревья, графы.

Q11. Что такое класс итератора?

Класс Iterator позволяет вам получать доступ к классам внутри контейнеров, которые содержат структуры данных, классы и абстрактные типы данных.

Итераторы имеют решающее значение для понимания функционирования стандартной библиотеки шаблонов C++ (STL), поскольку они предлагают способ доступа к данным, хранящимся в классах-контейнерах, например к картам, спискам, векторам и т. д.

Часто задаваемые вопросы

Каковы вопросы для собеседования по языку C++?

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

Какие основы C++?

Основы C++ включают указатели, рекурсию, динамическое размещение, структуры данных, алгоритмы поиска и сортировки.

Как мне подготовиться к C++?

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

Каковы основные вопросы на собеседовании по C++?

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

Вывод

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

Присоединяйтесь к Coding Ninjas сегодня! Наша обученная и преданная своему делу команда инструкторов позаботится о том, чтобы к моменту окончания курса вы овладели искусством C++.

Более того, если вам интересно читать книги, вот список некоторых книг по C++.

Первоначально опубликовано на https://www.codingninjas.com.