Top 100 C programmeringsinterviewspørgsmål og -svar (PDF)
Her er C Programmering-samtalespørgsmål og svar til både friskere og erfarne kandidater til at få deres drømmejob.
Grundlæggende C-programmering Interviewspørgsmål og svar for nybegyndere
1) Hvordan konstruerer du en inkrementsætning eller dekrementsætning i C?
Der er faktisk to måder, du kan gøre dette på. Den ene er at bruge inkrementoperatoren ++ og dekrementoperator –. For eksempel betyder udsagnet "x++" at øge værdien af x med 1. På samme måde betyder udsagnet "x -" at formindske værdien af x med 1. En anden måde at skrive inkrementudsagn på er at bruge det konventionelle + plustegnet eller – minustegn. I tilfælde af "x++", er en anden måde at skrive det på "x = x +1".
👉 Gratis PDF-download: C-programmeringsinterviewspørgsmål og svar >>
2) Hvad er forskellen mellem Call by Value og Call by Reference?
Når du bruger Call by Value, sender du værdien af en variabel som parameter til en funktion, mens Call by Reference sender variablens adresse. Også under Call by Value påvirkes værdien i parameteren ikke af hvilken som helst handling, der finder sted, mens værdier i tilfælde af Call by Reference kan blive påvirket af processen i funktionen.

