Top 50 de întrebări și răspunsuri la interviu de programare pe care trebuie să le cunoașteți

Căutați cele mai bune întrebări și răspunsuri de programare care să vă ajute să obțineți un interviu? Iată primele 50.

Companiile de software sunt mereu în căutarea talentelor bune de programare, interviurile telefonice și online care de multe ori îți decid soarta în doar câteva minute.

Un programator bun trebuie să fie cât mai versatil posibil – de la înțelegerea sistemelor la programare generală, diferite concepte și tehnologii, precum și să fie la zi.

Următoarea este o listă cu 50 de întrebări de top pentru interviul de programare și răspunsul lor. Ele aruncă o lumină asupra conceptelor variate pe care fiecare începător trebuie să le cunoască pentru a excela.

Cuprins ascunde

1. Ce este programarea computerelor?

Programarea computerelor este procesul de codificare a proceselor logice care urmează să fie executate de un computer. Acest lucru se realizează prin utilizarea unui limbaj de calculator care conține instrucțiunile necesare.

Procesul poate fi împărțit în continuare în proiectare, codare, depanare și actualizare.

2. Ce este Depanarea?

Depanarea este procesul de descoperire și eliminare a erorilor din sursa software a unui program de calculator. Există multe metode de a face acest lucru, dar majoritatea mediilor de dezvoltare vin cu un depanator integrat pentru a ușura lucrurile.

3. Ce este un compilator?

Un compilator este un program software care preia programul scris și îl transformă în cod de mașină pe care un computer îl poate înțelege.

Un pachet tipic de compilator, totuși, este format dintr-un pre-procesor, compilatorul principal care transformă limbajul computerului în cod de asamblare și un asamblator.

4. Ce este un pre-procesor?

Un pre-procesor este un program care analizează codul scris al computerului pentru a găsi și a satisface dependențele acestuia, cum ar fi bibliotecile necesare.

După ce pre-procesorul se asigură că totul, inclusiv mediul de execuție, este în regulă, un compilator poate converti codul în cod de asamblare.

5. Ce este un asamblator?

Un asamblator este un program care preia cel mai scăzut nivel de cod de computer care poate fi citit de om numit limbaj de asamblare și îl transformă în codul mașinii cu care poate lucra un computer.

Limbajul de asamblare este de obicei scos de un compilator, deși se poate codifica și direct. Un program de asamblare poate include cod precum:

MOV AH, 02H

dar când îl compilați în codul mașinii, obțineți doar zerouri și unu (de exemplu, 0110011110101010).

6. Cum se execută un program?

Mai întâi, sistemul de operare încarcă programul specificat de pe hard disk în memoria de sistem (RAM) și apoi îi permite să se execute direcționând CPU-ului să-și continue execuția de la prima adresă de memorie a programului. CPU execută orice comandă pe care o vede, apoi trece la următoarea, repetând adesea această procedură de milioane de ori pe secundă.

Procesoarele pe 32 de biți execută instrucțiuni pe 32 de biți (4 octeți, cuvânt dublu) dintr-o dată, în timp ce procesoarele pe 64 de biți execută instrucțiuni pe 64 de biți (8 octeți, cuvânt dublu). Aceste instrucțiuni sunt încorporate în CPU și este asamblatorul care transformă codul de programare în numere binare care reprezintă adresele de comenzi native ale CPU.

7. Definiți a Subrutină

O subrutină este o secvență de instrucțiuni dintr-un program care poate fi apelată și executată în orice moment. Cu alte cuvinte, o subrutină poate fi o funcție, o metodă sau o procedură utilizată pentru a implementa anumite sarcini, cum ar fi trimiterea unui e-mail, deschiderea unui fișier sau forțarea brută a unei pagini de conectare.

8. Definiți Codul mașinii

Codul mașinii este o secvență de numere binare care conține instrucțiuni de execuție ale unui anumit microprocesor și adresele de memorie asociate acestuia.

