Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

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.

2) Wat is het verschil tussen Call by Value en Call by Reference?

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.

4) Converteer de volgende 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.

6) Wat is een sequentieel toegangsbestand?

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.

11) Wat is het doel van het \0 teken?

Het markeert het einde van een stringliteral in C, zodat functies zoals strlen en printf weten waar de string eindigt.

12) Verschil tussen = en ==?

= wijst een waarde toe aan een variabele; == vergelijkt twee waarden op gelijkheid.

13) Wat is de modulus operator?

Aangeduid met %, geeft het de rest van een gehele deling. Voorbeeld: 10 % 3 levert 1 op.

14) Wat is een geneste lus?

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 !=.

16) Vergelijk compilers en interpreters.

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.

18) Kunnen accolades een enkele regel code omvatten?

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.

20) Wat is een syntaxisfout?

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.

22) Array-elementen benaderen.

Elementen zijn geïndexeerd van 0 tot size-1. Voor int scores[5]; zijn geldige indices 0–4.

23) Kan int 32768 opslaan?

Nee. int loopt typisch van –32768 tot 32767 op 16-bit systemen. Gebruik long of unsigned int voor grotere waarden.

24) Escape sequences combineren.

Ja. Bijvoorbeeld, printf("Hello\n\tWorld"); print “Hello” op één regel, gevolgd door een getabde “World”.

25) Waarom niet elk headerbestand includeren?

Alleen headers die nodig zijn voor gebruikte functies moeten worden geïncludeerd. Onnodige headers verhogen compiletijden en binaire grootte.

26) Wanneer wordt void gebruikt?

In een functiesignatuur geeft void aan dat de functie geen waarde retourneert, bijv. void display(void).

27) Wat zijn samengestelde statements?

Codeblokken omgeven door accolades die als een enkele eenheid worden uitgevoerd, vaak binnen if of lussen.

28) Betekenis van een algoritme.

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.

32) Willekeurige getallen genereren.

Gebruik rand() na seeden met srand(time(NULL));. Voorbeeld: int anyNum = rand();

33) Ongeïdentificeerde tolower() fout.

Inclusief de juiste header: #include <ctype.h>.

34) Hoe comments invoegen.

Enkele regel: // comment; multi-regel: /* comment */.

35) Wat is debuggen?

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");

38) Betekenis van %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) Kan if strings vergelijken?

Nee. Gebruik strcmp() voor stringvergelijking.

43) Wat zijn preprocessor directives?

Instructies verwerkt vóór compilatie, zoals #include en #define.

44) Resultaat van 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 (=).

46) Correcte toewijzing aan een stringvariabele.

Gebruik strcpy(myName, "Robin"); in plaats van myName = "Robin";.

47) Lengte van een string bepalen.

Roep strlen() aan. Voorbeeld: int len = strlen(FullName);

48) Variabele initialiseren bij declaratie.

Ja. Voorbeeld: char planet[15] = "Earth";

49) Waarom is C een middel-niveau taal?

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.

51) Wat zijn gereserveerde woorden?

Trefwoorden gedefinieerd door C die een speciale betekenis hebben (bijv. int, return). Ze kunnen niet als identifiers gebruikt worden.

52) Wat is een gekoppelde lijst?

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.

57) Effect van X += 15; wanneer X 5 is.

Resultaat: X wordt 20.

58) Zijn 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 met void = 10;.

'void' is een gereserveerd type; het kan niet als variabelenaam gebruikt worden.

62) Geldigheid van INT = 10.50;.

Alleen als INT een gebruiksgedefinieerde identifier is (niet het sleutelwoord int). Het sleutelwoord moet lowercase zijn.

63) Wat zijn actual arguments?

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.

65) Wat is output redirectie?

Gebruik van shell operators zoals > om programma-output naar een bestand te sturen in plaats van de console.

66) Wat zijn runtime-fouten?

Fouten die optreden tijdens programma-uitvoering (bijv. deling door nul, null pointer dereferentie).

