50 suosituinta ohjelmointihaastattelun kysymystä ja vastausta

Ohjelmistoyritykset etsivät aina hyviä ohjelmointikykyjä, ja puhelin- ja verkkohaastattelut päättävät usein kohtalosi muutamassa minuutissa.
Hyvän ohjelmoijan tulee olla mahdollisimman monipuolinen – järjestelmäymmärryksestä yleiseen ohjelmointiin, erilaisiin konsepteihin ja teknologioihin sekä ajan tasalla olemiseen.
Seuraavassa on luettelo 50 suosituimmasta ohjelmointihaastattelukysymyksestä ja niiden vastauksesta. Ne valaisevat erilaisia käsitteitä, jotka jokaisen aloittelijan on tiedettävä menestyäkseen.
1. Mitä tietokoneohjelmointi on?
Tietokoneohjelmointi on prosessi, jossa koodataan loogisia prosesseja, jotka tietokone suorittaa. Tämä suoritetaan käyttämällä tietokonekieltä, joka sisältää tarvittavat ohjeet.
Prosessi voidaan jakaa edelleen suunnitteluun, koodaukseen, virheenkorjaukseen ja päivittämiseen.
2. Mitä virheenkorjaus on?
Vianetsintä on prosessi, jossa havaitaan ja poistetaan virheitä tietokoneohjelman ohjelmistolähteessä. Tähän on monia tapoja, mutta useimmissa kehitysympäristöissä on integroitu debuggeri asioiden helpottamiseksi.
3. Mikä on kääntäjä?
Kääntäjä on ohjelmisto, joka ottaa kirjoitetun ohjelman ja muuttaa sen konekoodiksi, jota tietokone voi ymmärtää.
Tyypillinen kääntäjäpaketti koostuu kuitenkin esiprosessorista, pääkääntäjästä, joka muuttaa tietokonekielen kokoonpanokoodiksi, ja assembleristä.
4. Mikä on esiprosessori?
Esiprosessori on ohjelma, joka analysoi kirjoitetun tietokonekoodin löytääkseen ja täyttääkseen sen riippuvuudet, kuten tarvittavat kirjastot.
Kun esiprosessori on varmistanut, että kaikki, mukaan lukien suoritusympäristö, on kunnossa, kääntäjä voi sitten muuntaa koodin kokoonpanokoodiksi.
5. Mikä on Assembler?
Assembler on ohjelma, joka ottaa alimman tason ihmisen luettavaa tietokonekoodia, nimeltään assembly language, ja muuttaa sen konekoodiksi, jonka kanssa tietokone voi toimia.
Assembly-kielen tuottaa tyypillisesti kääntäjä, vaikka voidaan myös koodata suoraan. Kokoonpanoohjelma voi sisältää koodia, kuten:
MOV AH, 02H
mutta kun käännät sen konekoodiksi, saat vain nollia ja ykkösiä (esim. 0110011110101010).
6. Miten ohjelma suoritetaan?
Ensin käyttöjärjestelmä lataa määritetyn ohjelman kiintolevyltä järjestelmämuistiin (RAM) ja sallii sen sitten suorittaa ohjaamalla CPU:ta jatkamaan sen suorittamista ohjelman ensimmäisestä muistiosoitteesta. Suoritin suorittaa minkä tahansa näkemänsä komennon ja siirtyy sitten seuraavaan toistaen tätä menettelyä usein miljoonia kertoja sekunnissa.
32-bittiset suorittimet suorittavat 32-bittisiä (4-tavuisia, kaksisanaisia) käskyjä kerrallaan, kun taas 64-bittiset suorittimet suorittavat 64-bittisiä (8-tavuisia, nelisanaisia) käskyjä kerralla. Nämä ohjeet on sisäänrakennettu prosessoriin, ja kokoaja muuttaa ohjelmointikoodin binääriluvuiksi, jotka edustavat CPU:n alkuperäisiä komentoosoitteita.
7. Määrittele a aliohjelma
Aliohjelma on ohjelman käskysarja, joka voidaan kutsua ja suorittaa milloin tahansa. Toisin sanoen aliohjelma voi olla funktio, menetelmä tai prosessi, jota käytetään tiettyjen tehtävien toteuttamiseen, kuten email, tiedoston avaaminen tai kirjautumissivun raa'a pakottaminen.
8. Määritä Konekoodi
Konekoodi on binäärilukusarja, joka sisältää tietyn mikroprosessorin suorituskäskyt ja siihen liittyvät muistiosoitteet.
Konekoodin tuottaa perinteisesti kokoaja, joka on suunniteltu kyseiselle mikroprosessoriperheelle.
9. Selitä Käännetyt vs tulkitut kielet
Käännetty tietokonekieli on muutettava konekoodiksi ennen kuin se voidaan suorittaa tietokoneella, kun taas tulkittu kieli ei edellytä käännöstä.
Kun suoritat tulkitun ohjelman, tulkki käsittelee sen ensin, joka sitten kääntää ja suorittaa sen lennossa. Nämä lisävaiheet tekevät tulkitetuista kielistä, kuten Pythonista, hitaampia kuin käännetyt kielet, kuten C.
10. Mikä on silmukka?
Silmukka on koodirakenne, joka voi toistaa tiettyjä lauseita, kunnes tietty kriteeri saavutetaan. Tämä kriteeri voi sisältää kiinteän määrän toistoja tai määritellyn muuttujan muutoksen.
11. Listaa suositut silmukat
Eri tietokonekielet tulkitsevat silmukoita eri tavoin. Suosittuja C-perheen silmukkatyyppejä ovat kuitenkin:
- While() Loop – Se sallii tietyn koodin suorittamisen, niin kauan kuin Boolen sillä aikaa() ehto täyttyy.
Esimerkiksi while(2>1){print("yahoo!")};. - For(;;) Loop – sisältää kolme lauseketta (alustus; arviointi; päivittää), jotka määrittelevät testattavat ehdot sekä joustavan menetelmän määrän lisäämiseksi. Se myös suorittaa koodin vähintään kerran.
- Tee{} While() Loop – Tämäntyyppinen silmukka suorittaa tehdä{} koodi vähintään kerran ennen kuin päätät, onko sillä aikaa() ehto on edelleen totta.
12. Selitä iteraatio vs Rekursio
Iteraatio on silmukan käyttöä samojen koodivaiheiden suorittamiseen, kun taas rekursio on prosessi, jossa funktio kutsuu itseään yhä uudelleen. Rekursion ongelma on kuitenkin se, että pääset vain tiettyyn syvyyteen, kunnes kohtaat muistiongelmia.
13. Selitä työt Tauko ja jatka A Loopissa
A rikkoa lauseke lopettaa silmukan suorittamisen ja jatkaa muun tietokonekoodin suorittamista. A jatkaa lause toisaalta jatkaa silmukan iterointia alusta.
14. Mikä on OOP?
OOP on lyhenne sanoista Object Oriented Programming ja se on ohjelmointiparadigma, joka toteuttaa ohjelmistosuunnittelun datan ja objektien ympärille toimintojen tai menettelyjen sijaan.
15. Mitä on proseduuriohjelmointi?
Proseduuriohjelmointi on ohjelmointiparadigma, joka järjestää tietokonekoodin suoritettavien käskyjen sekvenssien tai vaiheiden ympärille. Kuten nimestä voi päätellä, se on ylhäältä alas -lähestymistapa, joka aloittaa koodin tapahtumien alkuvaiheesta ja päättyy tapahtumien odotettuun loppuun.
16. Selitä toiminnallinen ohjelmointi
Funktionaalinen ohjelmointi on tietokoneohjelmoinnin paradigma, joka lähestyy ohjelmistokehitys käyttämällä peräkkäisiä toimintoja, jotka eivät muunna toimitettujen argumenttien tilaa tai tietoja.
Tavoitteena on luoda tehokkaampia ohjelmia, jotka tuottavat odotetut tulokset ilman odottamattomia sivuvaikutuksia.
17. Selitä Korkean tason kieli
Korkean tason ohjelmointikieli on tietokonekieli, joka vetoaa enemmän ihmisen ymmärrykseen kuin tietokoneen erityispiirteisiin tai luonteeseen.
Korkean tason ohjelmointikielet, kuten C ja Python, ovat helppoja ymmärtää, kun taas matalan tason kokoonpanokieli voi olla hyvin hämmentävää ensikertalaisille.
18. Luettelo suosituista Matalan tason kielet
On vain kaksi matalan tason ohjelmointikieltä: kokoonpano ja konekoodi.
19. Määritä SQL-injektiohyökkäys
SQL-injektiohyökkäys on prosessi, jossa syötetään SQL-käskyjä syöttökenttiin, kuten käyttäjänimen tai osoitteen syötteisiin, siinä toivossa, että kehittäjä ei puhdistanut syötteitä oikein ohjelmoinnin aikana. Ja onnistuessaan tällainen hyökkäys antaa hyökkääjälle mahdollisuuden saada järjestelmänvalvojan käyttöoikeudet palvelimeen.
20. Mikä on taulukko SQL:ssä?
Taulukko SQL:ssä viittaa tietokokoelmaan, joka on ryhmitelty sarakkeisiin ja riveihin. Jokaisella sarakkeella on erillinen tietotyyppi, ja sinulla voi olla useita taulukoita yhdessä tietokannassa. Voit myös hakea useampaa kuin yhtä taulukkoa kerralla.
Luot taulukon seuraavilla tavoilla:
CREATE TABLE taulukon_nimi(sarake1 tietotyyppi, sarake2 tietotyyppi, sarake3 tietotyyppi, …);
21. Selitä ero objektin ja luokan välillä
Objekti on luokan esiintymä, kun taas luokka on suunnitelma, josta objekti luodaan. Objektilla voi olla tiloja ja ominaisuuksia, kuten väri, korkeus, paino, nopeus ja niin edelleen.
Nämä ominaisuudet on kuitenkin määriteltävä tai alustettava vähintään oletusarvoilla.
22. Kuinka monta bittiä tekee yhden megatavun?
Yhdessä megatavussa on 8,000,000 1 8 bittiä, koska yksi tavu on 10 bittiä ja yksi mega XNUMX6.
23. Määritä Float-tietotyyppi
Float on tietotyyppi, joka edustaa lukua desimaalilukujen kanssa. Sitä käytetään tilanteissa, joissa tarvitaan suurempaa tarkkuutta kuin mitä standardikokonaisluvut voivat tarjota. Esimerkki floatista on:
0.013
or
25.932
24. Mitä HexaDecimal 0xFF tarkoittaa?
0xFF tarkoittaa desimaalilukua 255 tai binaarilukua 11111111. 0x tarkoittaa kantalukua 16 tai heksadesimaalilukua, joka alkaa 1:stä 9:ään ja jatkuu sitten A:sta F:ään edustaen lukua 15. Joten 0xF on desimaaliluku 15, kun taas 0xFF on desimaaliluku 255.
25. Nimeä ohjelmoinnin virhetyypit
Tietokoneohjelmassa on kolme päätyyppiä virheitä, ne ovat:
- Syntaksivirhe
- Looginen virhe
- Runtime Error
26. Mikä on syntaksivirhe?
Syntaksivirhe tapahtuu, kun ohjelmointikielten usein tiukasta syntaksista poikkeaa. Se voi johtua siitä, että kirjaimet sijoitetaan yksinkertaisesti väärin vääriin parametreihin, jotka välitetään funktiolle. Useimmat kääntäjät sisältävät lähdekoodin rivinumeron, jossa virhe tapahtui.
27. Mikä on looginen virhe?
Logiikkavirhe on virhe, joka johtuu ohjelman toiminnasta. Joten vaikka ohjelma saattaakin toimia virheettömästi, se ei saavuta tarkoitustaan. Loogisia virheitä voi tapahtua monella tavalla ja ne voivat johtua monista syistä.
28. Mikä on ajonaikainen virhe?
Ajonaikainen virhe on tietokoneohjelmavirhe, joka tapahtuu ohjelman suorittamisen aikana ja johtuen odottamattomista olosuhteista. Joten vaikka ohjelma toimii moitteettomasti, esimerkiksi muisti- ja verkkoongelmat voivat aiheuttaa ohjelman virheellisen toiminnan.
29. Selitä Vahvat vs heikosti kirjoitetut kielet
Vahvasti kirjoitettu kieli on tiukka eri tietotyypeinsä ja niiden muuntamiseen liittyen, kun taas heikosti kirjoitettu kieli asettaa vähemmän rajoituksia tietotyypeille ja niiden määritelmille.
Monet heikosti kirjoitetut kielet muuntavat tietotyypit automaattisesti, kun taas voimakkaasti kirjoitetut kielet vaativat usein eksplisiittisiä muunnoksia.
30. Mikä on MVC-arkkitehtuuri?
MVC viittaa Model-View-Controlleriin ja on ohjelmistokehitysmalli käyttöliittymille. Se jakaa ohjelman logiikan kolmeen osaan.
- malli osa käsittelee kyseessä olevien objektien taustalla olevaa datalogiikkaa, kun taas näkymä hoitaa tietojen näyttämisen käyttäjälle ja ohjain käsittelee tietovirran näkymien ja mallien välillä. MVC-suunnittelua käytetään usein olio-ohjelmoinnin kanssa.
31. Määrittele an algoritmi
Algoritmi on sarja toimenpiteitä, jotka on suunniteltu ratkaisemaan tietty ongelma. Nämä toimenpiteet on yleensä jaettu pienempiin vaiheisiin ja tietokone tekee ne täsmälleen samalla tavalla joka kerta.
Esimerkkejä algoritmeista ovat mm kasvot, Google-haku, kenkien solmimistapa, tietojen koodaus tai salaus ja niin edelleen.
32. Mikä on Koneoppiminen?
Koneoppiminen tai ML on osa tekoäly joka keskittyy auttamaan järjestelmiä tunnistamaan malleja ja tekemään päätöksiä itse tiedon kulutuksen avulla.
Tämä parantaa niiden suorituskykyä tai tehokkuutta. Koneoppimisjärjestelmät voivat olla valvottuja, valvomattomia ja vahvistukseen perustuvia.
33. Mitä ovat Säännölliset lausekkeet?
Säännöllinen lauseke tai säännöllinen lauseke on merkkijono, jota käytetään määrittämään hakumalleja tekstidokumenteissa. Eri ohjelmointikielet toteuttavat säännöllisiä lausekkeita tai käyttävät suosittuja regex-kirjastoja. Esimerkki säännöllisestä lausekkeesta, joka vastaa tekstin kaikkia merkkejä:
(. *)
kun taas seuraavat vastaavat vain mp3-tiedostoja:
.+\.(mp3)$
34. Mitä Modulus (%) -operaattori tekee?
Moduulioperaattori % ottaa kaksi operandia ja jakaa ensimmäisen operandin käyttämällä toista. Tämän jälkeen se palauttaa loppuosan operaatiosta.
Sitä käytetään usein testaamaan parittomia ja parillisia lukuja jakamalla mikä tahansa kokonaisluku kahdella, missä tulos 2 tarkoittaa parillista lukua ja 0 tarkoittaa paritonta lukua.
35. Selitä Prosessi Forking
Forking tulee haarukka() toiminto Unix- ja Linux-järjestelmissä, joita käynnissä oleva prosessi voi käyttää kopion luomiseen itsestään. Joten prosessin haaroittuminen on prosessin päällekkäisyyttä kahden samanlaisen ja samanaikaisesti suoriutuvan prosessin luomiseksi.
Toinen haaroittamisen tyyppi viittaa an:n lähdekoodin ottamiseen avoimen lähdekoodin projekti ja luoda siitä kokonaan uusi ohjelma.
36. Selitä Säie Spawning
Säikeen luominen on prosessi, jossa luodaan uusi CPU-säike prosessin suorittamista varten. Laskentaintensiiviset ohjelmat käyttävät usein spawningia prosessorin monisäikeisten ominaisuuksien hyödyntämiseen, ja sen menestys riippuu suorittimesta, jossa se toimii, kuinka monta ydintä siinä on ja kuinka monta säiettä ydintä kohden se tarjoaa.
37. Mitä tehdä Varatut sanat Tarkoittaa?
Varatut sanat ovat termejä, joita et saa käyttää tunnisteena ohjelmointikielessä. Tämä sisältää funktioita, muuttujia ja tunnisteita. Ne on varattu, koska ne on jo määritelty ja niillä on erityiset merkitykset.
38. Listaa suositut varatut sanat
Eri kielillä on erilaiset varatut sanat niiden syntaksin perusteella. Tässä ovat suosituimmat varatut sanat ohjelmoinnissa:
- IF
- TOSI
- VÄÄRÄ
- SWITCH
- ELSE
- CASE
- BOOLEN
- PALATA
- TOIMINTO
- TAUKO
- GOTO
39. Mikä on merkkijono?
Merkkijono on merkkijono, joka on usein taulukossa ja jota käytetään tekstidatan määrittämiseen. Suosituin merkkijono on "hello world".
40. Mikä on muuttuja?
Muuttuja on mikä tahansa arvo, joka voi muuttua ohjelman suorituksen aikana. Muuttuja voi olla mitä tahansa tietotyyppiä, mukaan lukien merkkijonot ja kokonaisluvut. Esimerkiksi ohjelma alustetaan seuraavasti:
int a = 0;
int b = 1;
sitten suorituksen aikana tehdään muutoksia:
b = a+b; //b on vaihdellut
41. Mikä on vakio?
Vakio on muuttuja, jonka ei odoteta muuttuvan ohjelman suorituksen aikana. Hyvä esimerkki on valon tai äänen nopeus. Eri ohjelmointikielet antavat sinun määrittää vakiot eri tavoin. Esimerkiksi C:ssä:
const float middle_c = 261.62; //Pianon keskinäppäin c on 261.6255 Hz
42. Määrittele taulukko
Taulukko on eräänlainen muuttuja, jota käytetään useiden arvon tallentamiseen kerralla. Monet kielet mahdollistavat vain samantyyppisten tietotyyppien arvojen tallentamisen, kun taas toiset kielet voivat käsitellä erityyppisiä taulukoita. Sinulla voi myös olla moniulotteisia taulukoita, jotka ovat taulukoita ja voivat mennä sotkuiseksi.
Taulukon määrittäminen mql4:ssä on helppoa:
merkkijono TextArray[100]; //sadan merkkijonon joukko
43. Mikä on Toimintojen ylikuormitus?
Funktioiden ylikuormitus on menetelmä, jonka avulla kehittäjä voi määrittää useita toimintoja, joilla on sama nimi, mutta joilla on erilaiset toiminnot. Tämä saavutetaan luomalla eri funktioversiot eri argumenteilla. Kääntäjä tietää sitten, mitä funktiota tarvitaan toimitettujen argumenttien tyypin ja lukumäärän perusteella.
44. Määrittele a Soita viitteellä
Viittauskutsu on menetelmä, jolla välitetään argumenttien muistiosoite funktiolle, toisin kuin tavallinen menetelmä, jossa välitetään kopio argumentin arvosta. Viittauskutsujen tavoitteena on, että funktio muuttaa argumenttia suoraan.
45. Selitä Aritmeettiset operaattorit
Nämä ovat erikoismerkkejä, joiden tehtävänä on suorittaa aritmeettisia operaatioita ohjelmointikielellä. Aritmeettisia operaattoreita ovat:
- Lisäys tai yksiarvoinen plus (+)
- Vähennyslasku tai unaari miinus (-)
- Kertominen (*)
- divisioona (/)
- Moduuli (%).
46. Selitä loogisia operaattoreita
Loogiset operaattorit ovat sanoja tai symboleja, joita käytetään ehdolliseen logiikkaan perustuvien toimien suorittamiseen. Useimmissa kielissä on vain kolme loogista operaattoria:
- JA (&& C-, C++- ja JavaScript-kielissä)
- OR (|| C-, C++- ja JavaScript-kielillä)
- ÄLÄ (! C, C++, JavaScript)
47. Looginen 1 JA 0 =?
Looginen 1 JA 0 -operaatio antaa sinulle väärä koska toinen operandi on 0 ja AND-operaation molempien operandien on oltava 1 tai TOSI saadaksesi positiivisen tulosteen.
48. Looginen EI 1 =?
Looginen NOT 1 -operaatio antaa sinulle väärä koska NOT-operaattori kumoaa kaiken antamasi, mikä tarkoittaa, että se muuttaa 1:n 0:ksi ja 0:n 1:ksi. Joten, jos sille annetaan operandi 1 tai TOSI, tuloksena on 0 tai EPÄTOSI.
49. Looginen 1 NAND 1 =?
Looginen 1 NAND 1 -toiminto tuottaa väärä koska molemmat operandit ovat TOSI ja NAND-operaattori aina kieltää kaksi samanlaista tuloa tuottaakseen vastakkaisen lähdön.
Jos siis operaatio oli 0 NAND 0, silloin tulos olisi 1 tai TOSI.
50. Looginen 1 XOR 1 =?
Looginen 1 XOR 1 -operaatio tuottaa väärä koska vaikka normaali TAI-toiminto tuottaa TOSI jommankumman tai molempien tulojen ollessa TOSI, XOR (Exclusive OR) -toiminto tuottaa TOSI vain, kun vain yksi syöte on TOSI, ei toinen.
Yhteenveto
Olemme saavuttaneet tämän luettelon 50 suosituimmasta ohjelmointihaastattelukysymyksestä ja niiden vastauksista. Ja kuten näet, ohjelmoinnin maailma on laaja, mutta jännittävä.
Ei kahta samanlaista haastattelua. Joten vaikka tämä luettelo osoittaa sinut oikeaan aiheeseen, sinun tulee myös yrittää saada parempi käsitys jokaisesta ongelmasta.