100 suosituinta C-ohjelmointihaastattelun kysymyksiä ja vastauksia (PDF)
Tässä on C-ohjelmoinnin haastattelukysymyksiä ja vastauksia tuoreemmille ja kokeneemmille hakijoille unelmatyönsä saamiseksi.
C-ohjelmoinnin perushaastattelun kysymyksiä ja vastauksia fuksilaisille
1) Kuinka rakentaa C:ssä lisäys- tai vähennyslause?
Voit itse asiassa tehdä tämän kahdella tavalla. Yksi on käyttää lisäysoperaattoria ++ ja vähennysoperaattoria –. Esimerkiksi lause "x++" tarkoittaa x:n arvon lisäämistä yhdellä. Samoin lauseke "x -" tarkoittaa x:n arvon pienentämistä yhdellä. Toinen tapa kirjoittaa lisäyslauseita on käyttää tavanomaista + plus-merkkiä. tai – miinusmerkki. Jos kyseessä on "x++", toinen tapa kirjoittaa se on "x = x +1".
👉 Ilmainen PDF-lataus: C-ohjelmointihaastattelun kysymyksiä ja vastauksia >>
2) Mitä eroa on Call by Value ja Call by Reference välillä?
Kun käytät Call by Value -toimintoa, lähetät muuttujan arvon parametrina funktiolle, kun taas Call by Reference lähettää muuttujan osoitteen. Myös Call by Value -kohdassa tapahtuva toiminta ei vaikuta parametrin arvoon, kun taas Call by Reference -toiminnon tapauksessa funktion sisällä oleva prosessi voi vaikuttaa arvoihin.
3) Jotkut kooderit tekevät ohjelmiensa virheenkorjauksen sijoittamalla kommenttisymboleja joihinkin koodeihin sen poistamisen sijaan. Miten tämä auttaa virheenkorjauksessa?
Kommenttisymbolien /* */ sijoittaminen koodin ympärille, jota kutsutaan myös "kommentoimiseksi", on tapa eristää joitain koodeja, joiden uskot aiheuttavan virheitä ohjelmassa, poistamatta koodia. Ajatuksena on, että jos koodi on todella oikea, poistat vain kommenttisymbolit ja jatkat eteenpäin. Se myös säästää aikaa ja vaivaa koodien kirjoittamisessa uudelleen, jos olet poistanut sen alun perin.
4) Mikä on seuraavan lauseen vastaava koodi WHILE LOOP -muodossa?
for (a=1; a<=100; a++) printf ("%d\n", a * a);
Vastaus:
a=1; while (a<=100) { printf ("%d\n", a * a); a++; }
5) Mikä on pino?
Pino on yksi tietorakenteen muoto. Tiedot tallennetaan pinoihin FILO-menetelmällä (First In Last Out). Tietyissä tapauksissa vain pinon yläosaan pääsee käsiksi, mikä tarkoittaa, että pinon sisälle tallennettujen tietojen hakeminen edellyttää, että ylemmän osan tiedot tulee purkaa ensin. Tietojen tallentamista pinoon kutsutaan myös PUSH:ksi, kun taas tietojen noutoa kutsutaan POP:ksi.
6) Mikä on peräkkäinen pääsytiedosto?
Kun kirjoitat ohjelmia, jotka tallentavat ja hakevat tietoja tiedostoon, on mahdollista määrittää tiedosto eri muotoihin. Jaksottainen pääsytiedosto on sellainen, että tiedot tallennetaan peräkkäisessä järjestyksessä: yksi tieto sijoitetaan tiedostoon toisensa jälkeen. Jotta päästään käsiksi tiettyyn tietoon peräkkäisen pääsyn tiedostossa, tiedot on luettava yksi kerrallaan, kunnes oikea on saavutettu.
7) Mikä on muuttujan alustus ja miksi se on tärkeää?
Tämä viittaa prosessiin, jossa muuttujalle annetaan alkuarvo ennen kuin sitä käytetään ohjelmassa. Ilman alustusta muuttujalla olisi tuntematon arvo, mikä voi johtaa arvaamattomiin lähtöihin, kun sitä käytetään laskelmissa tai muissa operaatioissa.
8 Mitä spagettiohjelmointi on?
Spagettiohjelmointi viittaa koodeihin, jotka yleensä sotkeutuvat ja menevät päällekkäin koko ohjelman ajan. Tämä jäsentämätön lähestymistapa koodaukseen johtuu yleensä ohjelmoijan kokemuksen puutteesta. Spagettiohjelmointi tekee ohjelmasta monimutkaisen ja koodien analysoinnin vaikeaksi, joten sitä tulee välttää mahdollisimman paljon.
9) Erota lähdekoodit objektikoodeista
Lähdekoodit ovat ohjelmoijan kirjoittamia koodeja. Se koostuu komennoista ja muista englanninkielisistä avainsanoista, joiden oletetaan ohjeistavan tietokonetta, mitä tehdä. Tietokoneet eivät kuitenkaan pystyisi ymmärtämään lähdekoodeja. Siksi lähdekoodit käännetään kääntäjällä. Tuloksena olevat lähdöt ovat objektikoodeja, jotka ovat muodossa, jonka tietokoneen prosessori voi ymmärtää. Sisään C ohjelmointi, lähdekoodit tallennetaan tiedostotunnisteella .C, kun taas objektikoodit tallennetaan tiedostotunnisteella .OBJ
10) Kuinka C-ohjelmoinnissa lisätään lainausmerkkejä (' ja ") tulosteen näyttöön?
Tämä on yleinen ongelma aloittelijoille, koska lainaukset ovat yleensä osa printf-lausetta. Jos haluat lisätä lainausmerkin osaksi tulosta, käytä muotomääritteitä \' (yksilainaus) ja \” (kaksoislainaus).
11) Mitä hyötyä \0-merkistä on?
Sitä kutsutaan päättäväksi tyhjäksi merkiksi, ja sitä käytetään ensisijaisesti osoittamaan merkkijonon arvon loppu.
12) Mitä eroa on symbolien = ja == välillä?
=-symbolia käytetään usein matemaattisissa operaatioissa. Sitä käytetään antamaan arvo tietylle muuttujalle. Toisaalta ==-symboli, joka tunnetaan myös nimellä "saa" tai "vastaa", on relaatiooperaattori, jota käytetään kahden arvon vertaamiseen.
13) Mikä on moduulioperaattori?
Moduulioperaattori tulostaa jaon loppuosan. Se käyttää prosenttisymbolia (%). Esimerkiksi: 10 % 3 = 1, eli kun jaat 10:llä 3:lla, jäännös on 1.
14) Mikä on sisäkkäinen silmukka?
Sisäkkäinen silmukka on silmukka, joka kulkee toisen silmukan sisällä. Laita se toisessa mielessä, sinulla on sisäsilmukka, joka on ulkosilmukan sisällä. Tässä skenaariossa sisäinen silmukka suoritetaan useita kertoja ulomman silmukan määrittelemällä tavalla. Jokaisella ulkosilmukan kierrolla suoritetaan ensin sisäsilmukka.
15) Mikä seuraavista operaattoreista on virheellinen ja miksi? (>=, <=, <>, ==)
<> on virheellinen. Vaikka tämä operaattori tulkitaan oikein "ei ole yhtä suuri" kirjoitettaessa ehdollisia lauseita, se ei ole oikea operaattori käytettäväksi C ohjelmointi. Sen sijaan operaattoria != on käytettävä osoittamaan "ei yhtä suuri" ehto.
16) Vertaa ja vertaa tulkkien kääntäjiä.
Kääntäjät ja tulkit käsittelevät usein sitä, miten ohjelmakoodit suoritetaan. Tulkit suorittavat ohjelmakoodeja rivi kerrallaan, kun taas kääntäjät ottavat ohjelman kokonaisuutena ja muuntavat sen objektikoodiksi ennen sen suorittamista. Keskeinen ero tässä on, että tulkkien tapauksessa ohjelma saattaa kohdata syntaksivirheitä kesken suorituksen ja pysähtyy sieltä. Toisaalta kääntäjät tarkistavat koko ohjelman syntaksin ja jatkavat suorittamista vain, kun syntaksivirheitä ei löydy.
17) Kuinka ilmoitat muuttujan, joka sisältää merkkijonoarvot?
Char-avainsanassa voi olla vain yksi merkki kerrallaan. Luomalla merkkijonon voit tallentaa siihen merkkijonoarvoja. Esimerkki: "char OmaNimi[1]; ” ilmoittaa merkkijonomuuttujan nimeltä MyName, joka voi sisältää enintään 50 merkkiä.
18) Voidaanko hakasulkeita { } käyttää yhden koodirivin sisälle?
Vaikka kiharasulkuja käytetään pääasiassa useiden koodirivien ryhmittelyyn, se toimii silti ilman virhettä, jos käytit sitä yhdelle riville. Jotkut ohjelmoijat suosivat tätä menetelmää tapana järjestää koodeja, jotta se näyttää selkeämmältä, etenkin ehdollisissa lauseissa.
19) Mitä ovat otsikkotiedostot ja mihin niitä käytetään C-ohjelmoinnissa?
Otsikkotiedostoja kutsutaan myös kirjastotiedostoiksi. Ne sisältävät kaksi olennaista asiaa: ohjelmassa käytettävien funktioiden määritelmät ja prototyypit. Yksinkertaisesti sanottuna C-ohjelmoinnissa käyttämäsi komennot ovat itse asiassa toimintoja, jotka määritellään kustakin otsikkotiedostosta. Jokainen otsikkotiedosto sisältää joukon toimintoja. Esimerkiksi: stdio.h on otsikkotiedosto, joka sisältää komentojen, kuten printf ja scanf, määritelmät ja prototyypit.
20) Mikä on syntaksivirhe?
Syntaksivirheet liittyvät ohjelmointikielen käytön virheisiin. Se voi olla komento, joka oli kirjoitettu väärin, tai komento, joka on kirjoitettu pienillä kirjaimilla, mutta annettiin sen sijaan isoilla kirjaimilla. Väärin sijoittuva symboli tai sen puuttuminen jossain koodirivillä voi myös johtaa syntaksivirheeseen.
21) Mitä ovat muuttujat ja miten se eroaa vakioista?
Muuttujat ja vakiot voivat aluksi näyttää samanlaisilta siinä mielessä, että molemmat ovat tunnisteita, jotka koostuvat yhdestä tai useammasta merkistä (kirjaimet, numerot ja muutama sallittu symboli). Molemmilla on myös tietty arvo. Muuttujan hallussa olevia arvoja voidaan muuttaa koko ohjelman ajan, ja niitä voidaan käyttää useimmissa operaatioissa ja laskelmissa. Vakioille annetaan arvot vain kerran, ohjelman alussa. Tätä arvoa ei muuteta ohjelmassa. Voit esimerkiksi määrittää vakion nimeltä PI ja antaa sille arvon 3.1415 . Voit sitten käyttää sitä PI:nä ohjelmassa sen sijaan, että joutuisit kirjoittamaan 3.1415 aina, kun tarvitset sitä.
22) Kuinka pääset käsiksi taulukon arvoihin?
Taulukot sisältävät useita elementtejä riippuen siitä, minkä koon annoit sille muuttujan määrityksen aikana. Jokaiselle elementille on annettu numero 0 - elementtien lukumäärä 1. Jos haluat määrittää tai noutaa tietyn elementin arvon, katso elementin numero. Esimerkiksi: jos sinulla on ilmoitus, jossa lukee "intscores[5];", sinulla on 5 käytettävissä olevaa elementtiä, nimittäin: pisteet[0], pisteet[1], pisteet[2], pisteet[3] ja pisteet[4 ].
23) Voinko käyttää "int"-tietotyyppiä arvon 32768 tallentamiseen? Miksi?
Ei. "int"-tietotyyppi pystyy tallentamaan arvoja välillä -32768 - 32767. Jos haluat tallentaa 32768:n, voit käyttää sen sijaan "long int". Voit myös käyttää "unsigned int" olettaen, että et aio tallentaa negatiivisia arvoja.
24) Voidaanko kaksi tai useampia operaattoreita, kuten \n ja \t, yhdistää yhdelle ohjelmakoodiriville?
Kyllä, operaattoreiden yhdistäminen on täysin pätevää, varsinkin jos tarvetta ilmenee.
Esimerkiksi: sinulla voi olla koodi, kuten printf (“Hello\n\n\’World\'”)
teksti "Hei" ensimmäiselle riville ja "World" yksittäisiin lainausmerkkeihin, jotta se näkyy kahdella seuraavalla rivillä.
25) Miksi kaikkia otsikkotiedostoja ei ole ilmoitettu jokaisessa C-ohjelmassa?
Otsikkotiedoston ilmoittaminen kunkin C-ohjelman yläosassa riippuu siitä, mitä komentoja/toimintoja käytät kyseisessä ohjelmassa. Koska jokainen otsikkotiedosto sisältää erilaiset funktiomääritykset ja prototyypin, käyttäisit vain niitä otsikkotiedostoja, jotka sisältävät tarvitsemasi toiminnot. Kaikkien otsikkotiedostojen ilmoittaminen jokaisessa ohjelmassa vain kasvattaisi ohjelman yleistä tiedostokokoa ja kuormitusta, eikä sitä pidetä hyvänä ohjelmointityylinä.
26) Milloin "tyhjä"-avainsanaa käytetään funktiossa?
Kun määrität funktioita, päätät, palauttaako funktio arvon vai ei. Jos tämä funktio ei palauta arvoa, esimerkiksi kun funktion tarkoituksena on näyttää jotkin ulostulot näytöllä, "tyhjä" on sijoitettava funktion otsikon vasempaan osaan. Kun funktion suorittamisen jälkeen odotetaan palautusarvoa, palautusarvon tietotyyppi sijoitetaan "void" -arvon sijaan.
27) Mitä ovat yhdistelmälausekkeet?
Yhdistetyt käskyt koostuvat kahdesta tai useammasta ohjelmakäskystä, jotka suoritetaan yhdessä. Tämä tapahtuu yleensä käsiteltäessä ehtoja, joissa lausesarja suoritetaan, kun TOSI tai EPÄTOSI arvioidaan. Yhdistetyt lauseet voidaan myös suorittaa silmukan sisällä. Kaarevat hakasulkeet { } sijoitetaan yhdistelmälauseiden eteen ja jälkeen.
28) Mikä on algoritmin merkitys C-ohjelmoinnissa?
Ennen kuin ohjelma voidaan kirjoittaa, on ensin luotava algoritmi. Algoritmi tarjoaa vaiheittaisen menettelyn siitä, kuinka ratkaisu voidaan johtaa. Se toimii myös suunnitelmana ohjelman alkamisesta ja päättymisestä, mukaan lukien siihen, mitä prosessia ja laskelmia siihen liittyy.
29) Mitä etua taulukosta on yksittäisiin muuttujiin verrattuna?
Kun tallennetaan useita toisiinsa liittyviä tietoja, on hyvä idea käyttää taulukoita. Tämä johtuu siitä, että taulukot nimetään käyttämällä vain yhtä sanaa, jota seuraa elementin numero. Esimerkiksi: 1 opiskelijan 10 testituloksen tallentamiseen voidaan käyttää 1 eri muuttujan nimeä (arvosana10, arvosana1, arvosana2… arvosana3). Matriiseissa käytetään vain yhtä nimeä, loput ovat käytettävissä indeksin nimen kautta (arvosana[10], arvosana[1], arvosana[0]… arvosana[1]).
30) Kirjoita silmukkakäsky, joka näyttää seuraavan tulosteen:
1
12
123
1234
12345
Vastaus:
for (a=1; a<=5; i++) { for (b=1; b<=a; b++) printf("%d",b); printf("\n"); }
C Ohjelmointihaastattelun kysymyksiä ja vastauksia kokeneille
31) Mikä tässä lausunnossa on väärin? scanf("%d",mikänumero);
Et-merkki & -symboli on sijoitettava ennen muuttujan nimeä whatnumber. Sijoittaminen & tarkoittaa, että mikä tahansa kokonaislukuarvo, jonka käyttäjä on syöttänyt, tallennetaan muuttujan nimen "osoitteeseen". Tämä on yleinen virhe ohjelmoijille, mikä johtaa usein loogisiin virheisiin.
32) Kuinka luot satunnaislukuja C:ssä?
C:ssä luodaan satunnaislukuja käyttämällä rand() command
. Esimerkiksi: anyNum = rand()
luo minkä tahansa kokonaisluvun, joka alkaa nollasta, olettaen, että anyNum on muuttuja, jonka tyyppi on kokonaisluku.
33) Mikä voisi olla ongelma, jos C-kääntäjä ilmoittaa kelvollisen funktion nimen, kuten tolower(), määrittelemättömäksi?
Todennäköisin syy tähän virheeseen on, että kyseisen toiminnon otsikkotiedostoa ei ilmoitettu ohjelman yläosassa. Otsikkotiedostot sisältävät C-ohjelmassa käytettyjen funktioiden ja komentojen määritelmän ja prototyypin. Jos kyseessä on "tolower()", koodi "#include ” on oltava läsnä ohjelman alussa.
34) Mitä kommentit ovat ja miten ne lisätään C-ohjelmaan?
Kommentit ovat loistava tapa lisätä huomautuksia tai kuvauksia ohjelmaan. Se voi toimia muistutuksena siitä, mistä ohjelmassa on kyse, tai kuvauksena siitä, miksi tietty koodi tai toiminto sijoitettiin sinne alun perin. Kommentit alkavat /*-merkillä ja päättyvät */-merkkeihin. Kommentit voivat olla yhden rivin tai jopa useamman rivin kattavia. Se voidaan sijoittaa mihin tahansa ohjelmaan.
35) Mitä on virheenkorjaus?
Virheenkorjaus on prosessi, jossa tunnistetaan ohjelman sisältämät virheet. Ohjelman kääntämisen aikana löydetyt virheet pysäyttävät ohjelman suorittamisen kokonaan. Tässä tilassa ohjelmoija tutkisi mahdollisia osia, joissa virhe tapahtui. Virheenkorjaus varmistaa virheiden poistamisen, ja sillä on tärkeä rooli sen varmistamisessa, että odotettu ohjelman tulos saavutetaan.
36) Mitä &&-operaattori tekee ohjelmakoodissa?
&&:ta kutsutaan myös AND-operaattoriksi. Tätä operaattoria käytettäessä kaikkien määritettyjen ehtojen on oltava TOSI ennen kuin seuraava toiminto voidaan suorittaa. Jos sinulla on 10 ehtoa ja kaikkia paitsi 1 ei arvioida TOSI, koko ehtolauseke on jo arvioitu EPÄTOSI.
37) Millä komennolla tai koodilla voidaan C-ohjelmoinnissa määrittää, onko luku pariton vai parillinen?
Ei ole yhtä käskyä tai toiminto C:ssä joka voi tarkistaa, onko luku pariton vai parillinen. Tämä voidaan kuitenkin saavuttaa jakamalla tämä luku kahdella ja tarkistamalla loput. Jos jäännös on 2, niin tämä luku on parillinen, muuten se on pariton. Voit kirjoittaa sen koodiin seuraavasti:
if (num % 2 == 0) printf("EVEN"); else printf("ODD");
38) Mitä muoto %10.2 tarkoittaa, kun se sisältyy printf-käskyyn?
Tätä muotoa käytetään kahteen asiaan: tulostenumerolle varattujen välilyöntien määrän ja desimaalien määrän asettamiseen. Desimaalipilkkua edeltävä numero on varattu tila, tässä tapauksessa se antaisi 10 välilyöntiä lähtönumerolle. Jos tulostenumeron käyttämän tilan määrä on pienempi kuin 10, välilyönnin lisäysmerkit lisätään ennen varsinaista tulostenumeroa. Desimaalipilkun jälkeinen numero määrittää desimaalien määrän, tässä tapauksessa se on 2 desimaaliväliä.
39) Mitä ovat loogiset virheet ja miten ne eroavat syntaksivirheistä?
Ohjelma, joka sisältää loogisia virheitä, yleensä läpäisee käännösprosessin, mutta tuloksena oleva tulos ei välttämättä ole odotettu. Tämä tapahtuu, kun koodiin on lisätty väärä kaava tai suoritettu väärä komentosarja. Syntaksivirheet puolestaan käsittelevät virheellisiä komentoja, jotka on kirjoitettu väärin tai joita kääntäjä ei tunnista.
40) Millaisia ohjausrakenteita ohjelmoinnissa on?
Ohjelmoinnissa on kolme pääohjausrakennetta: sekvenssi, valinta ja toisto. Jaksottainen ohjaus seuraa ylhäältä alas -kulkua ohjelman suorittamisessa siten, että ensin suoritetaan vaihe 3 ja sen jälkeen vaihe 1, aina viimeiseen vaiheeseen asti. Valinta käsittelee ehdollisia lauseita, jotka tarkoittavat, että koodit suoritetaan riippuen ehtojen arvioinnista TOSI tai EPÄTOSI. Tämä tarkoittaa myös sitä, että kaikkia koodeja ei välttämättä suoriteta, ja sisällä on vaihtoehtoisia virtoja. Toistot tunnetaan myös silmukkarakenteina, ja ne toistavat yhden tai kaksi laskurin asettamaa ohjelmalausetta.
41) Mikä on || operaattori ja miten se toimii ohjelmassa?
|| tunnetaan myös OR-operaattorina C-ohjelmoinnissa. Käytettäessä || loogisten ehtojen arvioimiseksi mikä tahansa ehto, jonka arvo on TOSI, tekee koko ehtolausekkeen TOSI.
42) Voidaanko "jos"-funktiota käyttää merkkijonojen vertailussa?
Ei. “if”-komentoa voidaan käyttää vain numeroarvojen ja yhden merkin arvojen vertailuun. Merkkijonoarvojen vertailuun on olemassa toinen toiminto nimeltä strcmp, joka käsittelee nimenomaan merkkijonoja.
43) Mitä ovat esikäsittelijän käskyt?
Esikäsittelijän käskyt sijoitetaan jokaisen C-ohjelman alkuun. Tässä määritellään kirjastotiedostot, jotka riippuvat siitä, mitä toimintoja ohjelmassa käytetään. Toinen esikäsittelyohjeiden käyttötapa on vakioiden ilmoittaminen. Esikäsittelijän käskyt alkavat #-symbolilla.
44) Mikä on seuraavan ehdollisen lauseen lopputulos, jos muuttujan s arvo on 10?
s >=10 && s < 25 && s!=12
Tulos tulee olemaan TOSI. Koska s:n arvo on 10, s >= 10 on TOSI, koska s ei ole suurempi kuin 10, mutta on silti yhtä suuri kuin 10. s<25 on myös TOSI, koska 10 on pienempi kuin 25. Aivan samoin, s!=12 , mikä tarkoittaa, että s ei ole yhtä suuri kuin 12, arvo on TOSI. && on AND-operaattori ja noudattaa sääntöä, jonka mukaan jos kaikki yksittäiset ehdot ovat TOSI, koko lauseke on TOSI.
45) Kuvaile C:n operaattoreiden tärkeysjärjestystä.
Tärkeysjärjestys määrittää, mikä toiminto on ensin suoritettava operaatiokäskyssä tai ehdollisessa käskyssä. Ylimmällä prioriteettitasolla ovat unaarioperaattorit !, +, – ja &. Sen jälkeen tulevat tavalliset matemaattiset operaattorit (*, / ja moduuli-% ensin, sitten + ja -). Seuraavaksi rivillä ovat relaatiooperaattorit <, <=, >= ja >. Tämän jälkeen seuraavat kaksi yhtäläisyysoperaattoria == ja !=. Loogiset operaattorit && ja || arvioidaan seuraavaksi. Viimeisellä tasolla on määritysoperaattori =.
46) Mitä vikaa tässä lausunnossa on? myName = "Robin";
Et voi käyttää =-merkkiä arvojen määrittämiseen merkkijonomuuttujalle. Käytä sen sijaan strcpy-funktiota. Oikea lause olisi: strcpy(myName, "Robin");
47) Kuinka määrität muuttujaan tallennetun merkkijonoarvon pituuden?
Jos haluat saada merkkijonon arvon pituuden, käytä funktiota strlen(). Jos sinulla on esimerkiksi muuttuja nimeltä FullName, voit saada tallennetun merkkijonoarvon pituuden käyttämällä tätä käskyä: I = strlen(FullName); muuttujalla I on nyt merkkijonon arvon merkin pituus.
48) Onko mahdollista alustaa muuttuja sen ilmoittamishetkellä?
Kyllä, sinun ei tarvitse kirjoittaa erillistä toimeksiantolausetta muuttujan ilmoituksen jälkeen, ellet aio muuttaa sitä myöhemmin. Esimerkki: char planet[15] = "Maa"; tekee kaksi asiaa: se ilmoittaa merkkijonomuuttujan nimeltä planeetta ja alustaa sen sitten arvolla "Earth".
49) Miksi C-kieltä pidetään keskitason kielenä?
Tämä johtuu siitä, että C-kielessä on runsaasti ominaisuuksia, jotka saavat sen käyttäytymään korkean tason kielen tavoin ja voivat samalla olla vuorovaikutuksessa laitteiston kanssa matalan tason menetelmillä. Hyvin jäsennellyn lähestymistavan käyttö ohjelmointiin yhdistettynä funktioissa käytettyihin englanninkielisiin sanoihin saa sen toimimaan korkean tason kielenä. Toisaalta C voi käyttää suoraan kokoonpanokielen rutiineja muistuttavia muistirakenteita.
50) Mitä eri tiedostopäätteitä käytetään ohjelmoinnissa C:llä?
C:n lähdekoodit tallennetaan .C-tiedostotunnisteella. Otsikkotiedostoilla tai kirjastotiedostoilla on .H-tiedostotunniste. Aina kun ohjelman lähdekoodi käännetään onnistuneesti, se luo .OBJ-objektitiedoston ja suoritettavan .EXE-tiedoston.
51) Mitä ovat varatut sanat?
Varatut sanat ovat sanoja, jotka ovat osa C-kielen standardikirjastoa. Tämä tarkoittaa, että varatuilla sanoilla on erityinen merkitys, joten niitä ei voida käyttää muihin tarkoituksiin kuin mihin ne on alun perin tarkoitettu. Esimerkkejä varatuista sanoista ovat int, void ja return.
52) Mitä linkitetyt luettelot ovat?
Linkitetty luettelo koostuu solmuista, jotka on yhdistetty toiseen. C-ohjelmoinnissa linkitetyt listat luodaan osoittimien avulla. Linkitettyjen luetteloiden käyttö on yksi tehokas tapa käyttää muistia tallennusta varten.
53) Mikä on FIFO?
C-ohjelmoinnissa on tietorakenne, joka tunnetaan nimellä queue. Tässä rakenteessa tiedot tallennetaan ja niitä käytetään FIFO-muodossa eli First-In-First-Out. Jono edustaa riviä, jolle ensimmäiset tallennetut tiedot ovat myös ensimmäinen käytettävissä olevat tiedot.
54) Mitä ovat binääripuut?
Binääripuut ovat itse asiassa linkitettyjen luetteloiden käsitteen laajennus. Binääripuussa on kaksi osoitinta, vasen ja oikea. Kumpikin puoli voi haarautua edelleen muodostaen lisäsolmuja, joissa jokaisella solmulla on myös kaksi osoitinta. Lisätietoja: Binääripuu tietorakenteessa jos olet kiinnostunut.
55) Kaikkia varattuja sanoja ei kirjoiteta pienillä kirjaimilla. Totta vai tarua?
EPÄTOSI. Kaikki varatut sanat on kirjoitettava pienillä kirjaimilla; muuten C-kääntäjä tulkitsee tämän tunnistamattomaksi ja virheelliseksi.
56) Mitä eroa on ilmaisuilla "++a" ja "a++"?
Ensimmäisessä lausekkeessa lisäys tapahtuisi ensin muuttujalla a, ja tuloksena olevaa arvoa käytetään. Tämä tunnetaan myös etuliitteen lisäyksenä. Toisessa lausekkeessa muuttujan a nykyinen arvo olisi se, jota käytetään operaatiossa, ennen kuin itse a:n arvoa kasvatetaan. Tätä kutsutaan myös postfixin lisäykseksi.
57) Mitä tapahtuisi X:lle tässä lausekkeessa: X += 15; (olettaen, että X:n arvo on 5)
X +=15 on lyhyt tapa kirjoittaa X = X + 15, joten jos X:n alkuarvo on 5, niin 5 + 15 = 20.
58) C-kielessä muuttujat NAME, name ja Name ovat kaikki samat. Totta vai tarua?
VÄÄRÄ. C-kieli on isot ja pienet kirjaimet huomioiva kieli. Siksi NIMI, nimi ja nimi ovat kolme yksilöllisesti erilaista muuttujaa.
59) Mikä on loputon silmukka?
Loputon silmukka voi tarkoittaa kahta asiaa. Yksi on, että se suunniteltiin jatkuvaan silmukointiin, kunnes silmukan sisällä oleva ehto täyttyy, minkä jälkeen taukofunktio saa ohjelman astumaan pois silmukasta. Toinen ajatus loputtomasta silmukasta on, kun kirjoitettiin virheellinen silmukan ehto, mikä saa silmukan toimimaan virheellisesti ikuisesti. Loputtomia silmukoita kutsutaan usein äärettömiksi silmukoiksi.
60) Mikä on ohjelman vuokaavio ja miten se auttaa ohjelman kirjoittamisessa?
Vuokaavio tarjoaa visuaalisen esityksen vaiheittaisesta menettelystä tietyn ongelman ratkaisemiseksi. Vuokaaviot on tehty symboleista, ja jokainen symboli on eri muotoinen. Jokainen muoto voi edustaa tiettyä kokonaisuutta koko ohjelmarakenteessa, kuten prosessia, ehtoa tai jopa syöttö/tulostusvaihetta.
61) Mitä vikaa tässä ohjelmalauseessa on? tyhjä = 10;
Sana void on varattu sana C-kielessä. Varattuja sanoja ei voi käyttää käyttäjän määrittämänä muuttujana.
62) Onko tämä ohjelmalausunto voimassa? INT = 10.50;
Olettaen, että INT on float-tyyppinen muuttuja, tämä lause on kelvollinen. Voidaan ajatella, että INT on varattu sana, eikä sitä saa käyttää muihin tarkoituksiin. Muista kuitenkin, että varatut sanat ovat ilmaistuja pienillä kirjaimilla, joten C-kääntäjä ei tulkitse tätä varatuksi sanaksi.
63) Mitkä ovat todelliset argumentit?
Kun luot ja käytät toimintoja, joiden on suoritettava toiminto joillekin annetuille arvoille, sinun on välitettävä nämä annetut arvot kyseiselle funktiolle. Arvoja, jotka välitetään kutsuttuun funktioon, kutsutaan todellisiksi argumenteiksi.
64) Mikä on rivinvaihtosekvenssi?
Rivinvaihtomerkkijonoa edustaa \n-merkki. Tätä käytetään uuden rivin lisäämiseen, kun tietoja näytetään tulosnäytössä. Lisää välilyöntejä voidaan lisätä lisäämällä \n merkkiä. Esimerkiksi \n\n lisääisi kaksi välilyöntiä. Rivinvaihtomerkkijono voidaan sijoittaa ennen varsinaista tuloslauseketta tai sen jälkeen.
65) Mikä on lähdön uudelleenohjaus?
Se on prosessi tietojen siirtämiseksi vaihtoehtoiseen lähtölähteeseen, joka ei ole näyttöruutua. Tulosteen uudelleenohjaus mahdollistaa ohjelman tulosteen tallentamisen tiedostoon. Jos sinulla on esimerkiksi ohjelma nimeltä COMPUTE, kirjoitat tämän komentoriville muodossa COMPUTE > DATA voi hyväksyä syötteen käyttäjältä, suorittaa tiettyjä laskutoimituksia ja ohjata tulosteen DATA-nimiseen tiedostoon sen sijaan, että se näyttäisi sen näytöllä. .
66) Mitä ovat ajonaikaiset virheet?
Nämä ovat virheitä, jotka tapahtuvat ohjelman suorittamisen aikana. Yksi yleinen tapaus, jossa ajonaikaisia virheitä voi tapahtua, on, kun yrität jakaa luvun nollalla. Kun ajonaikaisia virheitä ilmenee, ohjelman suoritus keskeytyy ja näyttää mikä ohjelmarivi aiheutti virheen.
67) Mitä eroa on funktioilla abs() ja fabs()?
Nämä 2 funktiota suorittavat periaatteessa saman toiminnon, joka on saada annetun arvon itseisarvo. Abs() käytetään kokonaislukuarvoille, kun taas fabs() käytetään kelluville tyyppiluvuille. Myös abs():n prototyyppi on alla , kun fabs() on alla .
68) Mitä ovat muodolliset parametrit?
Käytettäessä funktioita C-ohjelmassa muodolliset parametrit sisältävät arvot, jotka kutsuva funktio välitti. Arvot korvataan näissä muodollisissa parametreissa ja niitä käytetään missä tahansa kutsutun funktion päärungossa osoitetuissa operaatioissa.
69) Mitä ohjausrakenteet ovat?
Ohjausrakenteet ottavat vastuun siitä, mitkä käskyt ohjelmassa suoritetaan. Tämä tarkoittaa, että ohjelman kulku ei välttämättä siirry käskystä seuraavaan, vaan jotkin vaihtoehtoiset osat on ehkä siirrettävä sisään tai ohitettava niistä riippuen ehdollisten lauseiden tuloksesta.
70) Kirjoita yksinkertainen koodinpätkä, joka tarkistaa, onko luku positiivinen vai negatiivinen
If (num>=0) printf("number is positive"); else printf ("number is negative");
71) Milloin "kytkin"-lause on parempi kuin "if"-lause?
- vaihtaa lausunto on parasta käyttää, kun käsitellään yksittäiseen muuttujaan tai lausekkeeseen perustuvia valintoja. Kytkinkäskyt voivat kuitenkin arvioida vain kokonaisluku- ja merkkitietotyyppejä.
72) Mitä ovat globaalit muuttujat ja miten ne ilmoitetaan?
Globaalit muuttujat ovat muuttujia, joita voidaan käyttää ja joita voidaan käsitellä missä tahansa ohjelmassa. Jos haluat tehdä muuttujasta globaalia, sijoita muuttujan määritys ohjelman yläosaan, heti esikäsittelyohjeiden osan jälkeen.
73) Mitä ovat luetellut tyypit?
Enumeroidut tyypit antavat ohjelmoijalle mahdollisuuden käyttää merkityksellisempiä sanoja muuttujan arvoina. Jokainen listatun tyyppimuuttujan kohde liittyy itse asiassa numeeriseen koodiin. Voidaan esimerkiksi luoda numeroitu tyyppimuuttuja nimeltä DAYS, jonka arvot ovat Monday, tiistai… sunnuntai.
74) Mitä funktio toupper() tekee?
Sitä käytetään minkä tahansa kirjaimen muuntamiseen sen isojen kirjainten tilaan. Toupper()-funktion prototyyppi on ilmoitettu . Huomaa, että tämä toiminto muuntaa vain yhden merkin, ei koko merkkijonoa.
75) Onko mahdollista käyttää funktiota parametrina toisessa funktiossa?
Kyllä, se on sallittua C-ohjelmoinnissa. Sinun tarvitsee vain sisällyttää koko funktion prototyyppi sen toisen funktion parametrikenttään, jossa sitä käytetään.
76) Mitä ovat moniulotteiset taulukot?
Moniulotteiset taulukot pystyvät tallentamaan tietoja kaksiulotteisessa tai useammassa rakenteessa. Voit esimerkiksi käyttää 2-ulotteista taulukkoa tallentaaksesi nappuloiden nykyisen sijainnin shakkipelissä tai pelaajien sijainnit tic-tac-toe-ohjelmassa.
77) Millä C:n funktiolla voidaan liittää merkkijono toiseen merkkijonoon?
strcat-funktio. Lähdemerkkijonoon liitetään kaksi parametria, lähdemerkkijono ja merkkijonoarvo.
78) Mitä eroa on funktioilla getch() ja getche()?
Molemmat toiminnot hyväksyvät käyttäjältä syötetyn merkin. Kun käytät getch()-näppäintä, painettu näppäin ei näy näytössä, vaan se kaapataan automaattisesti ja liitetään muuttujaan. Käytettäessä getche() näppäin, jota käyttäjä oli painanut, tulee näkyviin näytölle, samalla kun se on määritetty muuttujaan.
79) Suorittavatko nämä kaksi ohjelmakäskyä saman tulosteen? 1) scanf("%c", &kirjain); 2) letter=getchar()
Kyllä, he molemmat tekevät täsmälleen saman asian, eli hyväksyvät seuraavan käyttäjän painaman näppäimen ja määrittävät sen muuttujalle nimeltä kirjain.
80) Mitkä ovat C:n rakennetyypit?
Rakennetyyppejä käytetään ensisijaisesti tietueiden tallentamiseen. Tietue koostuu toisiinsa liittyvistä kentistä. Tämä helpottaa toisiinsa liittyvien tietojen ryhmän järjestämistä.
81) Mitä merkit "r" ja "w" tarkoittavat, kun kirjoitetaan ohjelmia, jotka käyttävät tiedostoja?
"r" tarkoittaa "lukemista" ja avaa syötteenä tiedoston, josta tiedot haetaan. "w" tarkoittaa "kirjoitusta" ja avaa tiedoston tulostusta varten. Tähän tiedostoon aiemmin tallennetut tiedot poistetaan.
82) Mitä eroa on tekstitiedostoilla ja binääritiedostoilla?
Tekstitiedostot sisältävät tietoa, jota ihmiset voivat helposti ymmärtää. Se sisältää kirjaimia, numeroita ja muita merkkejä. Toisaalta binääritiedostot sisältävät ykkösiä ja nollia, joita vain tietokoneet voivat tulkita.
83) Onko mahdollista luoda omia otsikkotiedostoja?
Kyllä, on mahdollista luoda mukautettu otsikkotiedosto. Sisällytä siihen vain funktioprototyypit, joita haluat käyttää ohjelmassasi, ja käytä #include-ohjetta, jota seuraa otsikkotiedostosi nimi.
84) Mikä on dynaaminen tietorakenne?
Dynaaminen tietorakenne tarjoaa tavan tallentaa dataa tehokkaammin muistiin. Käyttämällä dynaaminen muistin allokointi, ohjelmasi käyttää muistitiloja tarpeen mukaan. Tämä on toisin kuin staattinen tietorakenne, jossa ohjelmoijan on ilmoitettava kiinteä määrä ohjelmassa käytettävää muistitilaa.
85) Mitkä ovat C:n eri tietotyypit?
Perus tietotyypit C:ssä ovat int, char ja float. Int:tä käytetään ilmoittamaan muuttujat, jotka tallentavat kokonaislukuarvoja. Floatia käytetään reaalilukujen tallentamiseen. Char voi tallentaa yksittäisiä merkkiarvoja.
86) Mikä on C-ohjelman yleinen muoto?
AC-ohjelma alkaa esiprosessorin käskyillä, joissa ohjelmoija määrittelee mitä otsikkotiedostoa ja mitä vakioita (jos niitä on) käytetään. Tätä seuraa pääfunktion otsikko. Pääfunktion sisällä on muuttujan ilmoitus ja ohjelmalause.
87) Mitä hyötyä on hajasaantitiedostosta?
Jos tiedostoon tallennetun tiedon määrä on melko suuri, satunnaiskäytön avulla voit hakea sitä nopeammin. Jos se olisi ollut peräkkäinen pääsytiedosto, sinun olisi täytynyt käydä läpi yksi tietue kerrallaan, kunnes saavutat kohdetiedot. Hajakäyttötiedoston avulla voit siirtyä suoraan kohdeosoitteeseen, jossa tiedot sijaitsevat.
88) Mitä tapahtuu switch-käskyssä, jos break-lause jätetään pois?
Jos break-lausetta ei ole sijoitettu tietyn tapauksen osan loppuun? Se siirtyy seuraavaan tapausosaan, mikä saattaa aiheuttaa virheellisen tulosteen.
89) Kuvaile, kuinka taulukoita voidaan välittää käyttäjän määrittämälle funktiolle
Yksi huomioitava asia on, että et voi siirtää koko taulukkoa funktiolle. Sen sijaan annat sille osoittimen, joka osoittaa taulukon ensimmäiseen elementtiin muistissa. Voit tehdä tämän antamalla taulukon nimen ilman sulkuja.
90) Mitä osoittimet ovat?
Osoittimet osoittavat tietyille muistin alueille. Osoittimet sisältävät muuttujan osoitteen, joka puolestaan voi sisältää arvon tai jopa osoitteen toiseen muistiin.
91) Voitko siirtää koko rakenteen funktioille?
Kyllä, on mahdollista siirtää koko rakenne funktiolle kutsutyyliin. Jotkut ohjelmoijat haluavat kuitenkin ilmoittaa rakenteen globaalisti ja välittää sitten kyseisen rakennetyypin muuttujan funktiolle. Tämä menetelmä auttaa säilyttämään johdonmukaisuuden ja yhdenmukaisuuden argumenttityypin suhteen.
92) Mikä on gets()-funktio?
- gets() function
mahdollistaa täyden rivin tietojen syöttämisen käyttäjältä. Kun käyttäjä lopettaa syötteen painamalla Enter-näppäintä, koko merkkirivi tallennetaan merkkijonomuuttujaan. Huomaa, että enter-näppäintä ei sisälly muuttujaan, vaan sen sijaan viimeisen merkin jälkeen sijoitetaan tyhjäpääte \0.
93) %-symbolilla on erityinen käyttö printf-lauseessa. Kuinka sijoittaisit tämän hahmon osaksi tulosta näytölle?
Voit tehdä tämän käyttämällä %% printf-lauseessa. Voit esimerkiksi kirjoittaa printf(“10%%”), jotta tulos näkyy näytöllä 10 %:na.
94) Miten haet dataa datatiedostosta hajasaantimenetelmällä?
Käytä fseek()
toiminto suorittaa tiedostolle satunnaissyötön/tulostuksen. Kun tiedosto on avattu fopen()-funktiolla, fseek vaatii toimiakseen kolme parametria: tiedostoosoittimen tiedostoon, haettavien tavujen lukumäärän ja tiedoston lähtökohdan.
95) Sisällytetäänkö kommentit käännösvaiheeseen ja sijoitetaanko ne myös EXE-tiedostoon?
Ei, kääntäjän havaitsemat kommentit jätetään huomioimatta. Kommentit ovat enimmäkseen ohjelmoijalle suunnattuja, eikä niillä ole muuta merkittävää käyttöä ohjelman toiminnassa.
96) Onko C:ssä sisäänrakennettu toiminto, jota voidaan käyttää tietojen lajitteluun?
Kyllä, käytä qsort()
toiminto. Lajittelua varten on myös mahdollista luoda käyttäjän määrittelemiä toimintoja, kuten pallolajittelu- ja kuplalajittelualgoritmiin perustuvia.
97) Mitkä ovat kasan edut ja haitat?
Tietojen tallentaminen kasaan on hitaampaa kuin pinoa käytettäessä. Kasan käytön tärkein etu on kuitenkin sen joustavuus. Tämä johtuu siitä, että tämän rakenteen muistia voidaan varata ja poistaa missä tahansa järjestyksessä. Kasan hitaus voidaan kompensoida, jos algoritmi on hyvin suunniteltu ja toteutettu.
98) Kuinka muutat merkkijonot numeroiksi C:ssä?
Voit kirjoittaa omia funktioita tehdäksesi merkkijonon muunnoksia numeroiksi tai käyttää sen sijaan C:n sisäänrakennettuja funktioita. Voit muuntaa atof-komentoa liukulukuksi, atoi-komentoa kokonaislukuarvoksi ja atol-komentoa pitkäksi kokonaislukuarvoksi.
99) Luo yksinkertainen koodinpätkä, joka vaihtaa kahden muuttujan num1 ja num2 arvot.
int temp; temp = num1; num1 = num2; num2 = temp;
100) Mitä hyötyä puolipisteestä (;) on jokaisen ohjelmakäskyn lopussa?
Se liittyy jäsennysprosessiin ja koodin kääntämiseen. Puolipiste toimii erottimena, joten kääntäjä tietää, mihin kukin lause päättyy, ja voi jakaa lauseen pienempiin elementteihin syntaksin tarkistusta varten.
Nämä haastattelukysymykset auttavat myös vivassasi (suullinen)