Top 100 vragen en antwoorden over C-programmeringsinterviews (PDF)
Hier zijn C Programming-sollicitatievragen en -antwoorden voor zowel nieuwere als ervaren kandidaten om hun droombaan te krijgen.
Basisvragen en antwoorden over C-programmering voor eerstejaarsstudenten
1) Hoe construeer je een increment- of decrement-instructie in C?
Er zijn eigenlijk twee manieren om dit te doen. Eén is door de increment operator ++ en de decrement operator – te gebruiken. Bijvoorbeeld, de statement “x++” betekent dat de waarde van x met 1 moet worden verhoogd. Op dezelfde manier betekent de statement “x –” dat de waarde van x met 1 moet worden verlaagd. Een andere manier om increment statements te schrijven is door het conventionele + plusteken of – minteken te gebruiken. In het geval van “x++” is een andere manier om het te schrijven “x = x +1”.
👉 Gratis pdf-download: vragen en antwoorden over C-programmering >>
2) Wat is het verschil tussen Call by Value en Call by Reference?
Wanneer u Call by Value gebruikt, stuurt u de waarde van een variabele als parameter naar een functie, terwijl Call by Reference het adres van de variabele verzendt. Ook wordt de waarde in de parameter onder Call by Value niet beïnvloed door welke bewerking dan ook die plaatsvindt, terwijl in het geval van Call by Reference waarden kunnen worden beïnvloed door het proces binnen de functie.
3) Sommige programmeurs debuggen hun programma's door commentaarsymbolen op sommige codes te plaatsen in plaats van deze te verwijderen. Hoe helpt dit bij het debuggen?
Het plaatsen van commentaarsymbolen /* */ rond een code, ook wel “commentaar geven” genoemd, is een manier om bepaalde codes te isoleren waarvan u denkt dat ze fouten in het programma veroorzaken, zonder de code te verwijderen. Het idee is dat als de code inderdaad correct is, u eenvoudigweg de commentaarsymbolen verwijdert en verder gaat. Het bespaart u ook tijd en moeite doordat u de codes opnieuw moet typen als u deze in de eerste plaats hebt verwijderd.
4) Wat is de equivalente code van de volgende instructie in WHILE LOOP-formaat?
for (a=1; a<=100; a++) printf ("%d\n", a * a);
Antwoord:
a=1; while (a<=100) { printf ("%d\n", a * a); a++; }
5) Wat is een stapel?
Een stapel is een vorm van een datastructuur. Gegevens worden in stapels opgeslagen met behulp van de FILO-aanpak (First In Last Out). In elk specifiek geval is alleen de bovenkant van de stapel toegankelijk, wat betekent dat om gegevens op te halen die in de stapel zijn opgeslagen, eerst de gegevens op het bovenste gedeelte moeten worden geëxtraheerd. Het opslaan van gegevens in een stapel wordt ook wel een PUSH genoemd, terwijl het ophalen van gegevens een POP wordt genoemd.
6) Wat is een sequentieel toegangsbestand?
Bij het schrijven van programma's die gegevens in een bestand opslaan en ophalen, is het mogelijk om dat bestand in verschillende vormen aan te wijzen. Een sequentieel toegangsbestand is zodanig dat gegevens in opeenvolgende volgorde worden opgeslagen: de ene gegevens worden na de andere in het bestand geplaatst. Om toegang te krijgen tot bepaalde gegevens binnen het sequentiële toegangsbestand, moeten de gegevens gegevens voor gegevens worden gelezen, totdat de juiste gegevens zijn bereikt.
7) Wat is initialisatie van variabelen en waarom is het belangrijk?
Dit verwijst naar het proces waarbij een variabele een beginwaarde krijgt toegewezen voordat deze in het programma wordt gebruikt. Zonder initialisatie zou een variabele een onbekende waarde hebben, wat kan leiden tot onvoorspelbare uitvoer bij gebruik in berekeningen of andere bewerkingen.
8 Wat is spaghettiprogrammering?
Spaghetti-programmering verwijst naar codes die de neiging hebben om in de war te raken en elkaar te overlappen in het programma. Deze ongestructureerde benadering van coderen wordt meestal toegeschreven aan een gebrek aan ervaring van de programmeur. Spaghetti-programmering maakt een programma complex en het analyseren van de codes moeilijk, en moet daarom zoveel mogelijk worden vermeden.
9) Maak onderscheid tussen broncodes en objectcodes
Broncodes zijn codes die door de programmeur zijn geschreven. Het bestaat uit de opdrachten en andere Engelsachtige trefwoorden die de computer moeten instrueren wat hij moet doen. Computers zouden de broncodes echter niet kunnen begrijpen. Daarom worden broncodes gecompileerd met behulp van een compiler. De resulterende uitvoer zijn objectcodes, die een formaat hebben dat door de computerprocessor kan worden begrepen. In C programmeren, broncodes worden opgeslagen met de bestandsextensie .C, terwijl objectcodes worden opgeslagen met de bestandsextensie .OBJ
10) Hoe voegt u bij C-programmeren aanhalingstekens (' en “) in het uitvoerscherm in?
Dit is een veelvoorkomend probleem voor beginners, omdat aanhalingstekens normaal gesproken deel uitmaken van een printf-statement. Om het aanhalingsteken als onderdeel van de uitvoer in te voegen, gebruikt u de opmaakspecificaties \' (voor enkele aanhalingstekens) en \” (voor dubbele aanhalingstekens).
11) Wat is het nut van een '\0'-teken?
Dit wordt een afsluitend null-teken genoemd en wordt voornamelijk gebruikt om het einde van een tekenreekswaarde aan te geven.
12) Wat is het verschil tussen het =-symbool en het ==-symbool?
Het = symbool wordt vaak gebruikt in wiskundige bewerkingen. Het wordt gebruikt om een waarde toe te wijzen aan een gegeven variabele. Aan de andere kant is het == symbool, ook bekend als "gelijk aan" of "equivalent aan", een relationele operator die wordt gebruikt om twee waarden te vergelijken.
13) Wat is de modulusoperator?
De modulusoperator geeft de rest van een deling weer. Het maakt gebruik van het percentagesymbool (%). Bijvoorbeeld: 10 % 3 = 1, wat betekent dat wanneer u 10 deelt door 3, de rest 1 is.
14) Wat is een geneste lus?
Een geneste lus is een lus die binnen een andere lus loopt. Om het anders te zeggen: je hebt een binnenlus die zich in een buitenlus bevindt. In dit scenario wordt de binnenste lus een aantal keren uitgevoerd, zoals gespecificeerd door de buitenste lus. Voor elke draai aan de buitenste lus wordt eerst de binnenste lus uitgevoerd.
15) Welke van de volgende operatoren is onjuist en waarom? ( >=, <=, <>, ==)
<> is incorrect. Hoewel deze operator correct wordt geïnterpreteerd als "niet gelijk aan" bij het schrijven van voorwaardelijke statements, is het niet de juiste operator om te gebruiken in C programmerenIn plaats daarvan moet de operator != worden gebruikt om de voorwaarde “niet gelijk aan” aan te geven.
16) Vergelijk compilers en tolken.
Compilers en tolken houden zich vaak bezig met de manier waarop programmacodes worden uitgevoerd. Tolken voeren programmacodes regel voor regel uit, terwijl compilers het programma als geheel omzetten in objectcode voordat ze het uitvoeren. Het belangrijkste verschil hier is dat in het geval van tolken een programma tijdens de uitvoering syntaxisfouten kan tegenkomen en vanaf dat moment zal stoppen. Aan de andere kant controleren compilers de syntaxis van het hele programma en gaan ze pas over tot uitvoering als er geen syntaxisfouten worden gevonden.
17) Hoe declareer je een variabele die stringwaarden bevat?
Het char-trefwoord kan slechts 1 tekenwaarde tegelijk bevatten. Door een array met tekens te maken, kunt u tekenreekswaarden erin opslaan. Bijvoorbeeld: "char MyName[50]; " declareert een tekenreeksvariabele met de naam MyName die maximaal 50 tekens kan bevatten.
18) Kunnen de accolades { } gebruikt worden om één regel code in te sluiten?
Hoewel accolades voornamelijk worden gebruikt om meerdere regels code te groeperen, zal het nog steeds foutloos werken als u het voor één regel gebruikt. Sommige programmeurs geven de voorkeur aan deze methode als een manier om codes te organiseren om het er duidelijker uit te laten zien, met name in voorwaardelijke statements.
19) Wat zijn headerbestanden en waarvoor worden ze gebruikt bij het programmeren in C?
Headerbestanden worden ook wel bibliotheekbestanden genoemd. Ze bevatten twee essentiële dingen: de definities en prototypes van functies die in een programma worden gebruikt. Simpel gezegd: opdrachten die u gebruikt bij het programmeren in C zijn feitelijk functies die worden gedefinieerd vanuit elk headerbestand. Elk headerbestand bevat een reeks functies. Bijvoorbeeld: stdio.h is een headerbestand dat de definitie en prototypes bevat van opdrachten zoals printf en scanf.
20) Wat is een syntaxisfout?
Syntaxisfouten worden geassocieerd met fouten in het gebruik van een programmeertaal. Het kan een opdracht zijn die verkeerd is gespeld of een opdracht die in kleine letters moet worden ingevoerd, maar in plaats daarvan met een hoofdletter is ingevoerd. Een verkeerd geplaatst symbool, of een gebrek aan symbool, ergens binnen een coderegel kan ook leiden tot syntaxisfouten.
21) Wat zijn variabelen en in welk opzicht verschilt dit van constanten?
Variabelen en constanten lijken in eerste instantie misschien op elkaar, omdat ze allebei identifiers zijn die bestaan uit één of meer tekens (letters, cijfers en een paar toegestane symbolen). Beide bevatten ook een bepaalde waarde. Waarden die door een variabele worden vastgehouden, kunnen in het hele programma worden gewijzigd en kunnen in de meeste bewerkingen en berekeningen worden gebruikt. Constanten krijgen slechts één keer waarden, die aan het begin van een programma worden geplaatst. Deze waarde wordt niet gewijzigd in het programma. U kunt bijvoorbeeld een constante met de naam PI toewijzen en deze de waarde 3.1415 geven. U kunt deze vervolgens gebruiken als PI in het programma, in plaats van dat u elke keer dat u deze nodig hebt 3.1415 moet schrijven.
22) Hoe krijg je toegang tot de waarden binnen een array?
Arrays bevatten een aantal elementen, afhankelijk van de grootte die u eraan hebt gegeven tijdens het declareren van variabelen. Elk element krijgt een nummer toegewezen van 0 tot aantal elementen-1. Om de waarde van een bepaald element toe te kennen of op te halen, raadpleegt u het elementnummer. Bijvoorbeeld: als je een declaratie hebt met de tekst “intscores[5];”, dan heb je 5 toegankelijke elementen, namelijk: scores[0], scores[1], scores[2], scores[3] en scores[4 ].
23) Kan ik het gegevenstype “int” gebruiken om de waarde 32768 op te slaan? Waarom?
Nee. Het gegevenstype “int” kan waarden opslaan van -32768 tot 32767. Om 32768 op te slaan, kunt u in plaats daarvan “long int” gebruiken. U kunt ook “unsigned int” gebruiken, ervan uitgaande dat u niet van plan bent negatieve waarden op te slaan.
24) Kunnen twee of meer operatoren zoals \n en \t gecombineerd worden in één regel programmacode?
Ja, het is volkomen terecht om operatoren te combineren, vooral als dat nodig is.
Bijvoorbeeld: u kunt een code hebben zoals printf (“Hello\n\n\’World\'”)
om de tekst "Hallo" op de eerste regel uit te voeren en "Wereld" tussen enkele aanhalingstekens om op de volgende twee regels te verschijnen.
25) Waarom worden niet alle headerbestanden in elk C-programma gedeclareerd?
De keuze om een headerbestand bovenaan elk C-programma te declareren, hangt af van de opdrachten/functies die u in dat programma gaat gebruiken. Omdat elk headerbestand verschillende functiedefinities en prototypes bevat, zou u alleen die headerbestanden gebruiken die de functies bevatten die u nodig heeft. Het declareren van alle headerbestanden in elk programma zou alleen maar de totale bestandsgrootte en belasting van het programma vergroten, en wordt niet als een goede programmeerstijl beschouwd.
26) Wanneer wordt het trefwoord ‘void’ in een functie gebruikt?
Bij het declareren van functies beslist u of die functie een waarde retourneert of niet. Als die functie geen waarde retourneert, bijvoorbeeld wanneer het doel van een functie is om bepaalde outputs op het scherm weer te geven, dan moet “void” helemaal links in de functiekop worden geplaatst. Wanneer een retourwaarde wordt verwacht na de uitvoering van de functie, wordt het gegevenstype van de retourwaarde geplaatst in plaats van “void”.
27) Wat zijn samengestelde uitspraken?
Samengestelde statements bestaan uit twee of meer programma statements die samen worden uitgevoerd. Dit gebeurt meestal tijdens het verwerken van voorwaarden waarbij een reeks statements wordt uitgevoerd wanneer een TRUE of FALSE wordt geëvalueerd. Samengestelde statements kunnen ook binnen een lus worden uitgevoerd. Krullende haakjes { } worden voor en na samengestelde statements geplaatst.
28) Wat is de betekenis van een algoritme voor C-programmeren?
Voordat een programma kan worden geschreven, moet er eerst een algoritme worden gemaakt. Een algoritme biedt een stapsgewijze procedure voor het verkrijgen van een oplossing. Het fungeert ook als een blauwdruk voor hoe een programma zal beginnen en eindigen, inclusief welk proces en welke berekeningen daarbij betrokken zijn.
29) Wat is het voordeel van een array ten opzichte van individuele variabelen?
Wanneer u meerdere gerelateerde gegevens opslaat, is het een goed idee om arrays te gebruiken. Dit komt omdat arrays een naam krijgen met slechts 1 woord gevolgd door een elementnummer. Bijvoorbeeld: om de 10 testresultaten van 1 leerling op te slaan, kan men 10 verschillende variabelenamen gebruiken (graad1, graad2, graad3…graad10). Bij arrays wordt slechts 1 naam gebruikt, de rest is toegankelijk via de indexnaam (grade[0], grade[1], grade[2]…grade[9]).
30) Schrijf een lusinstructie die de volgende uitvoer laat zien:
1
12
123
1234
12345
Antwoord:
for (a=1; a<=5; i++) { for (b=1; b<=a; b++) printf("%d",b); printf("\n"); }
Interviewvragen en antwoorden voor C-programmering voor ervaren
31) Wat klopt er niet aan deze uitspraak? scanf(“%d”,welk nummer);
Er moet een ampersand & symbool worden geplaatst vóór de variabelenaam whatnumber. Het plaatsen van & betekent dat welke gehele waarde dan ook door de gebruiker wordt ingevoerd, wordt opgeslagen op het "adres" van de variabelenaam. Dit is een veelgemaakte fout voor programmeurs, die vaak tot logische fouten leidt.
32) Hoe genereer je willekeurige getallen in C?
Willekeurige getallen worden in C gegenereerd met behulp van de rand() command
. Bijvoorbeeld: anyNum = rand()
genereert elk geheel getal dat begint bij 0, ervan uitgaande dat anyNum een variabele van het type geheel getal is.
33) Wat zou het probleem kunnen zijn als een geldige functienaam zoals tolower() door de C-compiler als ongedefinieerd wordt gerapporteerd?
De meest waarschijnlijke reden achter deze fout is dat het headerbestand voor die functie niet bovenaan het programma werd aangegeven. Headerbestanden bevatten de definitie en het prototype voor functies en opdrachten die in een C-programma worden gebruikt. In het geval van “tolower()” wordt de code “#include ” moet aanwezig zijn aan het begin van het programma.
34) Wat zijn commentaren en hoe voeg je deze in een C-programma in?
Heb je vragen? Stel ze hier. zijn een geweldige manier om opmerkingen of beschrijvingen in een programma te plaatsen. Het kan dienen als herinnering aan waar het programma over gaat, of als beschrijving waarom een bepaalde code of functie daar überhaupt is geplaatst. Opmerkingen beginnen met /* en eindigen met */ tekens. Opmerkingen kunnen uit één regel bestaan, maar kunnen zelfs uit meerdere regels bestaan. Het kan overal in het programma worden geplaatst.
35) Wat is foutopsporing?
Debuggen is het proces waarbij fouten in een programma worden geïdentificeerd. Tijdens het compileren van het programma zorgen fouten ervoor dat het programma niet volledig wordt uitgevoerd. In deze toestand zou de programmeur kijken naar de mogelijke gedeelten waar de fout optrad. Foutopsporing zorgt ervoor dat fouten worden verwijderd en speelt een belangrijke rol bij het garanderen dat aan de verwachte programma-uitvoer wordt voldaan.
36) Wat doet de && operator in een programmacode?
De && wordt ook wel AND operator genoemd. Wanneer u deze operator gebruikt, moeten alle opgegeven voorwaarden TRUE zijn voordat de volgende actie kan worden uitgevoerd. Als u 10 voorwaarden hebt en alle behalve 1 niet als TRUE worden geëvalueerd, wordt de gehele voorwaarde-statement al geëvalueerd als FALSE
37) Welk commando of welke code kan bij C-programmeren worden gebruikt om te bepalen of een aantal oneven of even is?
Er is geen enkel commando of functie in C die kan controleren of een getal even of oneven is. Dit kan echter worden bereikt door dat getal te delen door 2 en vervolgens de rest te controleren. Als de rest 0 is, is dat getal even, anders is het oneven. U kunt het in code schrijven als:
if (num % 2 == 0) printf("EVEN"); else printf("ODD");
38) Wat betekent het formaat %10.2 als het is opgenomen in een printf-statement?
Dit formaat wordt voor twee dingen gebruikt: om het aantal toegewezen spaties voor het uitvoernummer in te stellen en om het aantal decimalen in te stellen. Het getal vóór de komma is voor de toegewezen ruimte. In dit geval worden er 10 spaties toegewezen voor het uitvoernummer. Als het aantal spaties dat door het uitvoernummer wordt ingenomen kleiner is dan 10, worden extra spaties ingevoegd vóór het daadwerkelijke uitvoernummer. Het getal achter de komma bepaalt het aantal decimalen. In dit geval zijn het 2 decimalen.
39) Wat zijn logische fouten en hoe verschillen deze van syntaxisfouten?
Programma's die logische fouten bevatten, hebben de neiging het compilatieproces te doorstaan, maar de resulterende uitvoer is mogelijk niet de verwachte uitvoer. Dit gebeurt wanneer een verkeerde formule in de code is ingevoegd of een verkeerde reeks opdrachten is uitgevoerd. Syntaxisfouten daarentegen hebben te maken met onjuiste opdrachten die verkeerd zijn gespeld of niet worden herkend door de compiler.
40) Wat zijn de verschillende soorten besturingsstructuren bij het programmeren?
Er zijn drie hoofdbesturingsstructuren bij het programmeren: Volgorde, Selectie en Herhaling. Sequentiële besturing volgt een stroom van boven naar beneden bij het uitvoeren van een programma, zodat eerst stap 3 wordt uitgevoerd, gevolgd door stap 1, helemaal tot de laatste stap wordt uitgevoerd. Selectie heeft betrekking op voorwaardelijke uitspraken, wat betekent dat codes worden uitgevoerd afhankelijk van de evaluatie van voorwaarden als WAAR of ONWAAR. Dit betekent ook dat niet alle codes kunnen worden uitgevoerd en dat er alternatieve stromen binnenin zijn. Herhalingen worden ook wel lusstructuren genoemd en herhalen een of twee programma-instructies die door een teller zijn ingesteld.
41) Wat is de || operator en hoe functioneert deze in een programma?
De || staat ook bekend als de OR-operator in C-programmering. Wanneer u || gebruikt om logische voorwaarden te evalueren, zal elke voorwaarde die wordt geëvalueerd naar TRUE de gehele voorwaarde-instructie als TRUE weergeven.
42) Kan de “if”-functie worden gebruikt bij het vergelijken van strings?
Nee. De opdracht “if” kan alleen worden gebruikt om numerieke waarden en waarden van één teken te vergelijken. Voor het vergelijken van tekenreekswaarden is er een andere functie genaamd strcmp die zich specifiek met tekenreeksen bezighoudt.
43) Wat zijn preprocessorrichtlijnen?
Preprocessor-richtlijnen worden aan het begin van elk C-programma geplaatst. Dit is waar bibliotheekbestanden worden gespecificeerd, wat afhankelijk is van welke functies in het programma moeten worden gebruikt. Een ander gebruik van preprocessor-richtlijnen is de declaratie van constanten. Preprocessor-richtlijnen beginnen met het #-symbool.
44) Wat is de uitkomst van de volgende voorwaardelijke bewering als de waarde van variabele s 10 is?
s >=10 && s < 25 && s!=12
De uitkomst is TRUE. Omdat de waarde van s 10 is, wordt s >= 10 geëvalueerd naar TRUE omdat s niet groter is dan 10, maar nog steeds gelijk is aan 10. s< 25 is ook TRUE omdat 10 kleiner is dan 25. Evenzo wordt s!=12, wat betekent dat s niet gelijk is aan 12, geëvalueerd naar TRUE. De && is de AND-operator en volgt de regel dat als alle individuele voorwaarden TRUE zijn, de hele verklaring TRUE is.
45) Beschrijf de volgorde van prioriteit met betrekking tot operatoren in C.
De volgorde van voorrang bepaalt welke bewerking als eerste moet plaatsvinden in een operationele verklaring of voorwaardelijke verklaring. Op het hoogste niveau van voorrang staan de unaire operatoren !, +, – en &. Dit wordt gevolgd door de reguliere wiskundige operatoren (eerst *, / en modulus %, gevolgd door + en -). De volgende in de rij zijn de relationele operatoren <, <=, >= en >. Dit wordt vervolgens gevolgd door de twee gelijkheidsoperatoren == en !=. De logische operatoren && en || worden vervolgens geëvalueerd. Op het laatste niveau staat de toewijzingsoperator =.
46) Wat is er mis met deze verklaring? mijnNaam = “Robin”;
U kunt het =-teken niet gebruiken om waarden aan een stringvariabele toe te wijzen. Gebruik in plaats daarvan de strcpy-functie. De juiste verklaring zou zijn: strcpy(mijnnaam, “Robin”);
47) Hoe bepaal je de lengte van een stringwaarde die in een variabele is opgeslagen?
Om de lengte van een stringwaarde te bepalen, gebruik je de functie strlen(). Als u bijvoorbeeld een variabele met de naam FullName heeft, kunt u de lengte van de opgeslagen tekenreekswaarde achterhalen door deze instructie te gebruiken: I = strlen(FullName); de variabele I zal nu de tekenlengte van de tekenreekswaarde hebben.
48) Is het mogelijk om een variabele te initialiseren op het moment dat deze werd gedeclareerd?
Ja, u hoeft geen aparte toewijzingsinstructie te schrijven na de variabeledeclaratie, tenzij u van plan bent deze later te wijzigen. Bijvoorbeeld: char planet[15] = “Earth”; doet twee dingen: het declareert een stringvariabele met de naam planet en initialiseert deze vervolgens met de waarde “Earth”.
49) Waarom wordt C-taal beschouwd als een taal op middenniveau?
Dit komt omdat C-taal rijk is aan functies die ervoor zorgen dat het zich gedraagt als een taal op hoog niveau, terwijl het tegelijkertijd met hardware kan communiceren via methoden op laag niveau. Het gebruik van een goed gestructureerde benadering van programmeren, gekoppeld aan Engels-achtige woorden die in functies worden gebruikt, zorgt ervoor dat het zich gedraagt als een taal op hoog niveau. Aan de andere kant kan C direct toegang krijgen tot geheugenstructuren die vergelijkbaar zijn met routines in assembly language.
50) Wat zijn de verschillende bestandsextensies die betrokken zijn bij het programmeren in C?
Broncodes in C worden opgeslagen met de bestandsextensie .C. Headerbestanden of bibliotheekbestanden hebben de bestandsextensie .H. Telkens wanneer de broncode van een programma met succes is gecompileerd, wordt er een .OBJ-objectbestand en een uitvoerbaar .EXE-bestand gemaakt.
51) Wat zijn gereserveerde woorden?
Gereserveerde woorden zijn woorden die deel uitmaken van de standaard C-taalbibliotheek. Dit betekent dat gereserveerde woorden een speciale betekenis hebben en daarom niet voor andere doeleinden kunnen worden gebruikt dan waarvoor ze oorspronkelijk bedoeld zijn. Voorbeelden van gereserveerde woorden zijn int, void en return.
52) Wat zijn gekoppelde lijsten?
Een gekoppelde lijst bestaat uit knooppunten die met elkaar zijn verbonden. Bij C-programmeren worden gekoppelde lijsten gemaakt met behulp van pointers. Het gebruik van gekoppelde lijsten is een efficiënte manier om geheugen voor opslag te gebruiken.
53) Wat is FIFO?
Bij C-programmeren is er een datastructuur die bekend staat als wachtrij. In deze structuur worden gegevens opgeslagen en toegankelijk gemaakt in het FIFO-formaat, oftewel First-In-First-Out. Een wachtrij vertegenwoordigt een lijn waarin de eerste gegevens die zijn opgeslagen, ook de eerste zijn die toegankelijk zijn.
54) Wat zijn binaire bomen?
Binaire bomen zijn eigenlijk een uitbreiding van het concept van gekoppelde lijsten. Een binaire boom heeft twee wijzers, een linker en een rechter. Elke zijde kan verder vertakken om extra knooppunten te vormen, waarbij elk knooppunt ook twee aanwijzers heeft. Leer meer over Binaire boom in gegevensstructuur als je geïnteresseerd bent.
55) Niet alle gereserveerde woorden zijn in kleine letters geschreven. Waar of niet waar?
ONWAAR. Alle gereserveerde woorden moeten in kleine letters worden geschreven, anders zou de C-compiler dit als ongeïdentificeerd en ongeldig interpreteren.
56) Wat is het verschil tussen de uitdrukking “++a” en “a++”?
In de eerste expressie zou de verhoging eerst plaatsvinden op variabele a, en de resulterende waarde zal degene zijn die gebruikt moet worden. Dit staat ook bekend als een prefixverhoging. In de tweede expressie zou de huidige waarde van variabele a degene zijn die gebruikt moet worden in een bewerking, voordat de waarde van a zelf verhoogd wordt. Dit staat ook bekend als postfixverhoging.
57) Wat zou er met X gebeuren in deze uitdrukking: X += 15; (ervan uitgaande dat de waarde van X 5 is)
X +=15 is een korte methode om X = X + 15 te schrijven, dus als de beginwaarde van X 5 is, dan is 5 + 15 = 20.
58) In de C-taal zijn de variabelen NAME, name en Name allemaal hetzelfde. Waar of niet waar?
ONWAAR. C-taal is een hoofdlettergevoelige taal. Daarom zijn NAME, naam en Naam drie uniek verschillende variabelen.
59) Wat is een eindeloze lus?
Een eindeloze lus kan twee dingen betekenen. Ten eerste is het zo ontworpen dat het continu doorloopt totdat aan de voorwaarde in de lus is voldaan, waarna een break-functie ervoor zorgt dat het programma uit de lus stapt. Een ander idee van een eindeloze lus is wanneer een onjuiste lusvoorwaarde is geschreven, waardoor de lus foutief voor altijd wordt uitgevoerd. Eindeloze lussen worden vaak oneindige lussen genoemd.
60) Wat is een programmastroomschema en hoe helpt het bij het schrijven van een programma?
Een stroomdiagram biedt een visuele weergave van de stapsgewijze procedure om een bepaald probleem op te lossen. Stroomdiagrammen zijn gemaakt van symbolen, waarbij elk symbool de vorm heeft van verschillende vormen. Elke vorm kan een bepaalde entiteit vertegenwoordigen binnen de gehele programmastructuur, zoals een proces, een voorwaarde of zelfs een invoer-/uitvoerfase.
61) Wat is er mis met deze programmaverklaring? leegte = 10;
Het woord leegte is een gereserveerd woord in de C-taal. U kunt gereserveerde woorden niet gebruiken als een door de gebruiker gedefinieerde variabele.
62) Is deze programmaverklaring geldig? INT = 10.50;
Ervan uitgaande dat INT een variabele van het type float is, is deze verklaring geldig. Je zou kunnen denken dat INT een gereserveerd woord is en niet voor andere doeleinden mag worden gebruikt. Houd er echter rekening mee dat gereserveerde woorden in kleine letters worden uitgedrukt, zodat de C-compiler dit niet als een gereserveerd woord zal interpreteren.
63) Wat zijn feitelijke argumenten?
Wanneer u functies maakt en gebruikt die een actie op bepaalde gegeven waarden moeten uitvoeren, moet u deze gegeven waarden aan die functie doorgeven. De waarden die worden doorgegeven aan de aangeroepen functie worden feitelijke argumenten genoemd.
64) Wat is een ontsnappingsreeks voor nieuwe regels?
Een ontsnappingsreeks voor een nieuwe regel wordt weergegeven door het teken \n. Dit wordt gebruikt om een nieuwe regel in te voegen bij het weergeven van gegevens in het uitvoerscherm. Er kunnen meer spaties worden toegevoegd door meer \n-tekens in te voegen. \n\n zou bijvoorbeeld twee spaties invoegen. Een ontsnappingsreeks voor nieuwe regels kan vóór of na de daadwerkelijke uitvoerexpressie worden geplaatst.
65) Wat is uitvoeromleiding?
Het is het proces van het overbrengen van gegevens naar een alternatieve uitvoerbron anders dan het beeldscherm. Uitvoeromleiding stelt een programma in staat om zijn uitvoer op te slaan in een bestand. Als u bijvoorbeeld een programma met de naam COMPUTE hebt, kunt u dit op de opdrachtregel typen als COMPUTE >DATA om invoer van de gebruiker te accepteren, bepaalde berekeningen uit te voeren en de uitvoer vervolgens om te leiden naar een bestand met de naam DATA, in plaats van deze op het scherm weer te geven.
66) Wat zijn runtimefouten?
Dit zijn fouten die optreden terwijl het programma wordt uitgevoerd. Een veelvoorkomend voorbeeld waarbij runtime-fouten kunnen optreden, is wanneer u een getal door nul probeert te delen. Wanneer runtime-fouten optreden, wordt de uitvoering van het programma gepauzeerd en wordt weergegeven welke programmaregel de fout heeft veroorzaakt.
67) Wat is het verschil tussen de functies abs() en fabs()?
Deze 2 functies voeren in principe dezelfde actie uit, namelijk het verkrijgen van de absolute waarde van de gegeven waarde. Abs() wordt gebruikt voor gehele getallen, terwijl fabs() wordt gebruikt voor getallen van het type floating. Ook is het prototype voor abs() onder , terwijl fabs() onder .
68) Wat zijn formele parameters?
Bij het gebruik van functies in een C-programma bevatten formele parameters de waarden die door de aanroepende functie zijn doorgegeven. De waarden worden in deze formele parameters vervangen en gebruikt in welke bewerkingen dan ook zoals aangegeven in de hoofdtekst van de aangeroepen functie.
69) Wat zijn controlestructuren?
Controlestructuren nemen de leiding over welke instructies in een programma moeten worden uitgevoerd. Dit betekent dat de programmastroom niet noodzakelijkerwijs van de ene instructie naar de volgende gaat, maar dat er mogelijk alternatieve gedeelten moeten worden doorgegeven of omzeild, afhankelijk van de uitkomst van de voorwaardelijke instructies.
70) Schrijf een eenvoudig codefragment dat controleert of een getal positief of negatief is
If (num>=0) printf("number is positive"); else printf ("number is negative");
71) Wanneer verdient een “switch”-verklaring de voorkeur boven een “if”-verklaring?
De switch-instructie wordt het best gebruikt bij het omgaan met selecties op basis van een enkele variabele of expressie. Switch-instructies kunnen echter alleen gegevenstypen met gehele getallen en tekens evalueren.
72) Wat zijn globale variabelen en hoe declareer je ze?
Globale variabelen zijn variabelen die overal in het programma toegankelijk en gemanipuleerd kunnen worden. Om een variabele globaal te maken, plaatst u de variabeledeclaratie in het bovenste gedeelte van het programma, net na het gedeelte met preprocessorrichtlijnen.
73) Wat zijn opgesomde typen?
Met opgesomde typen kan de programmeur betekenisvollere woorden gebruiken als waarden voor een variabele. Elk item in de opgesomde typevariabele is feitelijk gekoppeld aan een numerieke code. U kunt bijvoorbeeld een opgesomde typevariabele maken met de naam DAYS waarvan de waarden zijn Monday, dinsdag…zondag.
74) Wat doet de functie toupper()?
Het wordt gebruikt om elke letter naar de hoofdlettermodus te converteren. Toupper()-functieprototype wordt gedeclareerd in . Houd er rekening mee dat deze functie slechts één teken converteert, en niet een hele tekenreeks.
75) Is het mogelijk om een functie als parameter in een andere functie te hebben?
Ja, dat is toegestaan in C-programmeren. U hoeft alleen maar het volledige functieprototype op te nemen in het parameterveld van de andere functie waar het moet worden gebruikt.
76) Wat zijn multidimensionale arrays?
Multidimensionale arrays kunnen gegevens opslaan in een twee- of meerdimensionale structuur. U kunt bijvoorbeeld een tweedimensionale array gebruiken om de huidige positie van stukken in een schaakspel op te slaan, of de positie van spelers in een boter-kaas-en-eierenprogramma.
77) Welke functie in C kan gebruikt worden om een string aan een andere string toe te voegen?
De strcat-functie. Er zijn twee parameters nodig, de bronreeks en de tekenreekswaarde, die aan de bronreeks moeten worden toegevoegd.
78) Wat is het verschil tussen de functies getch() en getche()?
Beide functies accepteren een tekeninvoerwaarde van de gebruiker. Wanneer u getch() gebruikt, verschijnt de ingedrukte toets niet op het scherm, maar wordt deze automatisch vastgelegd en toegewezen aan een variabele. Bij gebruik van getche() verschijnt de toets die door de gebruiker is ingedrukt op het scherm, terwijl deze tegelijkertijd aan een variabele is toegewezen.
79) Voeren deze twee programma-instructies dezelfde uitvoer uit? 1) scanf(“%c”, &letter); 2) letter=getchar()
Ja, ze doen allebei precies hetzelfde, namelijk de volgende door de gebruiker ingedrukte toets accepteren en deze toewijzen aan een variabele met de naam letter.
80) Wat zijn structuurtypen in C?
Structuurtypen worden voornamelijk gebruikt om records op te slaan. Een record bestaat uit gerelateerde velden. Dit maakt het eenvoudiger om een groep gerelateerde gegevens te organiseren.
81) Wat betekenen de tekens “r” en “w” bij het schrijven van programma’s die gebruik maken van bestanden?
“r” betekent “lezen” en opent een bestand als invoer waarin gegevens moeten worden opgehaald. “w” betekent “schrijven” en opent een bestand voor uitvoer. Eerdere gegevens die in dat bestand waren opgeslagen, worden gewist.
82) Wat is het verschil tussen tekstbestanden en binaire bestanden?
Tekstbestanden bevatten gegevens die gemakkelijk door mensen kunnen worden begrepen. Het bevat letters, cijfers en andere tekens. Binaire bestanden bevatten daarentegen 1'en en 0'en die alleen computers kunnen interpreteren.
83) Is het mogelijk om uw eigen headerbestanden te maken?
Ja, het is mogelijk om een aangepast headerbestand te maken. Neem er gewoon de functieprototypes in op die u in uw programma wilt gebruiken, en gebruik de #include-richtlijn gevolgd door de naam van uw headerbestand.
84) Wat is een dynamische datastructuur?
Dynamische datastructuur biedt een manier om gegevens efficiënter in het geheugen op te slaan. Gebruiken dynamische geheugentoewijzing, zal uw programma indien nodig toegang krijgen tot geheugenruimten. Dit is in tegenstelling tot de statische datastructuur, waarbij de programmeur een vast aantal geheugenruimte moet aangeven dat in het programma moet worden gebruikt.
85) Wat zijn de verschillende gegevenstypen in C?
De basis gegevenstypen in C zijn int, char en float. Int wordt gebruikt om variabelen te declareren die gehele getallen opslaan. Float wordt gebruikt om reële getallen op te slaan. Char kan individuele tekenwaarden opslaan.
86) Wat is de algemene vorm van een C-programma?
Het AC-programma begint met de preprocessorrichtlijnen, waarin de programmeur specificeert welk headerbestand en welke constanten (indien aanwezig) moeten worden gebruikt. Dit wordt gevolgd door de kop van de hoofdfunctie. Binnen de hoofdfunctie liggen de variabelendeclaratie en programma-instructie.
87) Wat is het voordeel van een willekeurig toegankelijk bestand?
Als de hoeveelheid gegevens die in een bestand is opgeslagen vrij groot is, kunt u door het gebruik van willekeurige toegang het bestand sneller doorzoeken. Als het een bestand met sequentiële toegang was geweest, zou u record voor record moeten doorlopen totdat u de doelgegevens bereikt. Met een willekeurig toegankelijk bestand kunt u rechtstreeks naar het doeladres springen waar de gegevens zich bevinden.
88) Wat gebeurt er in een switch-instructie als een break-instructie wordt weggelaten?
Als er geen break-instructie aan het einde van een bepaald casusgedeelte is geplaatst? Het gaat verder naar het volgende casusgedeelte, wat mogelijk een onjuiste uitvoer veroorzaakt.
89) Beschrijf hoe arrays kunnen worden doorgegeven aan een door de gebruiker gedefinieerde functie
Eén ding om op te merken is dat je niet de hele array aan een functie kunt doorgeven. In plaats daarvan geef je er een pointer aan die naar het eerste element in het geheugen van de array wijst. Om dit te doen, geef je de naam van de array aan zonder de haakjes.
90) Wat zijn aanwijzingen?
Wijzers wijzen naar specifieke gebieden in het geheugen. Pointers bevatten het adres van een variabele, die op zijn beurt een waarde of zelfs een adres naar een ander geheugen kan bevatten.
91) Kun je een hele structuur doorgeven aan functies?
Ja, het is mogelijk om een volledige structuur door te geven aan een functie in een aanroep op methodestijl. Sommige programmeurs geven er echter de voorkeur aan om de structuur globaal te declareren en vervolgens een variabele van dat structuurtype door te geven aan een functie. Deze methode helpt de consistentie en uniformiteit in termen van argumenttype te behouden.
92) Wat is de functie get()?
De gets() function
maakt een volledige gegevensinvoer van de gebruiker mogelijk. Wanneer de gebruiker op de Enter-toets drukt om de invoer te beëindigen, wordt de volledige regel met tekens opgeslagen in een stringvariabele. Merk op dat de enter-toets niet in de variabele is opgenomen, maar dat in plaats daarvan een null-terminator \0 na het laatste teken wordt geplaatst.
93) Het %-symbool heeft een speciaal gebruik in een printf-instructie. Hoe zou je dit personage als onderdeel van de uitvoer op het scherm plaatsen?
U kunt dit doen door %% in de printf-instructie te gebruiken. U kunt bijvoorbeeld printf(“10%%”) schrijven om de uitvoer als 10% op het scherm te laten verschijnen.
94) Hoe zoek je gegevens in een gegevensbestand met behulp van de willekeurige toegangsmethode?
Gebruik de fseek()
functie voor het uitvoeren van willekeurige toegang/invoer/uitvoer op een bestand. Nadat het bestand door de functie fopen() was geopend, had fseek drie parameters nodig om te werken: een bestandsaanwijzer naar het bestand, het aantal bytes dat moest worden doorzocht en het punt van oorsprong in het bestand.
95) Worden opmerkingen opgenomen tijdens de compilatiefase en ook in het EXE-bestand geplaatst?
Nee, opmerkingen die door de compiler zijn aangetroffen, worden genegeerd. Opmerkingen zijn meestal alleen bedoeld als leidraad voor de programmeur en hebben geen ander significant nut voor de programmafunctionaliteit.
96) Is er een ingebouwde functie in C die kan worden gebruikt voor het sorteren van gegevens?
Ja, gebruik de qsort()
functie. Het is ook mogelijk om door de gebruiker gedefinieerde functies voor sorteren te maken, zoals functies die zijn gebaseerd op het algoritme voor het sorteren van ballonnen en bellen.
97) Wat zijn de voor- en nadelen van een hoop?
Het opslaan van gegevens op de heap gaat langzamer dan bij gebruik van de stapel. Het belangrijkste voordeel van het gebruik van de heap is echter de flexibiliteit. Dat komt omdat geheugen in deze structuur in een bepaalde volgorde kan worden toegewezen en verwijderd. Traagheid in de heap kan worden gecompenseerd als een algoritme goed is ontworpen en geïmplementeerd.
98) Hoe converteer je strings naar getallen in C?
U kunt uw eigen functies schrijven om string-naar-nummer-conversies uit te voeren, of in plaats daarvan de ingebouwde functies van C gebruiken. U kunt atof gebruiken om te converteren naar een drijvende-kommawaarde, atoi om te converteren naar een geheel getal, en atol om te converteren naar een lange gehele waarde.
99) Maak een eenvoudig codefragment dat de waarden van twee variabelen num1 en num2 verwisselt.
int temp; temp = num1; num1 = num2; num2 = temp;
100) Wat is het nut van een puntkomma (;) aan het einde van elke programma-instructie?
Het heeft te maken met het parseerproces en het compileren van de code. Een puntkomma fungeert als scheidingsteken, zodat de compiler weet waar elke instructie eindigt, en kan doorgaan met het verdelen van de instructie in kleinere elementen voor syntaxiscontrole.
Deze interviewvragen zullen ook helpen bij je viva (oralen)