Top 100 C Programmeervragen & Antwoorden voor Interviews (2024)
Top 100 C Programmeervragen & Antwoorden voor Interviews (2024)
Hieronder vind je beknopte, expert-antwoorden op de meest gestelde C programmeervragen tijdens interviews. Elk antwoord is geschreven om duidelijke expertise, echte ervaren en autoritatieve kennis te demonstreren, terwijl het boeiend en betrouwbaar blijft.
1) Hoe bouw je een increment- of decrement-statement in C?Je kunt de unaire operatoren ++ en -- of de rekenkundige operatoren gebruiken. Bijvoorbeeld, x++ of x = x + 1 verhogen x met één, terwijl x-- of x = x - 1 het verlagen.
Call by value geeft een kopie van de variabelewaarde door; de functie kan de originele niet wijzigen. Call by reference geeft het adres van de variabele door, waardoor de functie de originele waarde direct kan wijzigen.
3) Hoe helpt het uitschakelen van code (commentaar) bij debuggen?Het tijdelijk uitschakelen van secties (bijv. /* ... */) haalt code uit de uitvoering terwijl het bewaard blijft voor snelle heractivering. Dit isoleert mogelijke foutbronnen zonder de originele regels te wissen.
for lus naar een while lus:
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 stack?
Een stack is een Last-In-First-Out (LIFO) datastructuur. Operaties omvatten PUSH (toevoegen) en POP (verwijderen). Alleen het bovenelement is direct toegankelijk.
Data worden achter elkaar opgeslagen. Om een specifiek record te lezen, moet je het bestand sequentieel doorlopen tot je het bereikt.
7) Wat is variabele initialisatie en waarom is het belangrijk?Initialiseren kent een bekende waarde toe aan een variabele vóór gebruik. Ongeïnitialiseerde variabelen bevatten onbepaalde waarden, wat leidt tot onvoorspelbaar gedrag.
8) Wat is spaghetti programmeren?Spaghetti code verwijst naar verwarrende, ongestructureerde code die moeilijk te lezen en te onderhouden is. Het ontstaat meestal door gebrek aan planning en resulteert in complexe controlestroom.
9) Verschil tussen broncode en objectcode.Broncode (.c) is menselijk leesbare C-tekst. De compiler vertaalt het naar objectcode (.obj of .o), wat machine-leesbaar is en gelinkt kan worden tot een uitvoerbaar bestand.
10) Hoe print je aanhalingstekens in C?Gebruik escape sequences: \' voor enkele aanhalingstekens en \" voor dubbele aanhalingstekens binnen printf strings.
\0 teken?
Het markeert het einde van een stringliteral in C, zodat functies zoals strlen en printf weten waar de string eindigt.
= en ==?
= wijst een waarde toe aan een variabele; == vergelijkt twee waarden op gelijkheid.
Aangeduid met %, geeft het de rest van een gehele deling. Voorbeeld: 10 % 3 levert 1 op.
Een lus binnen een andere lus. De innerlijke lus loopt volledig voor elke iteratie van de outerlijke lus.
15) Welke operator is incorrect:>=, <=, <>, ==?
In C is <> ongeldig; de correcte "not equal" operator is !=.
Compilers vertalen het hele programma naar machinecode vóór uitvoering, alle syntaxisfouten worden direct gevangen. Interpreters voeren code regel-voor-regel uit en stoppen bij de eerste fout.
17) Hoe declareer je een stringvariabele?Gebruik een karakterarray: char name[50]; reserveert ruimte voor maximaal 49 karakters plus de null-terminator.
Ja. Hoewel optioneel voor enkele statements, verbeteren accolades de leesbaarheid en verminderen fouten wanneer de code later uitgebreid wordt.
19) Wat zijn headerbestanden en hun toepassing?Headerbestanden (.h) bevatten functieprototypen en definities. Het includeren ervan (#include <stdio.h>) maakt standaardfuncties zoals printf beschikbaar.
Een fout in de code die de taalgrammatica schendt, zoals een ontbrekende puntkomma of verkeerd gespeld sleutelwoord.
21) Variabelen vs constanten.Variabelen kunnen veranderen tijdens uitvoering; constanten zijn vast tijdens compilatie. Gebruik #define of const voor onveranderlijke waarden.
Elementen zijn geïndexeerd van 0 tot size-1. Voor int scores[5]; zijn geldige indices 0–4.
int 32768 opslaan?
Nee. int loopt typisch van –32768 tot 32767 op 16-bit systemen. Gebruik long of unsigned int voor grotere waarden.
Ja. Bijvoorbeeld, printf("Hello\n\tWorld"); print “Hello” op één regel, gevolgd door een getabde “World”.
Alleen headers die nodig zijn voor gebruikte functies moeten worden geïncludeerd. Onnodige headers verhogen compiletijden en binaire grootte.
26) Wanneer wordtvoid gebruikt?
In een functiesignatuur geeft void aan dat de functie geen waarde retourneert, bijv. void display(void).
Codeblokken omgeven door accolades die als een enkele eenheid worden uitgevoerd, vaak binnen if of lussen.
Algoritmes bieden een stap-voor-stap plan voor het oplossen van een probleem, sturen programmalogica en waarborgen correctheid.
29) Voordeel van arrays boven individuele variabelen.Arrays staan efficiënte opslag en manipulatie van gerelateerde data toe met één identifier en een index, wat code rommel vermindert.
30) Lus om incrementele getallen te printen:for (int a = 1; a <= 5; a++) { for (int b = 1; b <= a; b++) printf("%d", b); printf("\n"); }
31) Probleem met scanf("%d", whatnumber);
Ontbrekende ampersand: scanf("%d", &whatnumber); geeft het adres van de variabele door.
Gebruik rand() na seeden met srand(time(NULL));. Voorbeeld: int anyNum = rand();
tolower() fout.
Inclusief de juiste header: #include <ctype.h>.
Enkele regel: // comment; multi-regel: /* comment */.
Het systematische proces van lokaliseren en corrigeren van fouten om te zorgen dat het programma de beoogde output produceert.
36) Functie van&&.
Logische EN: alle voorwaarden moeten true zijn voor de totale expressie om true te evalueren.
37) Oneven of even bepalen.Controleer de rest: if (num % 2 == 0) printf("EVEN"); else printf("ODD");
%10.2 in printf.
Het reserveert 10 tekens voor het getal en print 2 decimalen.
39) Logische vs syntaxisfouten.Logische fouten compileren maar produceren onjuiste resultaten; syntaxisfouten voorkomen compilatie.
40) Typen controlestructuren.Sequentie, Selectie (if/else, switch), en Herhaling (lussen).
41) Functie van||.
Logische OF: als een voorwaarde true is, is de expressie true.
42) Kanif strings vergelijken?
Nee. Gebruik strcmp() voor stringvergelijking.
Instructies verwerkt vóór compilatie, zoals #include en #define.
s >=10 && s < 25 && s!=12 wanneer s 10 is.
True, omdat alle individuele vergelijkingen true evalueren.
45) Operator precedencie in C.Unaire !, +, -, *, /, %, + -, relationeel (< > <= >=), gelijkheid (== !=), logisch (&& ||), toewijzing (=).
Gebruik strcpy(myName, "Robin"); in plaats van myName = "Robin";.
Roep strlen() aan. Voorbeeld: int len = strlen(FullName);
Ja. Voorbeeld: char planet[15] = "Earth";
C combineert hoog-niveau abstracties met laag-niveau geheugenmanipulatie, wat zowel leesbaarheid als prestaties biedt.
50) Bestandsuitbreidingen in C.Bron: .c, Header: .h, Object: .o of .obj, Uitvoerbaar: .exe.
Trefwoorden gedefinieerd door C die een speciale betekenis hebben (bijv. int, return). Ze kunnen niet als identifiers gebruikt worden.
Dynamische datastructuur samengesteld uit knopen verbonden via pointers, wat efficiënte inserties en deletes toestaat.
53) Wat is FIFO?First-In-First-Out; gebruikt in wachtrijstructuren waar het eerst ingequeuede element het eerste gedequeued wordt.
54) Wat zijn binaire bomen?Boomdatastructuren waar elk knoop maximaal twee kinderen heeft, wat efficiënte zoekoperaties vergemakkelijkt.
55) Zijn gereserveerde woorden case-sensitive?False. Alle gereserveerde woorden moeten in lowercase geschreven worden; anders behandelt de compiler ze als identifiers.
56) Verschil tussen++a en a++.
Pre-increment (++a) verhoogt a voordat de waarde gebruikt wordt; post-increment (a++) gebruikt de huidige waarde eerst, dan verhoogt.
X += 15; wanneer X 5 is.
Resultaat: X wordt 20.
NAME, name, Name hetzelfde?
False. C is case-sensitive.
59) Wat is een oneindige lus?Ook oneindige lus genoemd; het loopt oneindig omdat de lusconditie nooit false wordt.
60) Wat is een programmaflowchart?Een visueel diagram dat de volgorde van operaties, beslispunten en lussen in een programma schematiseert.
61) Probleem metvoid = 10;.
'void' is een gereserveerd type; het kan niet als variabelenaam gebruikt worden.
62) Geldigheid vanINT = 10.50;.
Alleen als INT een gebruiksgedefinieerde identifier is (niet het sleutelwoord int). Het sleutelwoord moet lowercase zijn.
Waarden doorgegeven aan een functie wanneer deze aangeroepen wordt; ze corresponderen met de formele parameters van de functie.
64) Wat is een newline escape sequence?Vorgesteld door \n, het verplaatst de cursor naar de volgende regel.
Gebruik van shell operators zoals > om programma-output naar een bestand te sturen in plaats van de console.
Fouten die optreden tijdens programma-uitvoering (bijv. deling door nul, null pointer dereferentie).
67) Verschil tussenabs() en fabs().
Beide geven absolute waarden; abs() werkt op integers (stdlib.h), fabs() op floating-point getallen (math.h).
Variabelen gedeclareerd in de functiedefinitie die de actual arguments ontvangen tijdens een aanroep.
69) Wat zijn controlestructuren?Mechanismen die de uitvoeringsvolgorde bepalen: sequentie, selectie, en herhaling.
70) Controleren of een getal positief of negatief is.if (num >= 0) printf("number is positive"); else printf("number is negative");
71) Wanneer switch gebruiken boven if?
Wanneer een enkele integer of karaktervariabele veel discrete waarden kan aannemen; switch biedt duidelijke, efficiëntere branching.
Variabelen gedeclareerd buiten alle functies; ze zijn toegankelijk door het hele bestand. Voorbeeld: int counter; voor int main().
Aangepaste integer types gedefinieerd met enum, die symbolische namen toewijzen aan constante waarden.
toupper()?
Converteert een kleine letter naar de bijbehorende hoofdletter (C standaardbibliotheek).
75) Kunnen functies als argumenten doorgegeven worden?Ja. Geef een functiepointer door aan een andere functie, bijv. void sort(int (*cmp)(int, int));
Arrays met twee of meer indices, zoals int matrix[3][4];, nuttig voor tabellen of roosters.
Gebruik strcat(dest, src); uit string.h.
getch() en getche().
getch() leest een karakter zonder echo; getche() echo't het karakter naar de console.
scanf("%c", &letter) en letter = getchar() hetzelfde resultaat?
Ja, beide lezen het volgende karakter van standaardinvoer en slaan het op in letter.
Samengestelde datatypen die gerelateerde variabelen in één entiteit groeperen.
81) Betekenis vanr en w in bestandsmodi.
'r' opent een bestand voor lezen; 'w' opent voor schrijven, bestaande inhoud wordt getruncateerd.
82) Tekst vs binaire bestanden.Tekstbestanden bevatten menselijk leesbare karakters; binaire bestanden slaan raw bytes op voor efficiënte machineverwerking.
83) Kun je eigen headerbestanden maken?Ja. Maak een bestand met .h extensie, voeg prototypen toe, en #include "myheader.h" in je bron.
Datastructuren die geheugen alloceren tijdens runtime (bijv. gekoppelde lijsten, bomen) met malloc() en free().
Basistypes: int, char, float, double. Elk dient verschillende opslagbehoeftes.
Preprocessor directives, typedefinities, globale variabelen, main(), locale declaraties, statements, en returnwaarde.
Direct springen naar elk record met fseek(), wat zoekoperaties versnelt vergeleken met sequentiële toegang.
break in een switch.
Fall-through treedt op: uitvoering gaat door in het volgende case-blok, wat ongewenst gedrag kan veroorzaken.
89) Arrays doorgeven aan functies.Geef een pointer naar het eerste element door: void func(int arr[]); of void func(int *arr);.
Variabelen die geheugenadressen vasthouden, wat indirecte datamanipulatie en dynamisch geheugenbeheer mogelijk maakt.
91) Hele structuren doorgeven aan functies.Toegestaan; de hele structuur wordt gekopieerd tenzij per pointer doorgegeven, wat duplicatie voorkomt.
92) Wat isgets()?
Leest een volledige regel in een buffer tot een newline wordt ontdekt. Afgekeurd vanwege buffer overflow risico; gebruik fgets() in plaats daarvan.
Escape met %% in printf.
Gebruik fseek() om de bestandspointer naar de gewenste offset te verplaatsen, daarna het record lezen.
Nee. Comments worden tijdens preprocessing verwijderd en verschijnen niet in de uitvoerbare.
96) Ingebouwde sorteerfunctie.Gebruik qsort() uit stdlib.h voor generieke sortering.
Voordelen: flexibel, dynamische allocatie; Nadelen: langzamere toegang, fragmentatie.
98) Strings omzetten naar getallen.Gebruik atoi() voor integers, atof() voor floats, en atol() voor longs.
int temp = num1; num1 = num2; num2 = temp;100) Doel van een puntkomma.
Het beëindigt statements, waardoor de compiler instructies kan parsen en scheiden.
Gratis PDF Download: C Programmeervragen & Antwoorden
C Taal
- Automatisering van Injectiemoulding: Experts Inzichten & Opkomende Trends
- Acht sleutel cloud computing-modellen van 2021
- Top 17 programmeerboeken om uw coderingsvaardigheden in 2021 te verbeteren
- Russlands Geüpdatete Serialisatiewetten: Vier Kernvragen Beantwoord
- Kiezen Tussen Data Matrix En QR Codes: Wat Is Best Voor Uw Bedrijf
- Top CMMS-voornemens voor 2021: Transformeer onderhoudsbeheer
- Top 10 Single-Board Computers van 2021: Prestaties, vermogen en toepassingen
- 2024 Cloud Interview Gids: Expert Vragen & Antwoorden
- Top 3 uitdagingen bij het voorbereiden van IoT-data voor industriële succes
- Toonaangevende Cloud-gebaseerde IoT Analytics Platforms voor 2026
- De Definitieve Gids naar de Top 10 Industriële IoT-platforms (2024)