50 главных вопросов и ответов на собеседовании по программированию

Ищете лучшие вопросы и ответы по программированию, которые помогут вам пройти собеседование? Вот топ-50.

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

Хороший программист должен быть как можно более универсальным — от понимания систем до общего программирования, различных концепций и технологий, а также быть в курсе последних событий.

Ниже приведен список из 50 самых популярных вопросов на собеседовании по программированию и ответы на них. Они проливают свет на различные концепции, которые должен знать каждый новичок, чтобы преуспеть.

Содержание скрывать

1. Что такое компьютерное программирование?

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

Процесс можно разделить на проектирование, кодирование, отладку и обновление.

2. Что такое отладка?

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

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

Компилятор — это программа, которая берет написанную программу и превращает ее в машинный код, понятный компьютеру.

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

4. Что такое препроцессор?

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

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

5. Что такое ассемблер?

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

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

МОВ АХ, 02H

но когда вы скомпилируете его в машинный код, вы получите только нули и единицы (например, 0110011110101010).

6. Как выполняется программа?

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

32-разрядные процессоры одновременно выполняют 32-разрядные (4 байта, двойное слово) инструкции, в то время как 64-разрядные процессоры одновременно выполняют 64-разрядные (8 байтов, четверное слово) инструкции. Эти инструкции встроены в ЦП, и именно ассемблер преобразует программный код в двоичные числа, которые представляют собственные адреса команд ЦП.

7. Определите подпрограмма

Подпрограмма — это последовательность инструкций в программе, которую можно вызвать и выполнить в любое время. Другими словами, подпрограмма может быть функцией, методом или процедурой, используемой для реализации определенных задач, таких как отправка e-mail, открытие файла или перебор страницы входа.

8. Определите Машинный код

Машинный код — это последовательность двоичных чисел, которая содержит инструкции по выполнению конкретного микропроцессора и связанные с ним адреса памяти.

Машинный код традиционно выводится ассемблером, разработанным для данного семейства микропроцессоров.

9. Объясни Компилируемые и интерпретируемые языки

Скомпилированный компьютерный язык должен быть преобразован в машинный код перед выполнением на компьютере, в то время как интерпретируемый язык не требует предварительной компиляции.

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

10. Что такое цикл?

Цикл — это структура кода, которая может повторять определенные операторы до тех пор, пока не будет достигнут заданный критерий. Этот критерий может включать в себя фиксированное количество повторений или изменение определенной переменной.

11. Перечислите популярные типы лупов

Различные компьютерные языки интерпретируют циклы по-разному. Однако популярные типы петель семейства C включают:

  1. Пока() Цикл – он позволяет выполнять определенный код, пока логическое значение пока() условие выполнено.
    Например while(2>1){print("yahoo!")};.
  2. Цикл for(;;) – содержит три выражения (инициализация; оценка; Обновить), которые определяют условия для проверки, а также гибкий метод увеличения счетчика. Он также выполнит код хотя бы один раз.
  3. Цикл Do{} While() – этот тип цикла выполняет делать{} код по крайней мере один раз, прежде чем определить, является ли пока() условие остается верным.

12. Объясните итерацию против Рекурсия

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

13. Объясните работу Прервать и продолжить в цикле

A перерыв оператор завершает выполнение цикла и продолжает выполнение остальной части компьютерного кода. А продолжать оператор, с другой стороны, продолжает повторять цикл с самого начала.

14. Что такое ООП?

ООП означает объектно-ориентированное программирование, и это парадигма программирования, которая реализует разработку программного обеспечения вокруг данных и объектов, а не вокруг функций или процедур.

15. Что такое процедурное программирование?

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

16. Объясните функциональное программирование

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

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

17. Объясни Язык высокого уровня

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

Языки программирования высокого уровня, такие как C и Python, просты для понимания, в то время как язык ассемблера низкого уровня может сбить с толку новичков.

18. Список популярных Языки низкого уровня

Существует всего два низкоуровневых языка программирования: ассемблер и машинный код.

19. Определить атаку SQL-инъекцией

Атака путем внедрения SQL-кода — это процесс ввода операторов SQL в поля ввода, такие как имя пользователя или адрес, в надежде, что разработчик не очистил ввод должным образом во время программирования. И в случае успеха такая атака позволяет злоумышленнику получить административный доступ к серверу.