67) Verschil tussen abs() en fabs().

Beide geven absolute waarden; abs() werkt op integers (stdlib.h), fabs() op floating-point getallen (math.h).

68) Wat zijn formele parameters?

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.

72) Wat zijn globale variabelen en hoe declareer je ze?

Variabelen gedeclareerd buiten alle functies; ze zijn toegankelijk door het hele bestand. Voorbeeld: int counter; voor int main().

73) Wat zijn enumerated types?

Aangepaste integer types gedefinieerd met enum, die symbolische namen toewijzen aan constante waarden.

74) Wat doet 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));

76) Wat zijn multidimensionale arrays?

Arrays met twee of meer indices, zoals int matrix[3][4];, nuttig voor tabellen of roosters.

77) Functie om één string aan een andere te voegen.

Gebruik strcat(dest, src); uit string.h.

78) Verschil tussen getch() en getche().

getch() leest een karakter zonder echo; getche() echo't het karakter naar de console.

79) Leveren scanf("%c", &letter) en letter = getchar() hetzelfde resultaat?

Ja, beide lezen het volgende karakter van standaardinvoer en slaan het op in letter.

80) Wat zijn structuurtypen?

Samengestelde datatypen die gerelateerde variabelen in één entiteit groeperen.

81) Betekenis van r 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.

84) Wat is een dynamische datastructuur?

Datastructuren die geheugen alloceren tijdens runtime (bijv. gekoppelde lijsten, bomen) met malloc() en free().

85) Verschillende datatypes in C.

Basistypes: int, char, float, double. Elk dient verschillende opslagbehoeftes.

86) Algemene vorm van een C-programma.

Preprocessor directives, typedefinities, globale variabelen, main(), locale declaraties, statements, en returnwaarde.

87) Voordeel van random access bestanden.

Direct springen naar elk record met fseek(), wat zoekoperaties versnelt vergeleken met sequentiële toegang.

88) Effect van weglaten 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);.

90) Wat zijn pointers?

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 is gets()?

Leest een volledige regel in een buffer tot een newline wordt ontdekt. Afgekeurd vanwege buffer overflow risico; gebruik fgets() in plaats daarvan.

93) Een procentteken printen.

Escape met %% in printf.

94) Random access bestand zoeken.

Gebruik fseek() om de bestandspointer naar de gewenste offset te verplaatsen, daarna het record lezen.

95) Worden comments gecompileerd?

Nee. Comments worden tijdens preprocessing verwijderd en verschijnen niet in de uitvoerbare.

96) Ingebouwde sorteerfunctie.

Gebruik qsort() uit stdlib.h voor generieke sortering.

97) Heap voor- en nadelen.

Voordelen: flexibel, dynamische allocatie; Nadelen: langzamere toegang, fragmentatie.

98) Strings omzetten naar getallen.

Gebruik atoi() voor integers, atof() voor floats, en atol() voor longs.

99) Twee variabelen wisselen.
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

  1. Automatisering van Injectiemoulding: Experts Inzichten & Opkomende Trends
  2. Acht sleutel cloud computing-modellen van 2021
  3. Top 17 programmeerboeken om uw coderingsvaardigheden in 2021 te verbeteren
  4. Russlands Geüpdatete Serialisatiewetten: Vier Kernvragen Beantwoord
  5. Kiezen Tussen Data Matrix En QR Codes: Wat Is Best Voor Uw Bedrijf
  6. Top CMMS-voornemens voor 2021: Transformeer onderhoudsbeheer
  7. Top 10 Single-Board Computers van 2021: Prestaties, vermogen en toepassingen
  8. 2024 Cloud Interview Gids: Expert Vragen & Antwoorden
  9. Top 3 uitdagingen bij het voorbereiden van IoT-data voor industriële succes
  10. Toonaangevende Cloud-gebaseerde IoT Analytics Platforms voor 2026
  11. De Definitieve Gids naar de Top 10 Industriële IoT-platforms (2024)