Codul mașinii este transmis în mod tradițional de un asamblator care este proiectat pentru acea familie particulară de microprocesoare.

9. Explicați Limbi compilate vs interpretate

Un limbaj de computer compilat trebuie transformat în cod de mașină înainte de a fi executat pe un computer, în timp ce un limbaj interpretat nu necesită compilare prealabilă.

Când executați un program interpretat, acesta este mai întâi procesat de un interpret, care apoi îl compilează și îl execută din mers. Acești pași suplimentari fac limbajele interpretate precum Python mai lente decât limbajele compilate, cum ar fi C.

10. Ce este o buclă?

O buclă este o structură de cod care poate repeta anumite instrucțiuni până la atingerea unui criteriu specificat. Acest criteriu poate include un număr fix de repetări sau schimbarea unei variabile definite.

11. Enumerați tipurile populare de bucle

Diferite limbaje de calculator vor interpreta buclele în moduri diferite. Cu toate acestea, tipurile de bucle populare din familia C includ:

  1. Buclă While(). – permite executarea unui anumit cod, atâta timp cât un boolean in timp ce() condiția este îndeplinită.
    De exemplu while(2>1){print(„yahoo!”)};.
  2. Pentru(;;) Buclă – conține trei expresii (initializare; evaluare; actualizare) care definesc condițiile pentru care trebuie testat, precum și o metodă flexibilă de creștere a numărului. De asemenea, va executa codul cel puțin o dată.
  3. Do{} While() Loop – acest tip de buclă execută do{} codificați cel puțin o dată înainte de a determina dacă in timp ce() condiția este încă adevărată.

12. Explicați iterația vs Recursivitate

O iterație este utilizarea unei bucle pentru a executa aceiași pași de cod, în timp ce recursiunea este procesul unei funcții care se autoapelează din nou și din nou. Problema cu recursiunea, totuși, este că poți ajunge doar la o anumită adâncime până când te confrunți cu probleme de memorie.

13. Explicați locurile de muncă ale Rupeți și continuați în A Loop

A rupe instrucțiunea încheie execuția unei bucle și continuă executarea restului codului computerului. O continua instrucțiunea, pe de altă parte, continuă să itereze bucla de la început.

14. Ce este OOP?

OOP înseamnă programare orientată pe obiecte și este o paradigmă de programare care implementează proiectarea software în jurul datelor și obiectelor, mai degrabă decât în ​​jurul funcțiilor sau procedurilor.

15. Ce este programarea procedurală?

Programarea procedurală este o paradigmă de programare care organizează codul computerului în jurul secvențelor sau pașilor instrucțiunilor care urmează să fie executate. După cum sugerează și numele, este o abordare de sus în jos care începe codul din faza inițială a evenimentelor și se termină cu sfârșitul așteptat al evenimentelor.

16. Explicați programarea funcțională

Programarea funcțională este o paradigmă de programare a computerelor care abordează dezvoltarea software-ului prin aplicarea de funcții secvențiale care nu modifică nici starea, nici datele argumentelor furnizate.

Scopul este de a crea programe mai robuste care să producă rezultatele așteptate fără efecte secundare neprevăzute.

17. Explicați Limbaj la nivel înalt

Un limbaj de programare de nivel înalt este un limbaj de calculator care apelează mai mult la înțelegerea umană decât la specificul sau natura computerului.

Limbajele de programare de nivel înalt, cum ar fi C și Python, sunt ușor de înțeles, în timp ce un limbaj de asamblare de nivel scăzut poate fi foarte confuz pentru cei începători.

18. Lista populară Limbi de nivel scăzut

Există doar două limbaje de programare de nivel scăzut: asamblare și cod de mașină.

19. Definiți un atac de injecție SQL

Un atac de injecție SQL este un proces de introducere a instrucțiunilor SQL în câmpuri de intrare, cum ar fi intrările de nume de utilizator sau adrese, în speranța că un dezvoltator nu a igienizat corect intrările în timpul programării. Și când are succes, un astfel de atac îi permite atacatorului să obțină acces de administrator la server.