20. Что такое таблица в SQL?

Таблица в SQL относится к набору данных, сгруппированных в столбцы и строки. Каждый столбец имеет отдельный тип данных, и вы можете иметь несколько таблиц в одной базе данных. Вы также можете запросить несколько таблиц одновременно.

Вы создаете таблицу с:

CREATE TABLE имя_таблицы (тип данных столбца 1, тип данных столбца 2, тип данных столбца 3, …);

21. Объясните разницу между объектом и классом

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

Эти свойства должны быть определены или как минимум инициализированы значениями по умолчанию.

22. Сколько битов составляет один мегабайт?

В 8,000,000 мегабайте 1 8 10 бит, потому что один байт равен XNUMX битам, а один мегабайт равен XNUMX.6.

23. Определите тип данных с плавающей запятой

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

0.013 

or 

25.932

24. Что означает HexaDecimal 0xFF?

0xFF означает Decimal 255 или Binary 11111111. 0x означает base16 или шестнадцатеричное представление, которое начинается от 1 до 9, а затем продолжается с A до F для представления 15. Таким образом, 0xF — это десятичное число 15, а 0xFF — десятичное число 255.

25. Назовите типы ошибок в программировании.

В компьютерной программе есть 3 основных типа ошибок:

  1. Синтаксическая ошибка
  2. Логическая ошибка
  3. Ошибка выполнения

26. Что такое синтаксическая ошибка?

Синтаксическая ошибка возникает при отклонении от часто строгого синтаксиса языков программирования. Это могло произойти из-за простого неправильного размещения букв в неправильных параметрах, переданных в функцию. Большинство компиляторов включают номер строки исходного кода, в которой произошла ошибка.

27. Что такое логическая ошибка?

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

28. Что такое ошибка выполнения?

Ошибка выполнения — это ошибка компьютерной программы, которая возникает во время выполнения программы и из-за непредвиденных обстоятельств. Таким образом, хотя программа работает безупречно, например, проблемы с памятью и сетью могут привести к неправильной работе программы.

29. Объясни Сильные и слабо типизированные языки

Язык со строгой типизацией строг в отношении различных типов данных и способов их преобразования, в то время как язык со слабой типизацией налагает меньше ограничений на типы данных и их определения.

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

30. Что такое архитектура MVC?

MVC относится к модели-представлению-контроллеру и представляет собой шаблон разработки программного обеспечения для пользовательских интерфейсов. Он разделяет логику программы на 3 части.

" модель часть обрабатывает базовую логику данных рассматриваемых объектов, в то время как view обрабатывает отображение информации пользователю, а контроллер обрабатывает поток данных между представлениями и моделями. Дизайн MVC часто используется с объектно-ориентированным программированием.

31. Определите Алгоритм

Алгоритм — это последовательность процедур, предназначенных для решения конкретной задачи. Эти процедуры обычно разбиваются на более мелкие шаги, и компьютер каждый раз выполняет их точно так же.

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

32. Что такое Машинное обучение?

Машинное обучение или ML — это раздел искусственный интеллект основное внимание уделяется тому, чтобы помочь системам выявлять закономерности и принимать решения самостоятельно посредством потребления данных.

Это затем улучшает их производительность или эффективность. Системы машинного обучения могут быть контролируемыми, неконтролируемыми и основанными на подкреплении.

33. Что Регулярные выражения?

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

(. *)

в то время как следующее соответствует только файлам mp3:

.+\.(mp3)$

34. Что делает оператор модуля (%)?

Оператор модуля % берет два операнда и делит первый операнд на второй. Затем он возвращает оставшуюся часть операции в качестве результата.

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

35. Объясни Разветвление процесса

Разветвление происходит от вилка () функция в системах Unix и Linux, которая может использоваться запущенным процессом для создания своей копии. Итак, разветвление процесса — это дублирование процесса для создания двух похожих и одновременно выполняющихся процессов.

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

36. Объясни Создание темы

Порождение потока — это процесс создания нового потока ЦП для запуска процесса. Порождение часто используется программами с интенсивными вычислениями для использования многопоточных возможностей процессора, и его успех зависит от того, на каком процессоре он работает, сколько у него ядер и сколько потоков на ядро ​​он предлагает.

37. Что Зарезервированные слова Имею в виду?

