50 svarbiausių programavimo interviu klausimų ir atsakymų, kuriuos būtina žinoti
Ieškote svarbiausių programavimo klausimų ir atsakymų, kurie padėtų pasiekti interviu? Čia yra 50 geriausių.

Programinės įrangos įmonės visada ieško gerų programavimo talentų, o pokalbiai telefonu ir internetu dažnai nusprendžia jūsų likimą vos per kelias minutes.
Geras programuotojas turi būti kuo įvairesnis – nuo sistemų supratimo iki bendro programavimo, skirtingų koncepcijų ir technologijų, taip pat būti naujausių.
Toliau pateikiamas 50 populiariausių programavimo interviu klausimų sąrašas ir atsakymai į juos. Jie atskleidžia įvairias sąvokas, kurias turi žinoti kiekvienas pradedantysis, kad galėtų tobulėti.
1. Kas yra kompiuterių programavimas?
Kompiuterio programavimas – tai loginių procesų, kuriuos turi vykdyti kompiuteris, kodavimo procesas. Tai atliekama naudojant kompiuterio kalbą, kurioje yra būtinos instrukcijos.
Procesą galima dar suskirstyti į projektavimą, kodavimą, derinimą ir atnaujinimą.
2. Kas yra derinimas?
Derinimas – tai kompiuterio programos programinės įrangos šaltinio klaidų aptikimo ir pašalinimo procesas. Yra daug būdų, kaip tai padaryti, tačiau daugumoje kūrimo aplinkų yra integruotas derintuvas, kad būtų lengviau.
3. Kas yra kompiliatorius?
Kompiliatorius yra programinė įranga, kuri paima parašytą programą ir paverčia ją mašininiu kodu, kurį kompiuteris gali suprasti.
Tačiau tipišką kompiliatoriaus paketą sudaro išankstinis procesorius, pagrindinis kompiliatorius, paverčiantis kompiuterio kalbą surinkimo kodu, ir surinkėjas.
4. Kas yra išankstinis procesorius?
Išankstinis procesorius yra programa, kuri analizuoja parašytą kompiuterio kodą, kad surastų ir patenkintų jo priklausomybes, pvz., reikalingas bibliotekas.
Kai išankstinis procesorius įsitikins, kad viskas, įskaitant vykdymo aplinką, yra gerai, kompiliatorius gali konvertuoti kodą į surinkimo kodą.
5. Kas yra surinkėjas?
Asembleris yra programa, kuri paima žemiausią žmogaus skaitomo kompiuterio kodo lygį, vadinamą asamblėjos kalba, ir paverčia jį mašininiu kodu, su kuriuo gali dirbti kompiuteris.
Surinkimo kalbą paprastai išveda kompiliatorius, nors galima koduoti ir tiesiogiai. Surinkimo programoje gali būti toks kodas kaip:
MOV AH, 02H
bet kai kompiliuojate į mašininį kodą, gaunate tik nulius ir vienetus (pvz., 0110011110101010).
6. Kaip veikia programa?
Pirmiausia operacinė sistema įkelia nurodytą programą iš standžiojo disko saugyklos į sistemos atmintį (RAM) ir leidžia ją vykdyti, nukreipdama CPU tęsti jos vykdymą nuo programos pirmojo atminties adreso. CPU vykdo bet kurią matomą komandą, tada pereina prie kitos, dažnai kartodamas šią procedūrą milijonus kartų per sekundę.
32 bitų CPU vienu metu vykdo 32 bitų (4 baitų, dviejų žodžių) instrukcijas, o 64 bitų CPU vienu metu vykdo 64 bitų (8 baitų, keturių žodžių) instrukcijas. Šios instrukcijos yra įmontuotos į centrinį procesorių, o surinkėjas paverčia programavimo kodą dvejetainiais skaičiais, kurie nurodo vietinius procesoriaus komandų adresus.
7. Apibrėžkite a Potvarkis
Paprogramė – tai komandų seka programoje, kurią galima iškviesti ir vykdyti bet kuriuo metu. Kitaip tariant, paprogramė gali būti funkcija, metodas arba procedūra, naudojama konkrečioms užduotims, pvz., el. laiško siuntimui, failo atidarymui arba prisijungimo puslapio prievartavimui, įgyvendinti.
8. Apibrėžkite Mašinos kodas
Mašininis kodas yra dvejetainių skaičių seka, turinti konkretaus mikroprocesoriaus vykdymo komandas ir su juo susijusius atminties adresus.
Mašinos kodą tradiciškai išveda surinkėjas, skirtas konkrečiai mikroprocesorių šeimai.
9. Paaiškink Sudarytos ir interpretuotos kalbos
Sukompiliuota kompiuterinė kalba turi būti paversta mašininiu kodu prieš paleidžiant ją kompiuteryje, o interpretuojamos kalbos nereikia iš anksto kompiliuoti.
Kai vykdote interpretuojamą programą, ją pirmiausia apdoroja vertėjas, kuris vėliau ją sukompiliuoja ir vykdo. Dėl šių papildomų veiksmų interpretuojamos kalbos, pvz., Python, yra lėtesnės nei kompiliuotos kalbos, pvz., C.
10. Kas yra kilpa?
Ciklas yra kodo struktūra, kuri gali kartoti konkrečius teiginius, kol pasiekiamas nurodytas kriterijus. Šis kriterijus gali apimti fiksuotą pakartojimų skaičių arba apibrėžto kintamojo pakeitimą.
11. Išvardykite populiarius kilpų tipus
Skirtingos kompiuterių kalbos kilpas interpretuos skirtingai. Tačiau populiarūs C šeimos kilpų tipai:
- Nors() Ciklas – leidžia vykdyti konkretų kodą, tol, kol yra Būlio reikšmė kol () sąlyga įvykdyta.
Pavyzdžiui while(2>1){spausdinti("yahoo!")};. - Už(;;) Ciklas – yra trys išraiškos (inicijavimas; vertinimas; atnaujinti), kuriose apibrėžiamos tikrintinos sąlygos, taip pat lankstus skaičiavimo padidinimo metodas. Jis taip pat vykdys kodą bent kartą.
- Atlikite{} Nors() kilpą – šio tipo kilpa vykdo daryti{} kodą bent kartą prieš nustatydami, ar kol () sąlyga vis dar teisinga.
12. Paaiškinkite iteraciją vs Rekursija
Iteracija yra ciklo naudojimas tiems patiems kodo žingsniams atlikti, o rekursija yra funkcijos, kuri vėl ir vėl išsikviečia, procesas. Tačiau rekursijos problema yra ta, kad galite pasiekti tik tam tikrą gylį, kol nesusidursite su atminties problemomis.
13. Paaiškinkite darbus Pertrauk ir tęsk kilpoje
A pertrauka pareiškimas užbaigia ciklo vykdymą ir tęsia likusio kompiuterio kodo vykdymą. A tęsti Kita vertus, pareiškimas tęsia ciklo kartojimą nuo pat pradžių.
14. Kas yra OOP?
OOP reiškia objektinį programavimą ir tai yra programavimo paradigma, kuri įgyvendina programinės įrangos dizainą pagal duomenis ir objektus, o ne apie funkcijas ar procedūras.
15. Kas yra procedūrinis programavimas?
Procedūrinis programavimas yra programavimo paradigma, kuri organizuoja kompiuterio kodą pagal vykdomų instrukcijų sekas arba žingsnius. Kaip rodo pavadinimas, tai yra iš viršaus į apačią metodas, kuris pradeda kodą nuo pradinės įvykių fazės ir baigiasi numatoma įvykių pabaiga.
16. Paaiškinkite funkcinį programavimą
Funkcinis programavimas yra kompiuterių programavimo paradigma, kuri artėja prie programinės įrangos kūrimo taikant nuoseklias funkcijas, kurios nekeičia būsenos ar pateiktų argumentų duomenų.
Tikslas yra sukurti patikimesnes programas, kurios duotų laukiamus rezultatus be nenumatytų šalutinių poveikių.
17. Paaiškink Aukšto lygio kalba
Aukšto lygio programavimo kalba yra kompiuterinė kalba, kuri labiau kreipiasi į žmogaus supratimą, o ne į kompiuterio specifiką ar prigimtį.
Aukšto lygio programavimo kalbas, tokias kaip C ir Python, lengva suprasti, o žemo lygio surinkimo kalba gali būti labai paini pradedantiesiems.
18. Sąrašas Populiarus Žemo lygio kalbos
Yra tik dvi žemo lygio programavimo kalbos: surinkimo ir mašininio kodo.
19. Apibrėžkite SQL įpurškimo ataką
SQL injekcijos ataka yra SQL sakinių įvedimo į įvesties laukus, pvz., vartotojo vardo arba adreso įvesties, procesas, tikintis, kad programavimo metu kūrėjas tinkamai nevalė įvesties. Ir kai pasiseka, tokia ataka leidžia užpuolikui gauti administratoriaus prieigą prie serverio.
20. Kas yra lentelė SQL?
SQL lentelė reiškia duomenų, sugrupuotų į stulpelius ir eilutes, rinkinį. Kiekvienas stulpelis turi skirtingą duomenų tipą ir vienoje duomenų bazėje galite turėti kelias lenteles. Taip pat vienu metu galite pateikti užklausą daugiau nei vienoje lentelėje.
Galite sukurti lentelę su:
CREATE TABLE lentelės_pavadinimas(1 stulpelio duomenų tipas, 2 stulpelio duomenų tipas, 3 stulpelio duomenų tipas, …);
21. Paaiškinkite skirtumą tarp objekto ir klasės
Objektas yra klasės egzempliorius, o klasė yra projektas, iš kurio sukuriamas objektas. Objektas gali turėti būsenų ir savybių, tokių kaip spalva, aukštis, svoris, greitis ir pan.
Šios savybės turi būti apibrėžtos arba inicijuotos bent jau numatytosiomis reikšmėmis.
22. Kiek bitų sudaro vienas megabaitas?
8,000,000 megabaite yra 1 8 10 bitų, nes vienas baitas yra XNUMX bitai, o vienas mega yra XNUMX6.
23. Apibrėžkite slankiojo duomenų tipą
Plūduriavimas yra duomenų tipas, nurodantis skaičių su dešimtainėmis trupmenomis. Jis naudojamas tais atvejais, kai reikia didesnio tikslumo nei standartiniai sveikieji skaičiai. Plūdės pavyzdys yra:
0.013
or
25.932
24. Ką reiškia HexaDecimal 0xFF?
0xFF reiškia dešimtainį 255 arba dvejetainį 11111111. 0x reiškia bazinį 16 arba šešioliktainį žymėjimą, kuris skaičiuojamas nuo 1 iki 9, o tada tęsiasi nuo A iki F ir reiškia 15. Taigi 0xF yra dešimtainis 15, o 0xFF yra 255 dešimtainis.
25. Pavadinkite programavimo klaidų tipus
Kompiuterinėje programoje yra 3 pagrindiniai klaidų tipai:
- Sintaksės klaida
- Loginė klaida
- Klaida
26. Kas yra sintaksės klaida?
Sintaksės klaida atsiranda, kai nukrypstama nuo dažnai griežtos programavimo kalbų sintaksės. Tai gali atsirasti dėl to, kad tiesiog netinkamai pakeičiamos raidės į netinkamus parametrus, kurie perduodami funkcijai. Daugelis kompiliatorių įtrauks šaltinio kodo eilutės numerį, kurioje įvyko klaida.
27. Kas yra loginė klaida?
Logikos klaida yra klaida, atsirandanti dėl programos veikimo. Taigi, nors programa gali veikti nepriekaištingai, ji nepasiekia savo tikslo. Loginės klaidos gali atsirasti įvairiais būdais ir jas gali sukelti daugybė priežasčių.
28. Kas yra vykdymo klaida?
Vykdymo klaida – tai kompiuterio programos klaida, kuri atsiranda programos vykdymo metu ir dėl nenumatytų aplinkybių. Taigi, nors programa veikia nepriekaištingai, pavyzdžiui, atminties ir tinklo problemos gali sukelti programos netinkamą veikimą.
29. Paaiškink Stiprios ir silpnai įvestos kalbos
Stipriai įvestoje kalboje griežtai atsižvelgiama į skirtingus duomenų tipus ir tai, kaip galite juos konvertuoti, o silpnai įvestoje kalboje duomenų tipams ir jų apibrėžimams taikomi mažiau apribojimų.
Daugelis silpnai įvestų kalbų automatiškai konvertuos duomenų tipus, o stipriai įvestų kalbų dažnai reikia aiškių konversijų.
30. Kas yra MVC architektūra?
MVC reiškia Model-View-Controller ir yra vartotojo sąsajų programinės įrangos kūrimo modelis. Jis padalina programos logiką į 3 dalis.
Geriausios modelis dalis tvarko atitinkamų objektų duomenų logiką, o peržiūrėti tvarko informacijos pateikimą vartotojui ir kontrolierius tvarko duomenų srautą tarp rodinių ir modelių. MVC dizainas dažnai naudojamas su objektiniu programavimu.
31. Apibrėžkite an Algoritmas
Algoritmas yra procedūrų seka, skirta konkrečiai problemai išspręsti. Šios procedūros paprastai suskaidomos į mažesnius žingsnius ir kompiuteris kiekvieną kartą jas atlieka būtent taip.
Algoritmų pavyzdžiai apima veido atpažinimą, Google paiešką, batų rišimo būdą, duomenų kodavimą ar šifravimą ir pan.
32. Kas yra Mašininis mokymasis?
Mašinų mokymasis arba ML yra dirbtinio intelekto skyrius, kurio tikslas – padėti sistemoms nustatyti modelius ir savarankiškai priimti sprendimus naudojant duomenis.
Tai pagerina jų našumą arba efektyvumą. Mašininio mokymosi sistemos gali būti prižiūrimos, neprižiūrimos ir pagrįstos pastiprinimu.
33. Kas yra Įprastos išraiškos?
Reguliarioji išraiška arba Regex yra eilutė, naudojama apibrėžti paieškos šablonus tekstiniuose dokumentuose. Įvairios programavimo kalbos įgyvendina reguliariąsias išraiškas arba naudoja populiarias reguliariųjų reiškinių bibliotekas. Reguliarus reiškinio pavyzdys, atitinkantis visus teksto simbolius:
(.*)
o šie atitinka tik mp3 failus:
.+\.(mp3)$
34. Ką veikia modulio (%) operatorius?
Modulio operatorius % paima du operandus ir padalija pirmąjį operandą naudodamas antrąjį. Tada ji grąžina likusią operacijos dalį.
Jis dažnai naudojamas nelyginiams ir lyginiams skaičiams patikrinti, padalijus bet kurį sveikąjį skaičių iš 2, kur 0 rezultatas reiškia lyginį skaičių, o 1 reiškia nelyginį skaičių.
35. Paaiškink Procesas Šakės
Šakės kyla iš šakutė () funkcija Unix ir Linux sistemose, kurias gali naudoti veikiantis procesas, kad sukurtų savo kopiją. Taigi proceso šakojimas yra proceso dubliavimas, siekiant sukurti du panašius ir vienu metu vykdomus procesus.
Papildomas forking tipas reiškia atvirojo kodo projekto šaltinio kodo paėmimą ir visiškai naujos programos sukūrimą iš jo.
36. Paaiškink Siūlų nerštas
Gijos kūrimas – tai naujos procesoriaus gijos kūrimo procesas procesui vykdyti. Spawning dažnai naudojamas daug skaičiavimo reikalaujančiose programose, kad išnaudotų procesoriaus kelių gijų galimybes, o jo sėkmė priklauso nuo procesoriaus, kuriame jis veikia, kiek branduolių turi ir kiek gijų viename branduolyje siūlo.
37. Ką daryti Rezervuoti žodžiai Reiškia?
Rezervuoti žodžiai yra terminai, kurių jums neleidžiama naudoti kaip identifikatoriaus programavimo kalboje. Tai apima funkcijas, kintamuosius ir etiketes. Jie rezervuoti, nes jau buvo apibrėžti ir turi konkrečias reikšmes.
38. Išvardykite populiarius rezervuotus žodžius
Skirtingos kalbos turi skirtingus rezervuotus žodžius, atsižvelgiant į jų sintaksę. Čia yra populiariausi rezervuoti žodžiai programuojant:
- IF
- TIKROJI
- FALSE
- JUNGIKLIS
- DAR
- CASE
- BUOLINIS
- GRĄŽINIMAS
- FUNKCIJOS
- PERTRAUKA
- GOTO
39. Kas yra styga?
Eilutė yra simbolių seka, dažnai laikoma masyve ir naudojama teksto duomenims apibrėžti. Populiariausia eilutė yra "hello world".
40. Kas yra kintamasis?
Kintamasis yra bet kokia reikšmė, kuri gali pasikeisti programos vykdymo metu. Kintamasis gali būti bet kokio tipo duomenų, įskaitant eilutes ir sveikuosius skaičius. Pavyzdžiui, programa inicijuojama taip:
int a = 0;
int b = 1;
tada vykdymo metu atliekami pakeitimai:
b = a+b; //b skiriasi
41. Kas yra konstanta?
Konstanta yra kintamasis, kuris programos vykdymo metu nesikeis. Puikus pavyzdys yra šviesos arba garso greitis. Skirtingos programavimo kalbos leidžia konstantas apibrėžti skirtingais būdais. Pavyzdžiui, C:
const float middle_c = 261.62; //Vidurinis klavišas c fortepijone yra 261.6255 Hz
42. Apibrėžkite masyvą
Masyvas yra kintamojo tipas, naudojamas kelioms reikšmėms vienu metu saugoti. Daugelis kalbų leidžia saugoti tik panašių duomenų tipų reikšmes, o kitos kalbos gali apdoroti skirtingų tipų masyvus. Taip pat galite turėti daugiamačius masyvus, kurie yra masyvų masyvai ir gali būti netvarkingi.
Masyvą mql4 apibrėžti paprasta naudojant:
string TextArray[100]; //šimto eilučių masyvas
43. Kas yra Funkcija perkrauta?
Funkcijų perkrovimas yra metodas, leidžiantis kūrėjui apibrėžti kelias funkcijas, kurios turi tą patį pavadinimą, bet turi skirtingas funkcijas. Tai pasiekiama kuriant skirtingas funkcijų versijas su skirtingais argumentais. Tada kompiliatorius žino, kuri funkcija reikalinga pagal pateiktų argumentų tipą ir skaičių.
44. Apibrėžkite a Skambinti pagal nuorodą
Iškvietimas pagal nuorodą – tai argumentų atminties adreso perdavimo funkcijai metodas, priešingai nei standartinis argumento vertės kopijos perdavimo metodas. Nuorodų iškvietimų tikslas yra tai, kad argumentas būtų tiesiogiai pakeistas funkcijos.
45. Paaiškink Aritmetikos operatoriai
Tai yra specialūs simboliai, kurie atlieka aritmetines operacijas programavimo kalba. Aritmetiniai operatoriai apima:
- Sudėtis arba vienkartinis pliusas (+)
- Atimtis arba vienarasis minusas (-)
- Daugyba (*)
- skyrius (/)
- Modulis (%).
46. Paaiškink loginiai operatoriai
Loginiai operatoriai yra žodžiai arba simboliai, naudojami operacijoms atlikti remiantis sąlygine logika. Dauguma kalbų turi tik 3 loginius operatorius:
- arba (&& C, C++, JavaScript)
- OR (|| C, C++, JavaScript)
- nE (! C, C++, JavaScript)
47. Loginis 1 IR 0 =?
Jums duos logiška 1 IR 0 operacija klaidingas nes antrasis operandas yra 0 ir norint gauti teigiamą išvestį, abu operacijos IR operandai turi būti 1 arba TRUE.
48. Logiška NE 1 =?
Loginė NOT 1 operacija jums duos klaidingas nes operatorius NOT paneigia viską, ką jam suteikiate, tai reiškia, kad jis 1 paverčia 0, o 0 paverčia 1. Taigi, suteikus operandą 1 arba TRUE, gaunamas 0 arba FALSE.
49. Loginis 1 NAND 1 =?
Bus atlikta logiška 1 NAND 1 operacija klaidingas nes abu operandai yra TRUE, o operatorius NAND visada paneigia du panašius įėjimus, kad gautų priešingą išvestį.
Taigi, jei operacija buvo 0 NAND 0, tada išvestis būtų 1 arba TRUE.
50. Loginis 1 XOR 1 =?
Bus atlikta logiška 1 XOR 1 operacija klaidingas nes nors įprasta ARBA operacija duos TRUE, kai viena arba abi įvesties yra TRUE, XOR (išskirtinis ARBA) operacija sukuria TRUE tik tada, kai tik viena įvestis, o ne kita, yra TRUE.
Išvada
Pasiekėme šio 50 svarbiausių programavimo interviu klausimų ir atsakymų į juos sąrašo pabaigą. Ir kaip matote, programavimo pasaulis yra platus, bet įdomus.
Nėra dviejų vienodų interviu. Taigi, nors šis sąrašas nurodo teisingas temos kryptis, taip pat turėtumėte pabandyti geriau suprasti kiekvieną problemą.