20. Ce este un tabel în SQL?

Un tabel în SQL se referă la o colecție de date care sunt grupate în coloane și rânduri. Fiecare coloană are un tip de date distinct și puteți avea mai multe tabele într-o singură bază de date. De asemenea, puteți interoga mai mult de un tabel simultan.

Creați un tabel cu:

CREATE TABLE table_name(coloana1 tipul de date, coloana2 tipul de date, coloana3 tipul de date, …);

21. Explicați diferența dintre un obiect și o clasă

Un obiect este o instanță a unei clase, în timp ce o clasă este un plan din care este creat un obiect. Un obiect poate avea stări și proprietăți, cum ar fi culoarea, înălțimea, greutatea, viteza și așa mai departe.

Aceste proprietăți trebuie să fie definite sau inițializate cel puțin cu valori implicite.

22. Câți biți fac un megaoctet?

Există 8,000,000 de biți într-un megaoctet, deoarece un octet este de 1 biți și un mega este de 86.

23. Definiți un tip de date flotant

Un float este un tip de date care reprezintă un număr cu fracții zecimale. Este utilizat în situațiile în care este nevoie de un nivel mai mare de precizie decât ceea ce pot oferi numerele întregi standard. Un exemplu de plutitor este:

0.013 

or 

25.932

24. Ce înseamnă HexaDecimal 0xFF?

0xFF înseamnă Decimal 255 sau Binary 11111111. 0x reprezintă baza 16 sau notația hexazecimală, care rulează de la 1 la 9 și apoi continuă cu A la F pentru a reprezenta 15. Deci, 0xF este zecimala 15, în timp ce 0xFF este zecimală 255.

25. Numiți tipurile de erori în programare

Există 3 tipuri majore de erori într-un program de calculator, acestea sunt:

  1. Eroare de sintaxă
  2. Eroare logică
  3. Eroare de execuție

26. Ce este o eroare de sintaxă?

O eroare de sintaxă apare atunci când există o abatere de la sintaxa adesea strictă a limbajelor de programare. Ar putea rezulta din simpla deplasare greșită a literelor la parametrii greșiți, trecând la o funcție. Majoritatea compilatoarelor vor include numărul liniei codului sursă unde s-a produs eroarea.

27. Ce este o eroare logică?

O eroare de logică este o eroare care apare din modul în care funcționează un program. Deci, deși programul se poate executa impecabil, nu își atinge scopul. Erorile logice pot apărea în multe feluri și pot fi cauzate de multe motive.

28. Ce este o eroare de rulare?

O eroare de rulare este o eroare de program de calculator care apare în timpul execuției programului și din cauza unor circumstanțe neprevăzute. Așadar, în timp ce programul funcționează impecabil, de exemplu, problemele de memorie și de rețea pot determina un comportament incorect al programului.

29. Explicați Limbi puternice vs slab tipizate

Un limbaj puternic tastat este strict în ceea ce privește diferitele sale tipuri de date și modul în care le puteți converti, în timp ce un limbaj cu tastare slabă impune mai puține restricții asupra tipurilor de date și definițiilor acestora.

Multe limbi scrise slab vor converti tipurile de date în mod automat, în timp ce limbile cu tastare puternică necesită adesea conversii explicite.

30. Ce este arhitectura MVC?

MVC se referă la Model-View-Controller și este un model de dezvoltare software pentru interfețele utilizator. Separă logica programului în 3 părți.

model partea se ocupă de logica datelor de bază a obiectelor în cauză, în timp ce Vizualizează se ocupă de afișarea informațiilor către utilizator și controlor gestionează fluxul de date între vederi și modele. Designul MVC este adesea folosit cu programarea orientată pe obiecte.

31. Definiți an Algoritm

Un algoritm este o secvență de proceduri concepute pentru a rezolva o anumită problemă. Aceste proceduri sunt de obicei împărțite în pași mai mici și computerul le face exact așa de fiecare dată.