Зарезервированные слова — это термины, которые вам не разрешено использовать в качестве идентификатора в языке программирования. Сюда входят функции, переменные и метки. Они зарезервированы, потому что они уже определены и имеют определенные значения.

38. Список популярных зарезервированных слов

Разные языки имеют разные зарезервированные слова в зависимости от их синтаксиса. Вот самые популярные зарезервированные слова в программировании:

  1. IF
  2. ИСТИНА
  3. НЕПРАВДА
  4. ВЫКЛЮЧАТЕЛЬ
  5. ELSE
  6. Кейсы
  7. БУЛЕВЫ
  8. ВЕРНУТЬ
  9. Функция
  10. BREAK
  11. GOTO

39. Что такое строка?

Строка — это последовательность символов, часто содержащаяся в массиве и используемая для определения текстовых данных. Самая популярная строка — «hello world».

40. Что такое переменная?

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

инт а = 0;

интервал б = 1;

затем во время выполнения вносятся изменения:

б = а+б; //b менялось

41. Что такое константа?

Константа — это переменная, которая не должна изменяться во время выполнения программы. Хорошим примером является скорость света или звука. Различные языки программирования позволяют определять константы по-разному. Например, в С:

const float middle_c = 261.62; // средняя клавиша до на фортепиано — 261.6255 Гц

42. Определите массив

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

Определить массив в mql4 просто:

строка TextArray[100]; // массив из сотен строк

43. Что такое Функция перегружена?

Перегрузка функций — это метод, который позволяет разработчику определять несколько функций с одинаковыми именами, но с разными функциями. Это достигается путем создания разных версий функций с разными аргументами. Затем компилятор узнает, какая функция нужна, по типу и количеству предоставленных аргументов.

44. Определите Звонить по ссылке

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

45. Объясни Арифметические операторы

Это специальные символы, которые используются для выполнения арифметических операций в языке программирования. К арифметическим операторам относятся:

  1. Сложение или унарный плюс (+)
  2. Вычитание или унарный минус (-)
  3. Умножение (*)
  4. Разделение (/)
  5. Модуль (%).

46. Объясни Логические операторы

Логические операторы — это слова или символы, которые используются для выполнения операций на основе условной логики. В большинстве языков всего 3 логических оператора:

  1. И (&& в C, C++, JavaScript)
  2. OR (|| в C, C++, JavaScript)
  3. НЕ (! в C, C++, JavaScript)

47. Логическая 1 И 0 =?

Логическая операция 1 И 0 даст вам ложный потому что второй операнд равен 0, и вам нужно, чтобы оба операнда операции И были равны 1 или TRUE, чтобы получить положительный результат.

48. Логическое НЕ 1 =?

Логическая операция NOT 1 даст вам ложный потому что оператор НЕ отрицает все, что вы ему даете, то есть он превращает 1 в 0 и 0 в 1. Таким образом, присвоение ему 1 или ИСТИННОГО операнда приводит к 0 или ЛОЖЬ.

49. Логическая 1 НЕ-И 1 =?

Логическая операция 1 NAND 1 даст ложный потому что оба операнда имеют значение ИСТИНА, а оператор И-НЕ всегда инвертирует два одинаковых входа, чтобы получить противоположный результат.

Таким образом, если операция была 0 НЕ-И 0, тогда вывод будет 1 или TRUE.

50. Логическая 1 Исключающее ИЛИ 1 =?

Логическая операция 1 XOR 1 даст ложный потому что в то время как обычная операция ИЛИ выдает ИСТИНА на одном или обоих входах, являющихся ИСТИНА, операция XOR (исключающее ИЛИ) дает ИСТИНА только тогда, когда только один вход, а не другой, является ИСТИНА.

Заключение

Мы подошли к концу этого списка из 50 самых важных вопросов для собеседования по программированию и ответов на них. Как видите, мир программирования огромен, но захватывающий.

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

Ннамди Океке

Ннамди Океке

Ннамди Океке — компьютерный энтузиаст, который любит читать самые разные книги. Он предпочитает Linux, а не Windows/Mac, и использует
Ubuntu с первых дней. Вы можете поймать его в твиттере через Бонготракс

Статей: 288

Получить технические вещи

Технические тенденции, тенденции стартапов, обзоры, онлайн-доход, веб-инструменты и маркетинг один или два раза в месяц.