A 100 legnépszerűbb C programozási interjú kérdése és válasza (PDF)
Íme a C programozási interjú kérdései és válaszai friss és tapasztalt jelöltek számára, hogy megszerezzék álmaik állását.
Alapvető C programozási interjú kérdések és válaszok pályakezdőknek
1) Hogyan készíthetsz növelő vagy csökkentő utasítást C-ben?
Valójában ezt kétféleképpen teheti meg. Az egyik a ++ növelési és a – csökkentési operátor használata. Például az „x++” utasítás azt jelenti, hogy x értékét növeljük 1-gyel. Hasonlóképpen, az „x –” állítás azt jelenti, hogy x értékét 1-gyel csökkentjük. A növekményes utasítások másik módja a hagyományos + pluszjel használata. vagy – mínusz jel. Az „x++” esetén a másik írási mód az „x = x +1”.
👉 Ingyenes PDF letöltés: C programozási interjú kérdések és válaszok >>
2) Mi a különbség a Call by Value és a Call by Reference között?
A Call by Value használatakor egy változó értékét paraméterként küldi el egy függvénynek, míg a Call by Reference a változó címét küldi el. Továbbá a Call by Value alatt a paraméter értékét nem befolyásolja bármilyen művelet sem, míg a Call by Reference esetén az értékeket a függvényen belüli folyamat befolyásolhatja.
3) Egyes kódolók úgy hibakeresik programjaikat, hogy megjegyzésszimbólumokat helyeznek el néhány kódon ahelyett, hogy törölnék azokat. Hogyan segít ez a hibakeresésben?
A megjegyzésszimbólumok /* */ elhelyezése egy kód körül, amelyet „megjegyzésnek” is neveznek, egy módja annak, hogy elkülönítsünk néhány olyan kódot, amelyekről úgy gondoljuk, hogy hibákat okozhatnak a programban, anélkül, hogy törölnénk a kódot. Az ötlet az, hogy ha a kód valóban helyes, egyszerűen távolítsa el a megjegyzés szimbólumokat, és folytassa tovább. Időt és erőfeszítést takarít meg Önnek, ha újra be kell írnia a kódokat, ha már törölte azokat.
4) Mi a megfelelő kódja a következő utasításnak WHILE LOOP formátumban?
for (a=1; a<=100; a++) printf ("%d\n", a * a);
Válasz:
a=1; while (a<=100) { printf ("%d\n", a * a); a++; }
5) Mi az a verem?
A verem az adatstruktúra egyik formája. Az adatokat a FILO (First In Last Out) módszerrel halmokban tárolják. Egy adott esetben csak a verem teteje érhető el, ami azt jelenti, hogy a veremben tárolt adatok lekéréséhez először a felső részen lévőket kell kivonni. Az adatok veremben való tárolását PUSH-nak is nevezik, míg az adatlekérést POP-nak nevezik.
6) Mi az a szekvenciális hozzáférésű fájl?
Amikor olyan programokat írunk, amelyek adatokat tárolnak és lekérnek egy fájlban, lehetőség van arra, hogy a fájlt különböző formákban kijelölje. A szekvenciális hozzáférésű fájl olyan, hogy az adatok szekvenciális sorrendben kerülnek mentésre: az egyik adat a másik után kerül a fájlba. Egy adott adat eléréséhez a szekvenciális hozzáférési fájlban az adatokat egyenként kell olvasni, amíg el nem éri a megfelelőt.
7) Mi az a változó inicializálás, és miért fontos?
Ez arra a folyamatra vonatkozik, amelyben egy változóhoz a programban való felhasználás előtt egy kezdeti értéket rendelnek. Inicializálás nélkül egy változónak ismeretlen értéke lenne, ami kiszámíthatatlan kimenetekhez vezethet számításokban vagy egyéb műveletekben.
8 Mi a spagetti programozás?
A spagetti programozás olyan kódokra utal, amelyek általában összegabalyodnak és átfedik egymást a program során. A kódolás ezen strukturálatlan megközelítése általában a programozó tapasztalatának hiányára vezethető vissza. A spagetti programozás bonyolulttá teszi a programot, a kódok elemzését pedig megnehezíti, ezért lehetőleg kerülni kell.
9) Különböztesse meg a forráskódokat az objektumkódoktól
A forráskódok olyan kódok, amelyeket a programozó írt. Azokból a parancsokból és más angol-szerű kulcsszavakból áll, amelyek állítólag utasítják a számítógépet, hogy mit tegyen. A számítógépek azonban nem tudnák megérteni a forráskódokat. Ezért a forráskódokat fordítóprogram segítségével fordítják le. A kapott kimenetek objektumkódok, amelyek a számítógép processzora számára érthető formátumban vannak. Ban ben C programozás, a forráskódok .C kiterjesztéssel, míg az objektumkódok az .OBJ kiterjesztéssel kerülnek mentésre
10) A C programozásban hogyan lehet idézőjeleket (' és ") beszúrni a kimeneti képernyőre?
Ez gyakori probléma a kezdők számára, mivel az idézőjelek általában a printf utasítás részét képezik. Ha az idézőjel karaktert a kimenet részeként szeretné beszúrni, használja a \' (egy idézőjelhez) és \” (kettős idézőjelhez) formátum-specifikációt.
11) Mire jó a '\0' karakter?
Lezáró nullkarakternek nevezik, és elsősorban egy karakterlánc-érték végének megjelenítésére szolgál.
12) Mi a különbség az = és az == szimbólum között?
A = szimbólumot gyakran használják matematikai műveletekben. Arra használják, hogy egy adott változóhoz értéket rendeljenek. Másrészt az == szimbólum, más néven „egyenlő” vagy „egyenértékű vele”, egy relációs operátor, amelyet két érték összehasonlítására használnak.
13) Mi a modulus operátor?
A modulus operátor kiadja az osztás maradékát. A százalék (%) szimbólumot használja. Például: 10 % 3 = 1, ami azt jelenti, hogy ha 10-et elosztunk 3-mal, a maradék 1 lesz.
14) Mi az a beágyazott hurok?
A beágyazott hurok olyan hurok, amely egy másik hurkon belül fut. Más értelemben fogalmazva, van egy belső hurok, amely egy külső hurkon belül van. Ebben a forgatókönyvben a belső hurkot a külső hurok által meghatározott számú alkalommal hajtják végre. A külső hurok minden egyes bekapcsolásakor először a belső hurkot hajtják végre.
15) Az alábbi operátorok közül melyik hibás és miért? ( >=, <=, <>, ==)
<> helytelen. Bár ezt az operátort helyesen úgy értelmezik, hogy „nem egyenlő” a feltételes utasítások írásakor, nem ez a megfelelő operátor, amelyet C programozás. Ehelyett a != operátort kell használni a „nem egyenlő” feltétel jelzésére.
16) Hasonlítsa össze és állítsa össze a tolmácsok fordítóprogramjait.
A fordítók és értelmezők gyakran foglalkoznak a programkódok végrehajtásával. A tolmácsok soronként hajtják végre a programkódokat, míg a fordítók a program egészét veszik, és objektumkóddá alakítják, mielőtt végrehajtanák. A legfontosabb különbség itt az, hogy az interpreterek esetében a program a végrehajtás közepén szintaktikai hibákat tapasztalhat, és onnantól leáll. Másrészt a fordítók ellenőrzik a teljes program szintaxisát, és csak akkor folytatják a végrehajtást, ha nem találnak szintaktikai hibát.
17) Hogyan deklarálunk egy változót, amely karakterlánc-értékeket tartalmaz?
A char kulcsszó egyszerre csak 1 karaktert tartalmazhat. Egy karaktertömb létrehozásával karakterlánc-értékeket tárolhat benne. Példa: „char MyName[50]; ” deklarál egy MyName nevű karakterlánc-változót, amely maximum 50 karaktert tartalmazhat.
18) Használhatók a göndör zárójelek { } egyetlen kódsor bezárására?
Míg a göndör zárójeleket főként több kódsor csoportosítására használják, akkor is hiba nélkül működik, ha egyetlen sorhoz használta. Egyes programozók ezt a módszert részesítik előnyben a kódok rendezésének módjaként, hogy világosabbnak tűnjenek, különösen a feltételes utasításokban.
19) Mik azok a fejlécfájlok, és mire használhatók a C programozásban?
A fejlécfájlokat könyvtárfájloknak is nevezik. Két lényeges dolgot tartalmaznak: a programban használt függvények definícióit és prototípusait. Egyszerűen fogalmazva, a C programozásban használt parancsok valójában olyan függvények, amelyek az egyes fejlécfájlokon belül vannak meghatározva. Minden fejlécfájl egy sor függvényt tartalmaz. Például: az stdio.h egy fejlécfájl, amely olyan parancsok definícióját és prototípusait tartalmazza, mint a printf és a scanf.
20) Mi az a szintaktikai hiba?
A szintaktikai hibák a programozási nyelv használatának hibáihoz kapcsolódnak. Lehet, hogy egy hibásan írt parancs, vagy egy olyan parancs, amelyet kisbetűs módban adtak meg, de ehelyett nagybetűvel írták be. A helytelenül elhelyezett szimbólum vagy a szimbólum hiánya valahol a kódsorban szintén szintaktikai hibához vezethet.
21) Mik azok a változók, és miben különbözik az állandóktól?
A változók és állandók elsőre hasonlónak tűnhetnek abban az értelemben, hogy mindkettő egy vagy több karakterből (betűkből, számokból és néhány megengedett szimbólumból) álló azonosító. Mindkettőnek különleges értéke is lesz. A változó által tárolt értékek a program során megváltoztathatók, és a legtöbb műveletben és számításban felhasználhatók. A konstansok csak egyszerre kapnak értékeket, a program elejére helyezve. Ez az érték nem változik a programban. Például hozzárendelhet egy PI nevű konstanst, és megadhatja a 3.1415 értéket. Ezután használhatja PI-ként a programban, ahelyett, hogy minden alkalommal 3.1415-öt kellene írnia, amikor szüksége van rá.
22) Hogyan érheti el az értékeket egy tömbön belül?
A tömbök számos elemet tartalmaznak, attól függően, hogy mekkora méretet adott meg a változó deklarálása során. Minden elemhez egy szám van hozzárendelve 0-tól az elemek száma-1-ig. Egy adott elem értékének hozzárendeléséhez vagy lekéréséhez tekintse meg az elem számát. Például: ha van egy deklarációja, amely szerint „intscores[5];”, akkor 5 elérhető eleme van, nevezetesen: pontszámok[0], pontszámok[1], pontszámok[2], pontszámok[3] és pontszámok[4] ].
23) Használhatom az „int” adattípust a 32768 érték tárolására? Miért?
Nem. Az „int” adattípus -32768 és 32767 közötti értékek tárolására képes. A 32768 tárolásához használhatja helyette a „long int”-t. Használhatja az „unsigned int”-et is, feltéve, hogy nem kíván negatív értékeket tárolni.
24) Kombinálható-e két vagy több operátor, például \n és \t egyetlen programkódsorban?
Igen, az operátorok kombinálása teljesen helyénvaló, különösen, ha szükség van rá.
Például: lehet egy olyan kód, mint printf (“Hello\n\n\’World\'”)
hogy az első sorban a „Hello” szöveget, a következő két sorban pedig a „World” szót idézőjelbe zárva jelenjen meg.
25) Miért van az, hogy nincs minden fejlécfájl deklarálva minden C programban?
A fejlécfájl deklarálása az egyes C programok tetején attól függ, hogy milyen parancsokat/funkciókat fog használni az adott programban. Mivel minden fejlécfájl különböző függvénydefiníciókat és prototípusokat tartalmaz, csak azokat a fejlécfájlokat használja, amelyek tartalmazzák a szükséges függvényeket. Az összes fejlécfájl deklarálása minden programban csak növeli a teljes fájlméretet és a program terhelését, és ez nem tekinthető jó programozási stílusnak.
26) Mikor használják a „void” kulcsszót egy függvényben?
Függvények deklarálásakor el kell döntenie, hogy a függvény értéket ad-e vissza vagy sem. Ha ez a függvény nem ad vissza értéket, például amikor egy függvény célja néhány kimenet megjelenítése a képernyőn, akkor a „void”-t a függvény fejlécének bal szélső részébe kell helyezni. Ha a függvény végrehajtása után visszatérési érték várható, akkor a visszatérési érték adattípusa kerül elhelyezésre a „void” helyett.
27) Mik azok az összetett állítások?
Az összetett utasítások két vagy több programutasításból állnak, amelyeket együtt hajtanak végre. Ez általában akkor fordul elő, amikor olyan feltételeket kezelünk, amelyek során utasítások sorozatát hajtják végre, amikor IGAZ vagy HAMIS értéket kapunk. Az összetett utasítások cikluson belül is végrehajthatók. A göndör zárójelek { } az összetett utasítások elé és mögé kerülnek.
28) Mi a jelentősége egy algoritmusnak a C programozásban?
Mielőtt egy programot írhatnánk, először létre kell hozni egy algoritmust. Egy algoritmus lépésről lépésre nyújt eljárást a megoldás származtatására. Egyúttal tervrajzként is működik a program indulásának és befejezésének módjára vonatkozóan, beleértve a folyamatot és a számításokat is.
29) Mi az előnye egy tömbnek az egyes változókkal szemben?
Több kapcsolódó adat tárolásakor célszerű tömböket használni. Ennek az az oka, hogy a tömbök elnevezése csak 1 szóból áll, amelyet egy elemszám követ. Például: 10 tanuló 1 teszteredményének tárolásához 10 különböző változónevet használhatunk (1, 2. osztály, 3… 10. évfolyam). A tömböknél csak 1 név használatos, a többi az indexnéven keresztül érhető el (grade[0], grade[1], grade[2]… grade[9]).
30) Írjon egy ciklusutasítást, amely a következő kimenetet mutatja:
1
12
123
1234
12345
Válasz:
for (a=1; a<=5; i++) { for (b=1; b<=a; b++) printf("%d",b); printf("\n"); }
C Programozási interjú Kérdések és válaszok tapasztaltaknak
31) Mi a rossz ebben a kijelentésben? scanf("%d",milyen szám);
Az "és" és a szimbólumot a whatnumber változó neve elé kell helyezni. Az & elhelyezés azt jelenti, hogy a felhasználó által beírt egész szám a változónév „címén” tárolódik. Ez a programozók gyakori hibája, ami gyakran logikai hibákhoz vezet.
32) Hogyan generálunk véletlen számokat C-ben?
Véletlen számokat generálunk C-ben a rand() command
. Például: anyNum = rand()
bármilyen 0-tól kezdődő egész számot generál, feltételezve, hogy az anyNum egy egész típusú változó.
33) Mi lehet a probléma, ha egy érvényes függvénynevet, például tolower() a C fordító definiálatlanként jelez?
A hiba legvalószínűbb oka az, hogy az adott függvény fejlécfájlja nem volt feltüntetve a program tetején. A fejlécfájlok a C programokban használt függvények és parancsok definícióját és prototípusát tartalmazzák. A „tolower()” esetén a „#include ” jelen kell lennie a program elején.
34) Mik azok a megjegyzések, és hogyan lehet beszúrni egy C programba?
Hozzászólások nagyszerű módja annak, hogy megjegyzéseket vagy leírásokat tegyen egy programban. Emlékeztetőül szolgálhat arra, hogy miről szól a program, vagy leírhatja, hogy egy bizonyos kód vagy funkció miért került oda. A megjegyzések /* karakterrel kezdődnek és */ karakterrel végződnek. A megjegyzések lehetnek egysorosak, de akár több sorra is kiterjedhetnek. Bárhol elhelyezhető a programban.
35) Mi a hibakeresés?
A hibakeresés a programon belüli hibák azonosításának folyamata. A programfordítás során a talált hibák leállítják a program teljes végrehajtását. Ebben az állapotban a programozó megvizsgálja a lehetséges részeket, ahol a hiba előfordult. A hibakeresés biztosítja a hibák kiküszöbölését, és fontos szerepet játszik abban, hogy a program elvárt kimenete teljesüljön.
36) Mit csinál az && operátor a programkódban?
Az &&-t AND operátornak is nevezik. Ha ezt az operátort használja, a következő művelet végrehajtása előtt minden megadott feltételnek IGAZnak kell lennie. Ha 10 feltétele van, és 1 kivételével mindegyik nem IGAZ értékű, akkor a teljes feltétel állítás már HAMIS értékűként lesz kiértékelve.
37) A C programozásban milyen paranccsal vagy kóddal lehet meghatározni, hogy egy szám páratlan vagy páratlan?
Nincs egyetlen parancs ill funkció C-ben amely ellenőrizheti, hogy egy szám páratlan vagy páratlan-e. Ez azonban megvalósítható úgy, hogy ezt a számot elosztjuk 2-vel, majd ellenőrizzük a maradékot. Ha a maradék 0, akkor ez a szám páros, egyébként pedig páratlan. Kódba írhatod így:
if (num % 2 == 0) printf("EVEN"); else printf("ODD");
38) Mit jelent a %10.2 formátum, ha egy printf utasításban szerepel?
Ezt a formátumot két dologra használják: a kimeneti számhoz kiosztott szóközök számának és a tizedesjegyek számának beállítására. A tizedesvessző előtti szám a kiosztott szóközt jelenti, ebben az esetben 10 szóközt adna a kimeneti számnak. Ha a kimeneti szám által elfoglalt hely száma kevesebb, mint 10, akkor a tényleges kimeneti szám elé szóköz karakterek kerülnek beszúrásra. A tizedesvessző utáni szám határozza meg a tizedesjegyek számát, jelen esetben ez 2 tizedesjegy.
39) Mik azok a logikai hibák, és miben különbözik a szintaktikai hibáktól?
A logikai hibákat tartalmazó program általában átmegy a fordítási folyamaton, de előfordulhat, hogy az eredmény nem a várt eredmény. Ez akkor fordul elő, ha rossz képletet illesztettek be a kódba, vagy rossz parancssorozatot hajtottak végre. A szintaktikai hibák viszont a helytelen parancsokkal foglalkoznak, amelyeket hibásan írt vagy nem ismer fel a fordító.
40) Melyek a különböző típusú vezérlési struktúrák a programozásban?
A programozásban 3 fő vezérlőstruktúra létezik: Sorozat, Kiválasztás és Ismétlés. A szekvenciális vezérlés felülről lefelé haladva halad a program végrehajtása során, így először az 1. lépést hajtják végre, majd a 2. lépést, egészen az utolsó lépés végrehajtásáig. A kiválasztás a feltételes állításokkal foglalkozik, amelyek azt jelentik, hogy a kódok a feltételek IGAZ vagy HAMIS értékelésétől függően futnak le. Ez azt is jelenti, hogy nem lehet minden kódot végrehajtani, és vannak alternatív folyamok. Az ismétléseket hurokstruktúráknak is nevezik, és egy vagy két számláló által beállított programutasítást megismételnek.
41) Mi az a || operátor és hogyan működik egy programban?
A || a C programozásban OR operátorként is ismert. A || használatakor a logikai feltételek kiértékeléséhez minden feltétel, amely IGAZ értékre ad ki, a teljes feltétel utasítást IGAZ-ként jeleníti meg.
42) Használható-e az „if” függvény karakterláncok összehasonlítására?
Nem. Az „if” parancs csak számértékek és egykarakteres értékek összehasonlítására használható. A karakterlánc-értékek összehasonlítására van egy másik függvény, az strcmp, amely kifejezetten a karakterláncokkal foglalkozik.
43) Mik azok az előfeldolgozó direktívák?
Az előfeldolgozó direktívák minden C program elejére kerülnek. Itt vannak megadva a könyvtári fájlok, amelyek attól függnek, hogy milyen funkciókat kell használni a programban. Az előfeldolgozó direktívák másik felhasználási módja az állandók deklarálása. Az előfeldolgozó direktívák # szimbólummal kezdődnek.
44) Mi lesz a következő feltételes állítás eredménye, ha az s változó értéke 10?
s >=10 && s < 25 && s!=12
Az eredmény IGAZ lesz. Mivel s értéke 10, az s >= 10 IGAZ értékű, mert s nem nagyobb 10-nél, de még mindig egyenlő 10-zel. s<25 is IGAZ, mivel 10 kisebb, mint 25. Ugyanúgy, s!=12 , ami azt jelenti, hogy s nem egyenlő 12-vel, kiértékelése IGAZ. Az && az ÉS operátor, és azt a szabályt követi, hogy ha minden egyes feltétel IGAZ, akkor a teljes utasítás IGAZ.
45) Mutassa be a C-beli operátorok elsőbbségi sorrendjét.
A prioritási sorrend határozza meg, hogy melyik műveletet kell először végrehajtani egy műveleti utasításban vagy feltételes utasításban. A legfelső elsőbbségi szinten a !, +, – és & unáris operátorok találhatók. Ezt követik a reguláris matematikai operátorok (először *, / és modulus %, majd + és -). A sorban következnek a <, <=, >= és > relációs operátorok. Ezt követi a két egyenlőség operátor == és !=. Az && és || logikai operátorok következő értékelése történik. Az utolsó szinten az = hozzárendelési operátor található.
46) Mi a baj ezzel a kijelentéssel? myName = "Robin";
Nem használhatja az = jelet karakterlánc-változók értékeinek hozzárendelésére. Ehelyett használja az strcpy függvényt. A helyes utasítás a következő lenne: strcpy(myName, "Robin");
47) Hogyan határozza meg a változóban tárolt karakterláncérték hosszát?
Egy karakterlánc hosszának meghatározásához használja az strlen() függvényt. Például, ha van egy FullName nevű változónk, a tárolt karakterláncérték hosszát a következő utasítással kaphatja meg: I = strlen(TeljesNév); az I változónak most a karakterlánc értékének karakterhossza lesz.
48) Lehetséges-e inicializálni egy változót a deklaráláskor?
Igen, a változó deklarációja után nem kell külön hozzárendelési utasítást írni, hacsak nem tervezi a későbbiekben módosítani. Például: char planet[15] = „Föld”; két dolgot csinál: deklarál egy planet nevű karakterlánc-változót, majd inicializálja az „Earth” értékkel.
49) Miért tekintik a C nyelvet középszintű nyelvnek?
Ennek az az oka, hogy a C nyelv gazdag olyan funkciókban, amelyek magas szintű nyelvként viselkednek, ugyanakkor alacsony szintű módszerekkel kommunikálhat a hardverrel. A programozás jól strukturált megközelítése, a függvényekben használt angolszerű szavakkal párosulva magas szintű nyelvként működik. Másrészt a C közvetlenül hozzáférhet az assembly nyelvi rutinokhoz hasonló memóriastruktúrákhoz.
50) Melyek a különböző fájlkiterjesztések a C nyelven történő programozás során?
A C nyelvű forráskódok .C fájlkiterjesztéssel kerülnek mentésre. A fejlécfájlok vagy a könyvtárfájlok .H kiterjesztésűek. Minden alkalommal, amikor egy program forráskódja sikeresen lefordításra kerül, létrehoz egy .OBJ objektumfájlt és egy végrehajtható .EXE fájlt.
51) Mik azok a fenntartott szavak?
A fenntartott szavak olyan szavak, amelyek a szabványos C nyelvi könyvtár részét képezik. Ez azt jelenti, hogy a fenntartott szavak különleges jelentéssel bírnak, ezért nem használhatók más célokra, mint amire eredetileg szánták. Példák a fenntartott szavakra: int, void és return.
52) Mik azok a linkelt listák?
A csatolt lista olyan csomópontokból áll, amelyek egy másikhoz kapcsolódnak. A C programozásban a hivatkozott listák mutatókkal készülnek. A csatolt listák használata a memória tárolási célú felhasználásának egyik hatékony módja.
53) Mi az a FIFO?
A C programozásban létezik egy adatstruktúra, amelyet queue-nak neveznek. Ebben a struktúrában az adatok tárolása és elérése FIFO formátumban vagy First-In-First-Out használatával történik. A várólista egy olyan sort jelent, ahol az első tárolt adat lesz az első, amely szintén elérhető.
54) Mik azok a bináris fák?
A bináris fák valójában a linkelt listák fogalmának kiterjesztései. Egy bináris fának két mutatója van, egy balra és egy jobbra. Mindegyik oldal továbbágazhat további csomópontokat képezve, amelyek mindegyikének két mutatója is van. Tudj meg többet Bináris fa az adatstruktúrában ha érdekel.
55) Nem minden fenntartott szó van kisbetűvel írva. Igaz vagy hamis?
HAMIS. Minden fenntartott szót kisbetűvel kell írni; ellenkező esetben a C fordító ezt azonosítatlanként és érvénytelenként értelmezné.
56) Mi a különbség az „++a” és az „a++” kifejezések között?
Az első kifejezésben a növekmény először az a változón történik, és az eredményül kapott érték lesz a használandó. Ezt előtag-növekménynek is nevezik. A második kifejezésben az a változó aktuális értéke megegyezik a műveletben használandó értékkel, mielőtt az a változó értéke növekedne. Ezt postfix növekménynek is nevezik.
57) Mi történne X-szel ebben a kifejezésben: X += 15; (feltételezve, hogy X értéke 5)
Az X +=15 egy rövid módszer az X = X + 15 írására, tehát ha X kezdeti értéke 5, akkor 5 + 15 = 20.
58) A C nyelvben a NÉV, a név és a Név változók azonosak. Igaz vagy hamis?
HAMIS. A C nyelv megkülönbözteti a kis- és nagybetűket. Ezért a NÉV, a név és a Név három egyedi változó.
59) Mi az a végtelen hurok?
A végtelen hurok két dolgot jelenthet. Az egyik az, hogy úgy tervezték, hogy a cikluson belüli feltétel teljesüléséig folyamatosan hurkoljon, ami után a break függvény hatására a program kilép a ciklusból. A végtelen hurok másik ötlete az, amikor egy helytelen ciklusfeltételt írtak le, ami miatt a ciklus örökre hibásan fut. A végtelen hurkokat gyakran végtelen huroknak nevezik.
60) Mi az a programfolyamatábra, és hogyan segíti a programírást?
A folyamatábra vizuálisan mutatja be az adott probléma megoldásának lépésenkénti folyamatát. A folyamatábrák szimbólumokból készülnek, mindegyik szimbólum különböző formájú. Mindegyik alakzat egy adott entitást képviselhet a teljes programstruktúrán belül, például egy folyamatot, egy feltételt vagy akár egy bemeneti/kimeneti fázist.
61) Mi a baj ezzel a programutasítással? üres = 10;
A void szó fenntartott szó a C nyelvben. A fenntartott szavak nem használhatók felhasználó által meghatározott változóként.
62) Érvényes ez a programutasítás? INT = 10.50;
Feltételezve, hogy az INT egy float típusú változó, ez az állítás érvényes. Azt gondolhatjuk, hogy az INT egy fenntartott szó, és nem szabad más célokra használni. Ne feledje azonban, hogy a fenntartott szavak kisbetűvel vannak kifejezve, így a C fordító nem fogja ezt fenntartott szóként értelmezni.
63) Mik a tényleges érvek?
Amikor olyan függvényeket hoz létre és használ, amelyeknek bizonyos értékeken műveletet kell végrehajtaniuk, ezeket az értékeket át kell adnia az adott függvénynek. A hívott függvénynek átadott értékeket tényleges argumentumoknak nevezzük.
64) Mi az újsoros escape szekvencia?
Az újsoros escape szekvenciát a \n karakter jelöli. Ez egy új sor beszúrására szolgál, amikor adatokat jelenít meg a kimeneti képernyőn. További \n karakterek beszúrásával több szóközt is hozzáadhat. Például a \n\n két szóközt szúrna be. Egy újsoros escape szekvencia elhelyezhető a tényleges kimeneti kifejezés előtt vagy után.
65) Mi az a kimeneti átirányítás?
Ez az adatok átvitele a képernyőn kívüli alternatív kimeneti forrásra. A kimenet átirányítása lehetővé teszi, hogy a program kimenetét fájlba mentse. Például, ha van egy COMPUTE nevű programja, akkor ezt a parancssorba beírva a SZÁMÍTÁS >ADATOK bevitelt fogadhat el a felhasználótól, végrehajthat bizonyos számításokat, majd a kimenetet átirányítja egy DATA nevű fájlba, ahelyett, hogy a képernyőn jelenné meg. .
66) Mik azok a futásidejű hibák?
Ezek olyan hibák, amelyek a program végrehajtása közben fordulnak elő. Az egyik gyakori eset, amikor futásidejű hibák fordulhatnak elő, az az, amikor egy számot nullával próbál elosztani. Futás közbeni hibák esetén a program végrehajtása szünetel, megmutatva, hogy melyik programsor okozta a hibát.
67) Mi a különbség az abs() és a fabs() függvények között?
Ez a 2 függvény alapvetően ugyanazt a műveletet hajtja végre, vagyis az adott érték abszolút értékét kapja meg. Az Abs() az egész értékekhez, míg a fabs() a lebegő típusú számokhoz. Az abs() prototípusa is alatta van , míg a fabs() alatt van .
68) Mik azok a formális paraméterek?
Ha függvényeket használunk egy C programban, a formális paraméterek a hívó függvény által átadott értékeket tartalmazzák. Az értékeket ezekben a formális paraméterekben helyettesítjük, és a hívott függvény fő törzsében jelzett műveletekben felhasználjuk.
69) Mik azok az irányítási struktúrák?
A vezérlőstruktúrák átveszik az irányítást, hogy mely utasításokat kell végrehajtani a programban. Ez azt jelenti, hogy a programfolyamat nem feltétlenül mozog az egyik utasításról a másikra, hanem bizonyos alternatív részeket kell átadni vagy megkerülni onnan, a feltételes utasítások eredményétől függően.
70) Írjon egy egyszerű kódrészletet, amely ellenőrzi, hogy egy szám pozitív vagy negatív
If (num>=0) printf("number is positive"); else printf ("number is negative");
71) Mikor előnyösebb a „switch” utasítás az „if” utasítással szemben?
A switch utasítás legjobban akkor használható, ha egyetlen változón vagy kifejezésen alapuló kijelöléseket kezelünk. A switch utasítások azonban csak egész és karakteres adattípusokat képesek kiértékelni.
72) Mik azok a globális változók, és hogyan deklarálják őket?
A globális változók olyan változók, amelyek a programban bárhol elérhetők és manipulálhatók. Egy változó globálissá tételéhez helyezze a változódeklarációt a program felső részébe, közvetlenül az előfeldolgozó direktívák szakasza után.
73) Mik azok a felsorolt típusok?
A felsorolt típusok lehetővé teszik a programozó számára, hogy értelmesebb szavakat használjon egy változó értékeként. A felsorolt típusváltozó minden eleme valójában egy numerikus kódhoz van társítva. Például létrehozhatunk egy DAYS nevű felsorolt típusú változót, amelynek értékei a következők Monday, kedd… vasárnap.
74) Mit csinál a toupper() függvény?
Bármely betű nagybetűs módba való konvertálására szolgál. A Toupper() függvény prototípusa a következőben van deklarálva . Vegye figyelembe, hogy ez a függvény csak egy karaktert konvertál, nem pedig egy teljes karakterláncot.
75) Lehetséges, hogy egy függvény paramétere legyen egy másik függvényben?
Igen, ez megengedett a C programozásban. Csak a teljes függvényprototípust bele kell foglalnia a másik függvény paramétermezőjébe, ahol használni kívánja.
76) Mik azok a többdimenziós tömbök?
A többdimenziós tömbök képesek két- vagy többdimenziós struktúrában adatokat tárolni. Például egy 2 dimenziós tömb segítségével tárolhatja a figurák aktuális pozícióját egy sakkjátszmában, vagy a játékosok helyzetét egy tic-tac-toe programban.
77) Melyik C-beli függvény használható egy karakterlánc hozzáfűzésére egy másik karakterlánchoz?
A strcat függvény. Két paraméterre van szükség, a forrás karakterláncra és a karakterlánc értékére, amelyet a forráskarakterlánchoz kell hozzáfűzni.
78) Mi a különbség a getch() és a getche() függvények között?
Mindkét függvény karakterbeviteli értéket fogad el a felhasználótól. A getch() használatakor a megnyomott billentyű nem jelenik meg a képernyőn, és automatikusan rögzítésre kerül, és hozzárendelődik egy változóhoz. A getche() használatakor a felhasználó által megnyomott billentyű megjelenik a képernyőn, ugyanakkor hozzá van rendelve egy változóhoz.
79) Ez a két programutasítás ugyanazt a kimenetet hajtja végre? 1) scanf("%c", &letter); 2) letter=getchar()
Igen, mindketten pontosan ugyanazt csinálják, vagyis elfogadják a felhasználó által lenyomott következő billentyűt, és hozzárendelik a változó nevű betűhöz.
80) Melyek a C-beli szerkezettípusok?
A struktúratípusokat elsősorban rekordok tárolására használják. A rekord kapcsolódó mezőkből áll. Ez megkönnyíti a kapcsolódó adatok csoportjának rendszerezését.
81) Mit jelentenek az „r” és „w” karakterek olyan programok írásakor, amelyek fájlokat használnak?
Az „r” azt jelenti, hogy „olvasás”, és megnyit egy fájlt bemenetként, ahol az adatokat le kell kérni. A „w” jelentése „írás”, és megnyit egy fájlt a kimenethez. A fájlban korábban tárolt adatok törlődnek.
82) Mi a különbség a szöveges fájlok és a bináris fájlok között?
A szöveges fájlok az emberek számára könnyen érthető adatokat tartalmaznak. Betűket, számokat és egyéb karaktereket tartalmaz. Másrészt a bináris fájlok 1-eseket és 0-kat tartalmaznak, amelyeket csak a számítógépek tudnak értelmezni.
83) lehet saját fejléc fájlokat létrehozni?
Igen, lehetőség van testreszabott fejlécfájl létrehozására. Csak foglalja bele a függvény prototípusait, amelyeket használni szeretne a programban, és használja az #include direktívát, majd a fejlécfájl nevét.
84) Mi a dinamikus adatstruktúra?
A dinamikus adatstruktúra lehetővé teszi az adatok hatékonyabb tárolását a memóriában. A Használat használata dinamikus memóriafoglalás, a program szükség szerint hozzáfér a memóriaterületekhez. Ez ellentétben áll a statikus adatszerkezettel, ahol a programozónak meg kell adnia a programban felhasználandó memóriaterület fix számát.
85) Melyek a különböző adattípusok a C-ben?
Az alap adattípusok C-ben int, char és float. Az Int olyan változók deklarálására szolgál, amelyek egész számokat fognak tárolni. A float valós számok tárolására szolgál. A Char egyedi karakterértékeket tárolhat.
86) Mi a C program általános formája?
Az AC program az előfeldolgozó direktívákkal kezdődik, amelyekben a programozó meghatározza, hogy melyik fejlécfájlt és milyen konstansokat (ha van ilyen) használjon. Ezt követi a fő funkciófejléc. A fő függvényen belül a változódeklaráció és a programutasítás található.
87) Mi az előnye a véletlen hozzáférésű fájlnak?
Ha a fájlban tárolt adatok mennyisége meglehetősen nagy, a véletlen hozzáférés használata lehetővé teszi a gyorsabb keresést. Ha egy szekvenciális hozzáférésű fájl lett volna, akkor egyszerre egy rekordon kellene végigmennie, amíg el nem éri a céladatokat. A véletlen hozzáférésű fájl segítségével közvetlenül a célcímre ugorhat, ahol az adatok találhatók.
88) Mi történik egy switch utasításban, ha kihagyunk egy break utasítást?
Ha a break utasítás nem került egy adott esetrész végére? Továbblép a következő esetrészre, esetleg helytelen kimenetet okozva.
89) Ismertesse, hogyan adhatók át tömbök egy felhasználó által meghatározott függvénynek
Egy dolog, amit meg kell jegyezni, hogy nem adhatja át a teljes tömböt egy függvénynek. Ehelyett átad neki egy mutatót, amely a tömb első elemére mutat a memóriában. Ehhez meg kell adni a tömb nevét zárójelek nélkül.
90) Mik azok a mutatók?
Mutatók mutatnak a memória meghatározott területeire. A mutatók egy változó címét tartalmazzák, amely viszont tartalmazhat egy értéket vagy akár egy másik memória címét is.
91) Átadhat-e egy teljes struktúrát a függvényeknek?
Igen, lehetőség van egy teljes struktúra átadására egy függvénynek metódus szerinti hívás stílusban. Egyes programozók azonban inkább globálisan deklarálják a struktúrát, majd átadják az adott struktúra típusú változót egy függvénynek. Ez a módszer segít megőrizni a konzisztenciát és az egységességet az argumentumtípus tekintetében.
92) Mi a gets() függvény?
A gets() function
lehetővé teszi a teljes soros adatbevitelt a felhasználótól. Amikor a felhasználó megnyomja az Enter billentyűt a bevitel befejezéséhez, a karakterek teljes sora egy karakterlánc-változóban tárolódik. Ne feledje, hogy az enter billentyű nem szerepel a változóban, hanem az utolsó karakter után egy nulla \0 lezáró van elhelyezve.
93) A % szimbólumnak speciális használata van a printf utasításban. Hogyan helyezné el ezt a karaktert a kimenet részeként a képernyőn?
Ezt a %% használatával teheti meg a printf utasításban. Például beírhatja a printf(“10%%”) parancsot, hogy a kimenet 10%-ban jelenjen meg a képernyőn.
94) Hogyan kereshet adatokat egy adatfájlban véletlen hozzáférésű módszerrel?
Használja a fseek()
funkció a véletlen hozzáférésű bevitel/kimenet végrehajtására egy fájlon. Miután a fájlt az fopen() függvény megnyitotta, az fseek működéséhez három paraméterre van szükség: egy fájlmutatóra a fájlra, a keresendő bájtok számára és a fájl kiindulási pontjára.
95) Bekerülnek-e a megjegyzések a fordítási szakaszba és az EXE fájlba is?
Nem, a fordító által talált megjegyzéseket figyelmen kívül hagyjuk. A megjegyzések többnyire csak a programozó iránymutatásul szolgálnak, és nincs más jelentős hasznuk a program működésében.
96) Van-e C-ben beépített függvény, amivel adatokat lehet rendezni?
Igen, használja a qsort()
funkció. Lehetőség van a rendezéshez felhasználó által definiált függvények létrehozására is, például a ballonos rendezési és a buborékos rendezési algoritmus alapján.
97) Mik a kupac előnyei és hátrányai?
Az adatok tárolása a kupacban lassabb, mint a verem használatakor. A kupac használatának fő előnye azonban a rugalmassága. Ennek az az oka, hogy ebben a struktúrában a memória tetszőleges sorrendben lefoglalható és eltávolítható. A kupac lassúsága kompenzálható, ha egy algoritmust jól megterveztek és implementáltak.
98) Hogyan alakítod át a karakterláncokat számokká C-ben?
Írhat saját függvényeket a karakterláncok számmá konvertálásához, vagy használhatja a C beépített függvényeit. Az atof-t lebegőpontos értékké, az atoi-t egész számmá, az atol-t pedig hosszú egész értékké konvertálhatja.
99) Hozzon létre egy egyszerű kódrészletet, amely felcseréli a num1 és a num2 két változó értékét.
int temp; temp = num1; num1 = num2; num2 = temp;
100) Mire jó a pontosvessző (;) minden programutasítás végén?
Ez az elemzési folyamathoz és a kód fordításához kapcsolódik. A pontosvessző elválasztóként működik, így a fordító tudja, hol végződnek az egyes utasítások, és feloszthatja az utasítást kisebb elemekre szintaktikai ellenőrzés céljából.
Ezek az interjúkérdések a viva-ban is segítenek.