Exemplele de algoritmi includ recunoașterea facială, căutarea Google, modul în care vă legați pantofii, codificarea sau criptarea datelor și așa mai departe.

32. Ce este Învățare automată?

Învățarea automată sau ML este o secțiune a inteligenței artificiale care se concentrează pe a ajuta sistemele să identifice tipare și să ia decizii pe cont propriu prin consumul de date.

Acest lucru le îmbunătățește apoi performanța sau eficiența. Sistemele de învățare automată pot fi supravegheate, nesupravegheate și bazate pe întărire.

33. Care sunt Expresii regulate?

O expresie regulată sau Regex este un șir folosit pentru a defini modelele de căutare în documentele text. Diferite limbaje de programare implementează expresii regulate sau folosesc biblioteci populare de expresii regex. Un exemplu regex pentru a se potrivi cu toate caracterele dintr-un text este:

(.*)

în timp ce următoarele se potrivesc numai fișierelor mp3:

.+\.(mp3)$

34. Ce face operatorul Modulus (%)?

Operatorul de modul % ia doi operanzi și împarte primul operand folosind al doilea. Apoi returnează restul operației ca rezultat.

Este adesea folosit pentru a testa numerele pare și impare prin împărțirea oricărui număr întreg la 2, unde un rezultat 0 înseamnă un număr par și 1 înseamnă un număr impar.

35. Explicați Bifurcarea procesului

Bifurcarea vine de la furculiţă() funcția în sistemele Unix și Linux care poate fi utilizată de un proces care rulează pentru a crea o copie a lui însuși. Deci, procesul de bifurcare este duplicarea unui proces pentru a crea două procese similare și care se execută simultan.

Un alt tip de bifurcare se referă la preluarea codului sursă al unui proiect open-source și crearea unui program complet nou din acesta.

36. Explicați Apariția firului

Crearea firelor de execuție este procesul de creare a unui nou fir CPU pentru a rula un proces. Spawning-ul este adesea folosit de programele intensive de calcul pentru a valorifica capabilitățile multi-threading ale procesorului, iar succesul acestuia depinde de CPU pe care rulează, de câte nuclee are și de câte fire de execuție pe nucleu oferă.

37. Ce să faci Cuvinte rezervate Rău?

Cuvintele rezervate sunt termeni pe care nu aveți voie să îi folosiți ca identificator într-un limbaj de programare. Aceasta include funcții, variabile și etichete. Sunt rezervate pentru că au fost deja definite și au semnificații specifice.

38. Listați populare cuvinte rezervate

Limbi diferite au cuvinte rezervate diferite în funcție de sintaxa lor. Iată cele mai populare cuvinte rezervate în programare:

  1. IF
  2. TRUE
  3. FALS
  4. SWITCH
  5. ELSE
  6. CASE
  7. BOOLEAN
  8. A REVENI
  9. FUNCȚIA
  10. BREAK
  11. MERGI LA

39. Ce este un șir?

Un șir este o secvență de caractere, adesea ținută într-o matrice și folosită pentru a defini date text. Cel mai popular șir este „hello world”.

40. Ce este o variabilă?

O variabilă este orice valoare care se poate modifica în timpul execuției unui program. O variabilă poate fi de orice tip de date, inclusiv șiruri de caractere și numere întregi. De exemplu, un program este inițializat după cum urmează:

int a = 0;

int b = 1;

apoi în timpul execuției se fac modificări:

b = a+b; //b a variat

41. Ce este o constantă?

O constantă este o variabilă care nu se așteaptă să se schimbe în timpul execuției programului. Un bun exemplu este viteza luminii sau a sunetului. Diferite limbaje de programare vă permit să definiți constante în moduri diferite. De exemplu, în C:

const float middle_c = 261.62; //Tasta de mijloc c la un pian este de 261.6255 Hz

42. Definiți o matrice

