Топ 50 въпроси и отговори за интервю за програмиране, които трябва да знаете
Търсите най-добрите въпроси и отговори за програмиране, които да ви помогнат да проведете интервю? Ето топ 50.

Софтуерните компании винаги търсят добър талант в програмирането, като телефонните и онлайн интервюта често решават съдбата ви само за няколко минути.
Добрият програмист трябва да бъде възможно най-гъвкав – от разбиране на системи до общо програмиране, различни концепции и технологии, както и да бъде актуален.
Следва списък с 50 топ въпроса за интервю за програмиране и техните отговори. Те хвърлят светлина върху разнообразните концепции, които всеки начинаещ трябва да знае, за да превъзхожда.
1. Какво е компютърно програмиране?
Компютърното програмиране е процес на кодиране на логически процеси, които да бъдат изпълнени от компютър. Това се постига чрез използване на компютърен език, който съдържа необходимите инструкции.
Процесът може да бъде допълнително разделен на проектиране, кодиране, отстраняване на грешки и актуализиране.
2. Какво е отстраняване на грешки?
Отстраняването на грешки е процес на откриване и отстраняване на грешки в софтуерния източник на компютърна програма. Има много методи за това, но повечето среди за разработка идват с интегриран дебъгер, за да улеснят нещата.
3. Какво е компилатор?
Компилаторът е софтуерна програма, която взема написаната програма и я превръща в машинен код, който компютърът може да разбере.
Типичният компилаторен пакет обаче се състои от предпроцесор, главен компилатор, който превръща компютърния език в код за асемблиране и асемблер.
4. Какво е препроцесор?
Предварителният процесор е програма, която анализира писмения компютърен код, за да намери и удовлетвори неговите зависимости, като необходимите библиотеки.
След като препроцесорът се увери, че всичко, включително средата за изпълнение, е наред, компилаторът може да преобразува кода в код за асемблиране.
5. Какво е асемблер?
Асемблерът е програма, която взема най-ниското ниво на четим от човека компютърен код, наречен асемблер, и го превръща в машинния код, с който компютърът може да работи.
Асемблерният език обикновено се извежда от компилатор, въпреки че може да се кодира директно. Програмата за асемблиране може да включва код като:
MOV AH, 02H
но когато го компилирате в машинен код, получавате само нули и единици (напр. 0110011110101010).
6. Как се изпълнява една програма?
Първо, операционната система зарежда определената програма от хранилището на твърдия диск в системната памет (RAM) и след това й позволява да се изпълни, като насочва процесора да продължи изпълнението си от първия адрес на паметта на програмата. Централният процесор изпълнява всяка команда, която види, след което преминава към следващата, често повтаряйки тази процедура милиони пъти в секунда.
32-битовите процесори изпълняват 32-битови (4 байта, двойна дума) инструкции в движение, докато 64-битовите процесори изпълняват 64-битови (8 байта, четири думи) инструкции в движение. Тези инструкции са вградени в процесора и асемблерът превръща програмния код в двоични числа, които представляват адресите на собствените команди на процесора.
7. Дефинирайте а Подпрограма
Подпрограмата е последователност от инструкции в програма, която може да бъде извикана и изпълнена по всяко време. С други думи, подпрограмата може да бъде функция, метод или процедура, използвана за изпълнение на конкретни задачи като изпращане на имейл, отваряне на файл или грубо форсиране на страница за вход.
8. Определете Машинен код
Машинният код е поредица от двоични числа, която съдържа инструкции за изпълнение на конкретен микропроцесор и свързаните с него адреси на паметта.
Машинният код традиционно се извежда от асемблер, който е проектиран за това конкретно семейство микропроцесори.
9. Обяснете Компилирани срещу интерпретирани езици
Компилираният компютърен език трябва да бъде превърнат в машинен код, преди да бъде изпълнен на компютър, докато интерпретираният език не се нуждае от предварителна компилация.
Когато изпълнявате интерпретирана програма, тя първо се обработва от интерпретатор, който след това я компилира и изпълнява в движение. Тези допълнителни стъпки правят интерпретираните езици като Python по-бавни от компилираните езици като C.
10. Какво е Loop?
Цикълът е кодова структура, която може да повтаря конкретни изрази, докато не бъде постигнат определен критерий. Този критерий може да включва фиксиран брой повторения или промяна на определена променлива.
11. Избройте популярни видове Loops
Различните компютърни езици ще интерпретират циклите по различни начини. Популярните типове цикли от семейство C обаче включват:
- Цикъл while(). – позволява изпълнение на специфичен код, стига да е булев докато () условието е изпълнено.
Например while(2>1){print(“yahoo!”)};. - За (;;) цикъл – съдържа три израза (инициализация; оценка; актуализация), които определят условията за тестване, както и гъвкав метод за увеличаване на броя. Освен това ще изпълни код поне веднъж.
- Do{} While() цикъл – този тип цикъл изпълнява правя{} кодирайте поне веднъж, преди да определите дали докато () условието все още е вярно.
12. Обяснете Итерация срещу Рекурсия
Итерацията е използването на цикъл за изпълнение на едни и същи кодови стъпки, докато рекурсията е процес на функция, която се извиква отново и отново. Проблемът с рекурсията обаче е, че можете да стигнете само до определена дълбочина, докато не се натъкнете на проблеми с паметта.
13. Обяснете работата на Прекъснете и продължете в A Loop
A почивка операторът завършва изпълнението на цикъл и продължава изпълнението на останалата част от компютърния код. А продължи операторът, от друга страна, продължава итерирането на цикъла от самото начало.
14. Какво е ООП?
OOP означава Обектно ориентирано програмиране и това е програмна парадигма, която реализира софтуерен дизайн около данни и обекти, а не около функции или процедури.
15. Какво е процедурно програмиране?
Процедурното програмиране е програмна парадигма, която организира компютърен код около последователностите или стъпките от инструкции, които трябва да бъдат изпълнени. Както подсказва името, това е подход отгоре надолу, който започва кода от началната фаза на събитията и завършва с очаквания край на събитията.
16. Обяснете функционалното програмиране
Функционалното програмиране е парадигма за компютърно програмиране, която подхожда към разработката на софтуер чрез прилагане на последователни функции, които нито променят състоянието, нито данните на предоставените аргументи.
Целта е да се създадат по-стабилни програми, които дават очакваните резултати без непредвидени странични ефекти.
17. Обяснете Език на високо ниво
Езикът за програмиране от високо ниво е компютърен език, който се харесва повече на човешкото разбиране, отколкото на спецификата или природата на компютъра.
Езиците за програмиране на високо ниво като C и Python са лесни за разбиране, докато асемблерният език на ниско ниво може да бъде много объркващ за начинаещите.
18. Списък с популярни Езици на ниско ниво
Има само два езика за програмиране на ниско ниво: асемблер и машинен код.
19. Дефинирайте SQL Injection Attack
Атаката чрез SQL инжектиране е процес на въвеждане на SQL изрази в полета за въвеждане като входове на потребителско име или адрес, с надеждата, че разработчикът не е дезинфекцирал правилно входовете по време на програмиране. И когато е успешна, такава атака позволява на атакуващия да получи администраторски достъп до сървъра.
20. Какво е таблица в SQL?
Таблица в SQL се отнася до колекция от данни, които са групирани в колони и редове. Всяка колона има различен тип данни и можете да имате няколко таблици в една база данни. Можете също да направите заявка за повече от една таблица наведнъж.
Създавате таблица с:
CREATE TABLE table_name(колона1 тип данни, колона2 тип данни, колона3 тип данни, …);
21. Обяснете разликата между обект и клас
Обектът е екземпляр на клас, докато класът е план, от който се създава обект. Един обект може да има състояния и свойства, като цвят, височина, тегло, скорост и т.н.
Тези свойства трябва да бъдат дефинирани или инициализирани поне със стойности по подразбиране.
22. Колко бита правят един мегабайт?
Има 8,000,000 1 8 бита в 10 мегабайт, защото един байт е XNUMX бита, а един мега е XNUMX6.
23. Дефинирайте тип данни Float
Плаващото число е тип данни, който представлява число с десетични дроби. Използва се в ситуации, когато е необходимо по-високо ниво на точност от това, което могат да осигурят стандартните цели числа. Пример за плувка е:
0.013
or
25.932
24. Какво означава HexaDecimal 0xFF?
0xFF означава Decimal 255 или Binary 11111111. 0x означава base16 или Hexadecimal нотация, която върви от 1 до 9 и след това продължава с A до F, за да представи 15. Така че 0xF е десетично 15, докато 0xFF е десетично 255.
25. Наименувайте видовете грешки в програмирането
Има 3 основни вида грешки в компютърната програма, те са:
- Синтактична грешка
- Логическа грешка
- Грешка по време на работа
26. Какво е синтактична грешка?
Синтактична грешка възниква, когато има отклонение от често строгия синтаксис на езиците за програмиране. Това може да е резултат от простото неправилно поставяне на букви към грешни параметри, които се предават на функция. Повечето компилатори ще включват номера на реда на изходния код, където е възникнала грешката.
27. Какво е логическа грешка?
Логическа грешка е грешка, която възниква от начина, по който работи програмата. Така че, въпреки че програмата може да се изпълнява безупречно, тя не успява да постигне целта си. Логическите грешки могат да възникнат по много начини и да бъдат причинени от много причини.
28. Какво е грешка по време на изпълнение?
Грешка по време на изпълнение е грешка в компютърната програма, която възниква по време на изпълнение на програмата и поради непредвидени обстоятелства. Така че, докато програмата работи безупречно, например, проблеми с паметта и мрежата могат да причинят неправилно поведение на програмата.
29. Обяснете Силни срещу слабо типизирани езици
Силно типизираният език е строг по отношение на различните си типове данни и как можете да ги конвертирате, докато слабо типизираният език поставя по-малко ограничения върху типовете данни и техните дефиниции.
Много слабо типизирани езици ще конвертират типовете данни автоматично, докато силно типизираните езици често изискват изрични преобразувания.
30. Какво е MVC архитектура?
MVC се отнася до Model-View-Controller и е модел за разработка на софтуер за потребителски интерфейси. Той разделя логиката на програмата на 3 части.
- модел част обработва основната логика на данните на въпросните обекти, докато изглед управлява показването на информация на потребителя и регулатор управлява потока от данни между изгледите и моделите. MVC дизайнът често се използва с обектно-ориентирано програмиране.
31. Определете an алгоритъм
Алгоритъмът е последователност от процедури, предназначени да решат конкретен проблем. Тези процедури обикновено се разделят на по-малки стъпки и компютърът ги прави точно по този начин всеки път.
Примерите за алгоритми включват лицево разпознаване, търсене в Google, начинът, по който завързвате обувките си, кодиране или криптиране на данни и т.н.
32. Какво е Машинно обучение?
Машинното обучение или ML е част от изкуствения интелект, която се фокусира върху подпомагането на системите да идентифицират модели и да вземат решения сами чрез потребление на данни.
След това това подобрява тяхната производителност или ефективност. Системите за машинно обучение могат да бъдат контролирани, неконтролирани и базирани на подсилване.
33. Какво са Регулярни изрази?
Регулярният израз или Regex е низ, използван за определяне на модели за търсене в текстови документи. Различни езици за програмиране прилагат регулярни изрази или използват популярни библиотеки с регулярни изрази. Примерен регулярен израз за съвпадение на всички знаци в текст е:
(.*)
докато следното съответства само на mp3 файлове:
.+\.(mp3)$
34. Какво прави операторът Modulus (%)?
Операторът на модула % взема два операнда и разделя първия операнд с помощта на втория. След това връща остатъка от операцията като резултат.
Често се използва за тестване на четни и нечетни числа чрез разделяне на което и да е цяло число на 2, където резултат 0 означава четно число, а 1 означава нечетно число.
35. Обяснете Разклоняване на процеса
Forking идва от вилица () функция в Unix и Linux системи, която може да се използва от работещ процес за създаване на копие на себе си. И така, разклоняването на процеса е дублиране на процес за създаване на два подобни и едновременно изпълняващи се процеса.
Допълнителен тип разклонение се отнася до вземане на изходния код на проект с отворен код и създаване на изцяло нова програма от него.
36. Обяснете Хвърляне на нишка
Създаването на нишка е процесът на създаване на нова нишка на процесора за изпълнение на процес. Spawning често се използва от програми с интензивни изчисления, за да се възползват от многонишковите възможности на процесора и неговият успех зависи от процесора, на който работи, колко ядра има и колко нишки на ядро предлага.
37. Какво правя Запазени думи Означава?
Запазените думи са термини, които нямате право да използвате като идентификатор в език за програмиране. Това включва функции, променливи и етикети. Те са запазени, защото вече са дефинирани и имат конкретни значения.
38. Избройте популярни запазени думи
Различните езици имат различни запазени думи въз основа на техния синтаксис. Ето най-популярните запазени думи в програмирането:
- IF
- TRUE
- FALSE
- SWITCH
- ELSE
- CASE
- БОЛЕВО
- RETURN
- ФУНКЦИЯ
- BREAK
- GOTO
39. Какво е низ?
Низът е поредица от знаци, често съхранявана в масив и използвана за дефиниране на текстови данни. Най-популярният низ е "hello world".
40. Какво е променлива?
Променлива е всяка стойност, която може да се променя по време на изпълнение на програмата. Променливата може да бъде от всякакъв тип данни, включително низове и цели числа. Например една програма се инициализира по следния начин:
int a = 0;
int b = 1;
след това по време на изпълнение се правят промени:
b = a+b; //b варира
41. Какво е константа?
Константата е променлива, която не се очаква да се промени по време на изпълнение на програмата. Добър пример е скоростта на светлината или звука. Различните езици за програмиране ви позволяват да дефинирате константи по различни начини. Например в C:
const float middle_c = 261.62; //среден тон c на пиано е 261.6255 Hz
42. Дефинирайте масив
Масивът е тип променлива, която се използва за съхраняване на множество стойности наведнъж. Много езици ви позволяват да съхранявате стойности само от подобни типове данни, докато други езици могат да обработват масиви с различни типове. Можете също така да имате многоизмерни масиви, които са масиви от масиви и могат да се объркат.
Дефинирането на масив в mql4 е лесно с:
низ TextArray[100]; // масив от сто низа
43. Какво е Претоварване на функциите?
Претоварването на функции е метод, който позволява на разработчика да дефинира множество функции, които споделят едно и също име, но имат различни функционалности. Това се постига чрез създаване на различни версии на функции с различни аргументи. След това компилаторът знае коя функция е необходима според типа и броя на предоставените аргументи.
44. Дефинирайте а Обадете се по справка
Извикването чрез препратка е метод за предаване на адреса на паметта на аргументите към функция, за разлика от стандартния метод за предаване на копие на стойността на аргумента. Целта на референтните извиквания е аргументът да бъде директно модифициран от функцията.
45. Обяснете Аритметични оператори
Това са специални символи, които функционират за извършване на аритметични операции на език за програмиране. Аритметичните оператори включват:
- Добавката или унарният плюс (+)
- Изваждане или унарен минус (-)
- Умножение (*)
- дивизия (/)
- Модул (%).
46. Обяснете логически оператори
Логическите оператори са думи или символи, които се използват за извършване на операции въз основа на условна логика. Повечето езици имат само 3 логически оператора:
- И (&& в C, C++, JavaScript)
- OR (|| в C, C++, JavaScript)
- НЕ (! в C, C++, JavaScript)
47. Логическо 1 И 0 =?
Логическа операция 1 И 0 ще ви даде фалшив тъй като вторият операнд е 0 и трябва и двата операнда на операцията AND да бъдат 1 или TRUE, за да получите положителен резултат.
48. Логично НЕ 1 =?
Логична операция NOT 1 ще ви даде фалшив тъй като операторът NOT отрича всичко, което му давате, което означава, че превръща 1 в 0 и 0 в 1. Така че, даването на операнд 1 или TRUE води до 0 или FALSE.
49. Логическа 1 NAND 1 =?
Ще се получи логическа 1 NAND 1 операция фалшив защото и двата операнда са TRUE и операторът NAND винаги отрича два подобни входа, за да произведе противоположен изход.
По този начин, ако операцията беше 0 NAND 0, тогава изходът ще бъде 1 или TRUE.
50. Логическа 1 XOR 1 =?
Ще се получи логическа 1 XOR 1 операция фалшив тъй като докато нормална операция OR ще произведе TRUE при единия или двата входа, които са TRUE, операция XOR (изключително ИЛИ) генерира TRUE само когато само един вход, а не другият, е TRUE.
Заключение
Стигнахме до края на този списък с топ 50 въпроса за интервю за програмиране, които трябва да знаете, и техните отговори. И както виждате, светът на програмирането е огромен, но вълнуващ.
Няма две еднакви интервюта. Така че, докато този списък ви насочва в правилните насоки по темата, вие също трябва да се опитате да разберете по-добре всеки проблем.