3) Nogle kodere fejlretter deres programmer ved at placere kommentarsymboler på nogle koder i stedet for at slette dem. Hvordan hjælper dette med fejlfinding?
At placere kommentarsymboler /* */ omkring en kode, også kaldet "kommentere ud", er en måde at isolere nogle koder, som du tror kan forårsage fejl i programmet, uden at slette koden. Tanken er, at hvis koden faktisk er korrekt, fjerner du blot kommentarsymbolerne og fortsætter. Det sparer dig også tid og kræfter på at skulle indtaste koderne igen, hvis du har slettet dem i første omgang.
4) Hvad er den tilsvarende kode for følgende sætning i WHILE LOOP-format?
for (a=1; a<=100; a++)
printf ("%d\n", a * a);
Svar:
a=1;
while (a<=100) {
printf ("%d\n", a * a);
a++;
}
5) Hvad er en stak?
En stak er én form for datastruktur. Data lagres i stakke ved hjælp af FILO-metoden (First In Last Out). I et givet tilfælde er kun toppen af stakken tilgængelig, hvilket betyder, at for at hente data, der er gemt inde i stakken, skal de data, der er på den øverste del, fjernes.tracførst. Lagring af data i en stak kaldes også en PUSH, mens datahentning kaldes en POP.
6) Hvad er en sekventiel adgangsfil?
Når du skriver programmer, der gemmer og henter data i en fil, er det muligt at udpege denne fil i forskellige former. En sekventiel adgangsfil er sådan, at data gemmes i sekventiel rækkefølge: Den ene data placeres i filen efter den anden. For at få adgang til bestemte data i den sekventielle adgangsfil, skal data læses én data ad gangen, indtil den rigtige er nået.
7) Hvad er variabel initialisering, og hvorfor er det vigtigt?
Dette refererer til den proces, hvor en variabel tildeles en startværdi, før den bruges i programmet. Uden initialisering ville en variabel have en ukendt værdi, hvilket kan føre til uforudsigelige output, når det bruges i beregninger eller andre operationer.
8 Hvad er spaghettiprogrammering?
Spaghetti-programmering refererer til koder, der har tendens til at blive viklet sammen og overlappet i hele programmet. Denne ustrukturerede tilgang til kodning tilskrives normalt manglende erfaring fra programmørens side. Spaghettiprogrammering gør et program komplekst og besværlig at analysere koderne, og skal derfor undgås så meget som muligt.
9) Differentiér kilden Codes fra objekt Codes
Kildekoder er koder, der er skrevet af programmøren. Den består af kommandoerne og andre engelsk-lignende nøgleord, der skal instruere computeren, hvad den skal gøre. Dog ville computere ikke være i stand til at forstå kildekoder. Derfor kompileres kildekoder ved hjælp af en compiler. De resulterende output er objektkoder, som er i et format, der kan forstås af computerprocessoren. I C programmering, kildekoder gemmes med filtypenavnet .C, mens objektkoder gemmes med filtypenavnet .OBJ
10) I C-programmering, hvordan indsætter du anførselstegn (' og ") i outputskærmen?
Dette er et almindeligt problem for begyndere, fordi citater normalt er en del af en printf-sætning. For at indsætte anførselstegn som en del af outputtet, skal du bruge formatspecifikationerne \' (for enkelt anførselstegn) og \" (for dobbelte anførselstegn).
11) Hvad er brugen af et '\0'-tegn?
Det omtales som et afsluttende null-tegn og bruges primært til at vise slutningen af en strengværdi.
12) Hvad er forskellen mellem = symbolet og == symbolet?
=-symbolet bruges ofte i matematiske operationer. Det bruges til at tildele en værdi til en given variabel. På den anden side er ==-symbolet, også kendt som "lig med" eller "svarende til", en relationel operator, der bruges til at sammenligne to værdier.
13) Hvad er modulusoperatoren?
Modulusoperatoren udsender resten af en division. Det gør brug af procent (%) symbolet. For eksempel: 10 % 3 = 1, hvilket betyder, at når du dividerer 10 med 3, er resten 1.
14) Hvad er en indlejret løkke?
En indlejret løkke er en løkke, der løber i en anden løkke. Sagt på en anden måde, så har du en indre løkke, der er inde i en ydre løkke. I dette scenarie udføres den indre sløjfe et antal gange som angivet af den ydre sløjfe. For hver tur på den ydre løkke udføres først den indre løkke.
15) Hvilken af følgende operatorer er forkert og hvorfor? ( >=, <=, <>, ==)
<> er forkert. Selvom denne operator korrekt fortolkes som "ikke lig med" ved at skrive betingede udsagn, er det ikke den korrekte operator, der skal bruges i C programmering. I stedet skal operatoren != bruges til at angive tilstanden "ikke lig med".
16) Sammenlign og kontrast kompilatorer fra tolke.
Kompilere og fortolkere beskæftiger sig ofte med, hvordan programkoder udføres. Tolke udfører programkoder en linje ad gangen, mens kompilatorer tager programmet som en helhed og konverterer det til objektkode, før det udføres. Den vigtigste forskel her er, at i tilfælde af tolke, kan et program støde på syntaksfejl midt i udførelsen og vil stoppe derfra. På den anden side kontrollerer compilere syntaksen for hele programmet og fortsætter kun til udførelse, når der ikke findes syntaksfejl.
17) Hvordan erklærer man en variabel, der vil indeholde strengværdier?
Tegn-nøgleordet kan kun indeholde 1 tegnværdi ad gangen. Ved at oprette en række tegn kan du gemme strengværdier i den. Eksempel: "char Mit Navn[50]; ” erklærer en strengvariabel ved navn Mit Navn, der maksimalt kan indeholde 50 tegn.
18) Kan de krøllede parenteser { } bruges til at omslutte en enkelt kodelinje?
Mens krøllede parenteser hovedsageligt bruges til at gruppere flere linjer med koder, vil det stadig fungere uden fejl, hvis du brugte det til en enkelt linje. Nogle programmører foretrækker denne metode som en måde at organisere koder på for at få det til at se klarere ud, især i betingede udsagn.
19) Hvad er header-filer, og hvad er dets anvendelse i C-programmering?
Header-filer er også kendt som biblioteksfiler. De indeholder to væsentlige ting: definitioner og prototyper af funktioner, der bruges i et program. Kort sagt, kommandoer, du bruger i C-programmering, er faktisk funktioner, der er defineret inde fra hver header-fil. Hver overskriftsfil indeholder et sæt funktioner. For eksempel: stdio.h er en header-fil, der indeholder definition og prototyper af kommandoer som printf og scanf.
20) Hvad er syntaksfejl?
Syntaksfejl er forbundet med fejl i brugen af et programmeringssprog. Det kan være en kommando, der er stavet forkert, eller en kommando, der skal, blev indtastet i små bogstaver, men i stedet blev indtastet med et stort bogstav. Et forlagt symbol, eller mangel på symbol, et sted inden for en kodelinje kan også føre til syntaksfejl.
21) Hvad er variabler, og hvordan adskiller det sig fra konstanter?
Variabler og konstanter kan i første omgang ligne hinanden i en forstand, at begge er identifikatorer, der består af et tegn eller flere tegn (bogstaver, tal og nogle få tilladte symboler). Begge vil også have en særlig værdi. Værdier holdt af en variabel kan ændres i hele programmet og kan bruges i de fleste operationer og beregninger. Konstanter gives kun værdier på én gang, placeret i begyndelsen af et program. Denne værdi ændres ikke i programmet. For eksempel kan du tildele en konstant med navnet PI og give den en værdi på 3.1415. Du kan så bruge det som PI i programmet, i stedet for at skulle skrive 3.1415 hver gang du skal bruge det.
22) Hvordan får du adgang til værdierne i et array?
Arrays indeholder en række elementer, afhængigt af størrelsen du gav dem under variabel erklæringen. Hvert element er tildelt et tal fra 0 til antallet af elementer-1. For at tildele eller hente værdien af et bestemt element henvises til elementnummeret. For eksempel: hvis du har en erklæring, der siger "intscores[5];", så har du 5 tilgængelige elementer, nemlig: scores[0], scores[1], scores[2], scores[3] og scores[4] ].
23) Kan jeg bruge "int"-datatypen til at gemme værdien 32768? Hvorfor?
Nr. "int"-datatypen er i stand til at gemme værdier fra -32768 til 32767. For at gemme 32768 kan du bruge "long int" i stedet. Du kan også bruge "usigneret int", forudsat at du ikke har til hensigt at gemme negative værdier.
24) Kan to eller flere operatorer såsom \n og \t kombineres i en enkelt linje programkode?
Ja, det er helt gyldigt at kombinere operatører, især hvis behovet opstår.
For eksempel: du kan have en kode som printf (“Hello\n\n\’World\'”) at udskrive teksten "Hej" på den første linje og "Verden" omgivet af enkelte anførselstegn for at blive vist på de næste to linjer.
25) Hvorfor er det ikke alle header-filer, der er deklareret i hvert C-program?
Valget af at erklære en header-fil øverst i hvert C-program vil afhænge af hvilke kommandoer/funktioner du vil bruge i det pågældende program. Da hver header-fil indeholder forskellige funktionsdefinitioner og prototype, ville du kun bruge de header-filer, der ville indeholde de funktioner, du skal bruge. At erklære alle header-filer i hvert program ville kun øge den samlede filstørrelse og belastning af programmet og betragtes ikke som en god programmeringsstil.
26) Hvornår bruges nøgleordet "void" i en funktion?
Når du erklærer funktioner, bestemmer du, om den funktion vil returnere en værdi eller ej. Hvis denne funktion ikke returnerer en værdi, f.eks. når formålet med en funktion er at vise nogle output på skærmen, så skal "void" placeres længst til venstre i funktionshovedet. Når der forventes en returværdi efter funktionsudførelsen, placeres returværdiens datatype i stedet for "void".
27) Hvad er sammensatte udsagn?
Sammensatte sætninger består af to eller flere programsætninger, der udføres sammen. Dette sker normalt under håndtering af forhold, hvor en række udsagn udføres, når en SAND eller FALSK evalueres. Sammensatte sætninger kan også udføres i en loop. Krøllede parenteser { } placeres før og efter sammensatte udsagn.
28) Hvilken betydning har en algoritme for C-programmering?
Før et program kan skrives, skal der først oprettes en algoritme. En algoritme giver en trin for trin procedure for, hvordan en løsning kan udledes. Det fungerer også som en plan for, hvordan et program starter og slutter, herunder hvilken proces og hvilke beregninger der er involveret.
29) Hvad er fordelen ved et array i forhold til individuelle variable?
Når du gemmer flere relaterede data, er det en god idé at bruge arrays. Dette skyldes, at arrays er navngivet med kun 1 ord efterfulgt af et elementnummer. For eksempel: for at gemme de 10 testresultater fra 1 elev, kan man bruge 10 forskellige variabelnavne (karakter 1, karakter2, karakter3... klasse10). Med arrays bruges kun 1 navn, resten er tilgængelige via indeksnavnet (karakter[0], karakter[1], karakter[2]... karakter[9]).
30) Skriv en loop-sætning, der viser følgende output:
1
12
123
1234
12345
Svar:
for (a=1; a<=5; i++) {
for (b=1; b<=a; b++)
printf("%d",b);
printf("\n");
}
C Programmeringsinterviewspørgsmål og svar til øvede
31) Hvad er der galt i denne udtalelse? scanf(“%d”, hvilket nummer);
Et og-tegn & symbol skal placeres før variabelnavnet whatnumber. Placering & betyder, at enhver heltalsværdi, der indtastes af brugeren, gemmes på "adressen" på variabelnavnet. Dette er en almindelig fejl for programmører, der ofte fører til logiske fejl.
32) Hvordan genererer man tilfældige tal i C?
Tilfældige tal genereres i C ved hjælp af rand() command. For eksempel: anyNum = rand() vil generere ethvert heltal, der begynder fra 0, forudsat at anyNum er en variabel af typen heltal.
33) Hvad kan problemet muligvis være, hvis et gyldigt funktionsnavn som tolower() bliver rapporteret af C-kompileren som udefineret?
Den mest sandsynlige årsag bag denne fejl er, at header-filen for den funktion ikke blev angivet øverst i programmet. Header-filer indeholder definitionen og prototypen for funktioner og kommandoer, der bruges i et C-program. I tilfælde af "tolower()", koden "#include ” skal være til stede i starten af programmet.
34) Hvad er kommentarer, og hvordan indsætter man det i et C-program?
Kommentarer er en god måde at sætte nogle bemærkninger eller beskrivelser ind i et program. Det kan tjene som en påmindelse om, hvad programmet handler om, eller en beskrivelse af, hvorfor en bestemt kode eller funktion blev placeret der i første omgang. Kommentarer begynder med /* og slutter med */ tegn. Kommentarer kan være en enkelt linje eller kan endda strække sig over flere linjer. Den kan placeres hvor som helst i programmet.
35) Hvad er fejlretning?
Debugging er processen med at identificere fejl i et program. Under programkompilering vil fejl, der findes, stoppe programmet i at køre fuldstændigt. I denne tilstand ville programmøren undersøge de mulige dele, hvor fejlen opstod. Debugging sikrer fjernelse af fejl, og spiller en vigtig rolle i at sikre, at det forventede programoutput overholdes.
36) Hvad gør &&-operatøren i en programkode?
&& kaldes også AND operator. Når du bruger denne operator, skal alle angivne forhold være SAND, før den næste handling kan udføres. Hvis du har 10 betingelser og alle undtagen 1 ikke kan evalueres som SAND, er hele betingelsessætningen allerede evalueret som FALSK
37) I C-programmering, hvilken kommando eller kode kan bruges til at bestemme, om et antal ulige eller lige?
Der er ingen enkelt kommando eller funktion i C der kan kontrollere, om et tal er ulige eller lige. Dette kan dog opnås ved at dividere dette tal med 2 og derefter kontrollere resten. Hvis resten er 0, så er det tal lige, ellers er det ulige. Du kan skrive det i kode som:
if (num % 2 == 0)
printf("EVEN");
else
printf("ODD");
38) Hvad betyder formatet %10.2, når det er inkluderet i en printf-sætning?
Dette format bruges til to ting: til at indstille antallet af mellemrum, der er tildelt til outputnummeret, og til at indstille antallet af decimaler. Tallet før decimaltegnet er for det tildelte mellemrum, i dette tilfælde vil det tildele 10 mellemrum til outputtallet. Hvis antallet af plads optaget af outputnummeret er mindre end 10, indsættes der tilføjede mellemrumstegn før det faktiske outputnummer. Tallet efter decimaltegnet angiver antallet af decimaler, i dette tilfælde er det 2 decimaler.
39) Hvad er logiske fejl, og hvordan adskiller det sig fra syntaksfejl?
Program, der indeholder logiske fejl, har en tendens til at bestå kompileringsprocessen, men det resulterende output er muligvis ikke det forventede. Dette sker, når en forkert formel blev indsat i koden, eller en forkert rækkefølge af kommandoer blev udført. Syntaksfejl omhandler på den anden side forkerte kommandoer, der er stavet forkert eller ikke genkendes af compileren.
40) Hvad er de forskellige typer kontrolstrukturer i programmering?
Der er 3 hovedkontrolstrukturer i programmering: Sekvens, Udvælgelse og Gentagelse. Sekventiel styring følger et top-til-bund flow ved afvikling af et program, således at trin 1 først udføres, efterfulgt af trin 2, hele vejen indtil det sidste trin udføres. Udvælgelse omhandler betingede udsagn, hvilket betyder, at koder udføres afhængigt af vurderingen af betingelser som værende SAND eller FALSK. Dette betyder også, at ikke alle koder kan udføres, og der er alternative flows indenfor. Gentagelser er også kendt som loop-strukturer og vil gentage en eller to programsætninger sat af en tæller.
41) Hvad er || operatør og hvordan fungerer den i et program?
Den || er også kendt som OR-operatøren i C-programmering. Når du bruger || for at evaluere logiske forhold, vil enhver betingelse, der evalueres til TRUE, gengive hele betingelsessætningen som TRUE.
42) Kan "hvis"-funktionen bruges til at sammenligne strenge?
Nej. "if"-kommandoen kan kun bruges til at sammenligne numeriske værdier og enkelttegnsværdier. Til sammenligning af strengværdier er der en anden funktion kaldet strcmp, der specifikt beskæftiger sig med strenge.
43) Hvad er præprocessor-direktiver?
Preprocessor-direktiver er placeret i begyndelsen af hvert C-program. Det er her biblioteksfiler er specificeret, hvilket vil afhænge af hvilke funktioner der skal bruges i programmet. En anden brug af præprocessor-direktiver er erklæringen af konstanter. Preprocessor-direktiver begynder med #-symbolet.
44) Hvad bliver resultatet af følgende betingede udsagn, hvis værdien af variabel s er 10?
s >=10 && s < 25 && s!=12
Resultatet vil være SANDT. Da værdien af s er 10, evalueres s >= 10 til SAND, fordi s ikke er større end 10, men stadig er lig med 10. s< 25 er også SAND, da 10 er mindre end 25. Ligesom s!=12 , hvilket betyder, at s ikke er lig med 12, evalueres til SAND. && er AND-operatoren og følger reglen om, at hvis alle individuelle forhold er SAND, er hele udsagnet SAND.
45) Beskriv rækkefølgen med hensyn til operatører i C.
Forrangsrækkefølge bestemmer, hvilken operation der først skal finde sted i en operationserklæring eller betinget erklæring. På det højeste niveau af forrang er de unære operatorer !, +, – og &. Det efterfølges af de almindelige matematiske operatorer (*, / og modul % først, efterfulgt af + og -). Næste i rækken er de relationelle operatorer <, <=, >= og >. Dette efterfølges af de to lighedsoperatorer == og !=. De logiske operatorer && og || bliver næste gang evalueret. På det sidste niveau er tildelingsoperatoren =.
46) Hvad er der galt med dette udsagn? mit Navn = "Robin";
Du kan ikke bruge tegnet = til at tildele værdier til en strengvariabel. Brug i stedet strcpy-funktionen. Den korrekte sætning ville være: strcpy(mitnavn, "Robin");
47) Hvordan bestemmer man længden af en strengværdi, der blev gemt i en variabel?
For at få længden af en strengværdi skal du bruge funktionen strlen(). For eksempel, hvis du har en variabel ved navn Fuldt Navn, kan du få længden af den lagrede strengværdi ved at bruge denne sætning: I = strlen(Fuldt Navn); variablen I vil nu have tegnlængden af strengværdien.
48) Er det muligt at initialisere en variabel på det tidspunkt, hvor den blev erklæret?
Ja, du behøver ikke at skrive en separat opgaveerklæring efter variabeldeklarationen, medmindre du planlægger at ændre den senere. For eksempel: char planet[15] = "Jorden"; gør to ting: den erklærer en strengvariabel ved navn planet og initialiserer den derefter med værdien "Earth".
49) Hvorfor betragtes C-sprog som et sprog på mellemniveau?
Dette skyldes, at C-sproget er rigt på funktioner, der får det til at opføre sig som et sprog på højt niveau, mens det på samme tid kan interagere med hardware ved hjælp af metoder på lavt niveau. Brugen af en velstruktureret tilgang til programmering, kombineret med engelsk-lignende ord, der bruges i funktioner, gør det til et sprog på højt niveau. På den anden side kan C direkte få adgang til hukommelsesstrukturer svarende til assemblersprogsrutiner.
50) Hvad er de forskellige filtypenavne involveret ved programmering i C?
Kildekoder i C gemmes med filtypenavnet .C. Header-filer eller biblioteksfiler har filtypenavnet .H. Hver gang en programkildekode kompileres med succes, opretter den en .OBJ-objektfil og en eksekverbar .EXE-fil.
51) Hvad er reserverede ord?
Reserverede ord er ord, der er en del af standard C-sprogbiblioteket. Det betyder, at reserverede ord har særlig betydning og derfor ikke kan bruges til andre formål, end det oprindeligt er beregnet til. Eksempler på reserverede ord er int, void og return.
52) Hvad er linkede lister?
En sammenkædet liste er sammensat af noder, der er forbundet med en anden. I C-programmering oprettes linkede lister ved hjælp af pointere. Brug af sammenkædede lister er en effektiv måde at bruge hukommelse til opbevaring.
53) Hvad er FIFO?
I C-programmering er der en datastruktur kendt som kø. I denne struktur lagres og tilgås data ved hjælp af FIFO-format eller First-In-First-Out. En kø repræsenterer en linje, hvor den første data, der blev gemt, også vil være den første, der er tilgængelig.
54) Hvad er binære træer?
Binære træer er faktisk en udvidelse af begrebet linkede lister. Et binært træ har to pointere, en venstre og en højre. Hver side kan yderligere forgrene sig for at danne yderligere noder, som hver node også har to pointere. Lær mere om Binært træ i datastruktur hvis du er interesseret.
55) Ikke alle reserverede ord er skrevet med små bogstaver. Sandt eller falsk?
FALSK. Alle reserverede ord skal skrives med små bogstaver; ellers ville C-kompileren fortolke dette som uidentificeret og ugyldigt.
56) Hvad er forskellen mellem udtrykket "++a" og "a++"?
I det første udtryk ville stigningen ske først på variabel a, og den resulterende værdi vil være den, der skal bruges. Dette er også kendt som et præfiks-tilvækst. I det andet udtryk vil den aktuelle værdi af variabel a være den, der skal bruges i en operation, før værdien af a selv øges. Dette er også kendt som postfix increment.
57) Hvad ville der ske med X i dette udtryk: X += 15; (forudsat at værdien af X er 5)
X +=15 er en kort metode til at skrive X = X + 15, så hvis startværdien af X er 5, så er 5 + 15 = 20.
58) I C-sprog er variablerne NAME, name og Name alle de samme. Sandt eller falsk?
FALSK. C-sprog er et sprog, der skelner mellem store og små bogstaver. Derfor er NAVN, navn og navn tre unikt forskellige variabler.
59) Hvad er en endeløs loop?
En endeløs løkke kan betyde to ting. Den ene er, at den er designet til at sløjfe kontinuerligt, indtil betingelsen i løkken er opfyldt, hvorefter en pausefunktion ville få programmet til at træde ud af løkken. En anden idé med en endeløs løkke er, når en forkert løkkebetingelse blev skrevet, hvilket får løkken til at køre fejlagtigt for evigt. Endeløse loops omtales ofte som uendelige loops.
60) Hvad er et programflowdiagram, og hvordan hjælper det med at skrive et program?
Et flowchart giver en visuel repræsentation af den trinvise procedure for at løse et givent problem. Flowdiagrammer er lavet af symboler, med hvert symbol i form af forskellige former. Hver form kan repræsentere en bestemt enhed inden for hele programstrukturen, såsom en proces, en betingelse eller endda en input/output fase.
61) Hvad er der galt med denne programerklæring? ugyldig = 10;
Ordet void er et reserveret ord i C-sprog. Du kan ikke bruge reserverede ord som en brugerdefineret variabel.
62) Er denne programerklæring gyldig? INT = 10.50;
Forudsat at INT er en variabel af typen float, er denne sætning gyldig. Man kan tro, at INT er et reserveret ord og ikke må bruges til andre formål. Husk dog, at reserverede ord er udtrykt med små bogstaver, så C-kompileren vil ikke fortolke dette som et reserveret ord.
63) Hvad er egentlige argumenter?
Når du opretter og bruger funktioner, der skal udføre en handling på nogle givne værdier, skal du overføre disse givne værdier til den funktion. De værdier, der overføres til den kaldte funktion, kaldes faktiske argumenter.
64) Hvad er en newline escape-sekvens?
En ny linje-escape-sekvens er repræsenteret af tegnet \n. Dette bruges til at indsætte en ny linje, når data vises på outputskærmen. Flere mellemrum kan tilføjes ved at indsætte flere \n tegn. For eksempel ville \n\n indsætte to mellemrum. En nylinje-escape-sekvens kan placeres før eller efter det faktiske outputudtryk.
65) Hvad er output omdirigering?
Det er processen med at overføre data til en alternativ outputkilde ud over skærmen. Omdirigering af output tillader et program at få sit output gemt i en fil. Hvis du f.eks. har et program ved navn COMPUTE, så...ping Dette på kommandolinjen som COMPUTE >DATA kan acceptere input fra brugeren, udføre bestemte beregninger og derefter omdirigere outputtet til en fil med navnet DATA i stedet for at vise det på skærmen.
66) Hvad er køretidsfejl?
Disse er fejl, der opstår, mens programmet køres. Et almindeligt tilfælde, hvor runtime-fejl kan ske, er, når du forsøger at dividere et tal med nul. Når der opstår køretidsfejl, vil programafviklingen holde pause, hvilket viser, hvilken programlinje der forårsagede fejlen.
67) Hvad er forskellen mellem funktionerne abs() og fabs()?
Disse 2 funktioner udfører stort set den samme handling, som er at få den absolutte værdi af den givne værdi. Abs() bruges til heltalværdier, mens fabs() bruges til flydende typetal. Også prototypen for abs() er under , mens fabs() er under .
68) Hvad er formelle parametre?
Ved brug af funktioner i et C-program indeholder formelle parametre de værdier, der blev sendt af den kaldende funktion. Værdierne erstattes i disse formelle parametre og bruges i alle operationer som angivet i hoveddelen af den kaldte funktion.
69) Hvad er kontrolstrukturer?
Kontrolstrukturer tager ansvaret for, hvilke instruktioner der skal udføres i et program. Dette betyder, at programflow ikke nødvendigvis flytter sig fra den ene sætning til den næste, men derimod skal nogle alternative dele muligvis overføres til eller omgås fra, afhængigt af resultatet af de betingede erklæringer.
70) Skriv et simpelt kodefragment, der kontrollerer, om et tal er positivt eller negativt
If (num>=0)
printf("number is positive");
else
printf ("number is negative");
71) Hvornår er en "switch"-erklæring at foretrække frem for en "hvis"-erklæring?
skifte erklæring bruges bedst, når der er tale om valg baseret på en enkelt variabel eller et enkelt udtryk. Switch-sætninger kan dog kun evaluere heltal- og tegndatatyper.
72) Hvad er globale variabler, og hvordan erklærer man dem?
Globale variabler er variabler, der kan tilgås og manipuleres overalt i programmet. For at gøre en variabel global skal du placere variabeldeklarationen på den øverste del af programmet lige efter afsnittet med præprocessordirektiver.
73) Hvad er opregnede typer?
Opregnede typer gør det muligt for programmøren at bruge mere meningsfulde ord som værdier for en variabel. Hvert element i den optalte typevariabel er faktisk forbundet med en numerisk kode. For eksempel kan man oprette en optalt typevariabel ved navn DAYS, hvis værdier er Monday, tirsdag... søndag.
74) Hvad gør funktionen toupper()?
Det bruges til at konvertere et hvilket som helst bogstav til dets store bogstaver. Toupper() funktionsprototype er erklæret i . Bemærk, at denne funktion kun konverterer et enkelt tegn og ikke en hel streng.
75) Er det muligt at have en funktion som parameter i en anden funktion?
Ja, det er tilladt i C-programmering. Du skal blot inkludere hele funktionsprototypen i parameterfeltet for den anden funktion, hvor den skal bruges.
76) Hvad er multidimensionelle arrays?
Multidimensionelle arrays er i stand til at lagre data i en to eller flere dimensionel struktur. For eksempel kan du bruge et 2-dimensionelt array til at gemme brikkernes aktuelle position i et skakspil eller spillernes position i et tic-tac-toe-program.
77) Hvilken funktion i C kan bruges til at tilføje en streng til en anden streng?
Strcat-funktionen. Det kræver to parametre, kildestrengen og strengværdien, der skal tilføjes til kildestrengen.
78) Hvad er forskellen mellem funktionerne getch() og getche()?
Begge funktioner accepterer en tegninputværdi fra brugeren. Når du bruger getch(), vil den tast, der blev trykket, ikke vises på skærmen, og den fanges automatisk og tildeles til en variabel. Når du bruger getche(), vil den tast, der blev trykket af brugeren, vises på skærmen, samtidig med at den er tildelt en variabel.
79) Udfører disse to programsætninger det samme output? 1) scanf(“%c”, &bogstav); 2) bogstav=getchar()
Ja, de gør begge præcis det samme, som er at acceptere den næste tast, der trykkes af brugeren, og tildele den til variabelt navngivet bogstav.
80) Hvad er strukturtyper i C?
Strukturtyper bruges primært til at gemme poster. En post består af relaterede felter. Dette gør det nemmere at organisere en gruppe af relaterede data.
81) Hvad betyder tegnene "r" og "w", når du skriver programmer, der vil gøre brug af filer?
"r" betyder "læst" og vil åbne en fil som input, hvori data skal hentes. "w" betyder "skriv", og vil åbne en fil til output. Tidligere data, der blev gemt på den fil, vil blive slettet.
82) Hvad er forskellen mellem tekstfiler og binære filer?
Tekstfiler indeholder data, der let kan forstås af mennesker. Det inkluderer bogstaver, tal og andre tegn. På den anden side indeholder binære filer 1'ere og 0'er, som kun computere kan fortolke.
83) er det muligt at oprette dine egne header-filer?
Ja, det er muligt at oprette en tilpasset header-fil. Du skal blot inkludere de funktionsprototyper, du vil bruge i dit program, og bruge #include-direktivet efterfulgt af navnet på din header-fil.
84) Hvad er dynamisk datastruktur?
Dynamisk datastruktur giver et middel til at gemme data mere effektivt i hukommelsen. Brug af Bruger dynamisk hukommelsesallokering, vil dit program få adgang til hukommelsespladser efter behov. Dette er i modsætning til statisk datastruktur, hvor programmøren skal angive et fast antal hukommelsesplads, der skal bruges i programmet.
85) Hvad er de forskellige datatyper i C?
Det basale datatyper i C er int, char og float. Int bruges til at erklære variabler, der vil gemme heltalsværdier. Float bruges til at gemme reelle tal. Char kan gemme individuelle karakterværdier.
86) Hvad er den generelle form for et C-program?
AC-programmet begynder med præprocessor-direktiverne, hvor programmøren vil specificere hvilken header-fil og hvilke konstanter (hvis nogen) der skal bruges. Dette efterfølges af hovedfunktionsoverskriften. Inden for hovedfunktionen ligger variabeldeklarationen og programerklæringen.
87) Hvad er fordelen ved en random access-fil?
Hvis mængden af data, der er lagret i en fil, er ret stor, vil brugen af tilfældig adgang give dig mulighed for at søge gennem den hurtigere. Hvis det havde været en sekventiel adgangsfil, skulle du gennemgå én post ad gangen, indtil du når måldataene. En tilfældig adgangsfil lader dig hoppe direkte til måladressen, hvor data er placeret.
88) Hvad vil der ske i en switch-sætning, hvis en break-sætning udelades?
Hvis en pauseerklæring ikke blev placeret i slutningen af en bestemt sagsdel? Det vil gå videre til den næste sagsdel, hvilket muligvis forårsager forkert output.
89) Beskriv hvordan arrays kan overføres til en brugerdefineret funktion
En ting at bemærke er, at du ikke kan overføre hele arrayet til en funktion. I stedet sender du en markør til den, der vil pege på det første element i arrayet i hukommelsen. For at gøre dette skal du angive navnet på arrayet uden parenteser.
90) Hvad er pointers?
Pointer peger til bestemte områder i hukommelsen. Pointere indeholder adressen på en variabel, som igen kan indeholde en værdi eller endda en adresse til en anden hukommelse.
91) Kan du overføre en hel struktur til funktioner?
Ja, det er muligt at overføre en hel struktur til en funktion i et opkald efter metodestil. Nogle programmører foretrækker dog at erklære strukturen globalt og derefter overføre en variabel af denne strukturtype til en funktion. Denne metode hjælper med at opretholde konsistens og ensartethed med hensyn til argumenttype.
92) Hvad er gets()-funktionen?
gets() function tillader en fuld linje dataindtastning fra brugeren. Når brugeren trykker på enter-tasten for at afslutte indtastningen, lagres hele linjen af tegn i en strengvariabel. Bemærk at enter-tasten ikke er inkluderet i variablen, men i stedet placeres en nulterminator \0 efter det sidste tegn.
93) %-symbolet har en speciel anvendelse i en printf-sætning. Hvordan ville du placere denne karakter som en del af outputtet på skærmen?
Du kan gøre dette ved at bruge %% i printf-sætningen. For eksempel kan du skrive printf(“10%%”) for at få outputtet til at blive vist som 10% på skærmen.
94) Hvordan søger man data i en datafil ved hjælp af random access-metoden?
Brug fseek() funktion til at udføre random access input/output på en fil. Efter at filen blev åbnet af fopen()-funktionen, ville fseek kræve tre parametre for at fungere: en filmarkør til filen, antallet af bytes, der skal søges, og oprindelsespunktet i filen.
95) Er kommentarer inkluderet i kompileringsfasen og placeret i EXE-filen også?
Nej, kommentarer, som kompilatoren stødte på, ses bort fra. Kommentarer er for det meste kun til vejledning af programmøren og har ikke nogen anden væsentlig brug i programmets funktionalitet.
96) Er der en indbygget funktion i C, der kan bruges til at sortere data?
Ja, brug qsort() fungere. Det er også muligt at oprette brugerdefinerede funktioner til sortering, såsom dem, der er baseret på ballonsorterings- og boblesorteringsalgoritmen.
97) Hvad er fordelene og ulemperne ved en bunke?
Lagring af data på heapen er langsommere, end det ville tage, når du bruger stakken. Men den største fordel ved at bruge heapen er dens fleksibilitet. Det er fordi hukommelsen i denne struktur kan allokeres og fjernes i en hvilken som helst bestemt rækkefølge. Langsomhed i heapen kan kompenseres, hvis en algoritme var godt designet og implementeret.
98) Hvordan konverterer man strenge til tal i C?
Du kan skrive dine egne funktioner til at lave streng til tal konverteringer, eller i stedet bruge C's indbyggede funktioner. Du kan bruge atof til at konvertere til en flydende kommaværdi, atoi til at konvertere til en heltalsværdi og atol til at konvertere til en lang heltalsværdi.
99) Opret et simpelt kodefragment, der vil bytte værdierne af to variable num1 og num2.
int temp; temp = num1; num1 = num2; num2 = temp;
100) Hvad er brugen af et semikolon (;) i slutningen af hver programsætning?
Det har at gøre med parsing-processen og kompileringen af koden. Et semikolon fungerer som en afgrænsning, så compileren ved, hvor hver sætning slutter, og kan fortsætte med at opdele sætningen i mindre elementer til syntakskontrol.
Disse interviewspørgsmål vil også hjælpe i din viva(orals)