O matrice este un tip de variabilă care este folosită pentru a stoca mai multe valori simultan. Multe limbi vă permit să stocați numai valori ale unor tipuri de date similare, în timp ce alte limbi pot gestiona matrice cu tipuri diferite. De asemenea, puteți avea matrice multidimensionale, care sunt matrice de matrice și pot deveni dezordonate.

Definirea unei matrice în mql4 este simplă cu:

șir TextArray[100]; //o matrice de sute de șiruri

43. Ce este Supraîncărcarea funcției?

Supraîncărcarea funcțiilor este o metodă care permite unui dezvoltator să definească mai multe funcții care au același nume, dar au funcționalități diferite. Acest lucru se realizează prin crearea diferitelor versiuni de funcții cu argumente diferite. Compilatorul știe apoi ce funcție este necesară după tipul și numărul de argumente furnizate.

44. Definiți a Apelați prin referință

Un apel prin referință este o metodă de transmitere a adresei de memorie a argumentelor unei funcții, spre deosebire de metoda standard de transmitere a unei copii a valorii argumentului. Scopul apelurilor de referință este ca argumentul să fie modificat direct de funcție.

45. Explicați Operatori aritmetici

Acestea sunt caractere speciale care funcționează pentru a efectua operații aritmetice într-un limbaj de programare. Operatorii aritmetici includ:

  1. Adăugarea sau plusul unar (+)
  2. Scădere sau minus unar (-)
  3. Înmulțire (*)
  4. Divizia (/)
  5. Modul (%).

46. Explicați Operatori logici

Operatorii logici sunt cuvinte sau simboluri care sunt folosite pentru a efectua operații bazate pe logica condiționată. Majoritatea limbilor au doar 3 operatori logici:

  1. AND (&& în C, C++, JavaScript)
  2. OR (|| în C, C++, JavaScript)
  3. NU (! în C, C++, JavaScript)

47. 1 logic ŞI 0 =?

O operație logică 1 ȘI 0 vă va oferi fals deoarece al doilea operand este 0 și aveți nevoie ca ambii operanzi ai operației AND să fie 1 sau TRUE pentru a obține rezultate pozitive.

48. NU logic 1 =?

O operațiune logică NU 1 vă va oferi fals deoarece operatorul NOT neagă tot ceea ce îi dați, adică transformă 1 în 0 și 0 în 1. Deci, dacă îi dați un operand 1 sau TRUE rezultă 0 sau FALSE.

49. logic 1 NAND 1 =?

Se va produce o operație logică 1 NAND 1 fals deoarece ambii operanzi sunt adevărați și operatorul NAND neagă întotdeauna două intrări similare pentru a produce o ieșire opusă.

Astfel, dacă operația a fost 0 NAND 0, atunci rezultatul ar fi 1 sau TRUE.

50. logic 1 XOR 1 =?

Se va produce o operație logică 1 XOR 1 fals deoarece, în timp ce o operație OR normală va produce TRUE pe una sau ambele intrări fiind TRUE, o operație XOR (SAU exclusiv) produce TRUE numai atunci când doar o intrare și nu cealaltă, este TRUE.

Concluzie

Am ajuns la sfârșitul acestei liste cu primele 50 de întrebări de interviu de programare pe care trebuie să le cunoașteți și răspunsurile acestora. Și după cum puteți vedea, lumea programării este vastă, dar interesantă.

Nu există două interviuri la fel. Așadar, deși această listă vă indică direcțiile corecte ale subiectului, ar trebui să încercați, de asemenea, să înțelegeți mai bine fiecare problemă.

Nnamdi Okeke

Nnamdi Okeke

Nnamdi Okeke este un pasionat de computere căruia îi place să citească o gamă largă de cărți. Are o preferință pentru Linux față de Windows/Mac și a folosit
Ubuntu încă de la începuturile sale. Îl poți prinde pe twitter prin intermediul bongotrax

Articole: 298

Primiți chestii de tehnologie

Tendințe tehnice, tendințe de pornire, recenzii, venituri online, instrumente web și marketing o dată sau de două ori pe lună