Top 100 de întrebări și răspunsuri la interviu de programare C (PDF)

Iată întrebările și răspunsurile la interviu de programare C pentru candidații mai proaspeți, precum și cu experiență, pentru a obține jobul visat.

 

Întrebări și răspunsuri la interviu de programare C de bază pentru cei care sunt proaspăți

1) Cum construiți o instrucțiune de creștere sau o instrucțiune de reducere în C?

Există de fapt două moduri prin care poți face asta. Una este să utilizați operatorul de creștere ++ și operatorul de decrementare –. De exemplu, instrucțiunea „x++” înseamnă creșterea valorii lui x cu 1. La fel, instrucțiunea „x –” înseamnă decrementarea valorii lui x cu 1. O altă modalitate de a scrie instrucțiunile de creștere este utilizarea semnului convențional + plus. sau – semnul minus. În cazul lui „x++”, un alt mod de a-l scrie este „x = x +1”.

👉 Descărcare PDF gratuită: Întrebări și răspunsuri la interviu de programare C >>


2) Care este diferența dintre Apel după valoare și Apel prin referință?

Când utilizați Call by Value, trimiteți valoarea unei variabile ca parametru unei funcții, în timp ce Call by Reference trimite adresa variabilei. De asemenea, sub Call by Value, valoarea din parametru nu este afectată de nicio operațiune care are loc, în timp ce în cazul Call by Reference, valorile pot fi afectate de procesul din cadrul funcției.

Întrebări și răspunsuri la interviu de programare C


3) Unii programatori își depanează programele punând simboluri de comentarii pe unele coduri în loc să le ștergă. Cum ajută acest lucru la depanare?

Plasarea simbolurilor de comentariu /* */ în jurul unui cod, denumită și „comentare”, este o modalitate de a izola unele coduri despre care credeți că ar putea cauza erori în program, fără a șterge codul. Ideea este că, dacă codul este de fapt corect, pur și simplu eliminați simbolurile de comentariu și continuați. De asemenea, vă economisește timp și efort atunci când trebuie să reintroduceți codurile dacă le-ați șters în primul rând.


4) Care este codul echivalent al următoarei instrucțiuni în format WHILE LOOP?

for (a=1; a<=100; a++)

printf ("%d\n", a * a);

Răspuns:

a=1;

while (a<=100) {

printf ("%d\n", a * a);

a++;

}

5) Ce este o stivă?

O stivă este o formă a unei structuri de date. Datele sunt stocate în stive folosind abordarea FILO (First In Last Out). În orice caz particular, doar partea de sus a stivei este accesibilă, ceea ce înseamnă că pentru a prelua datele care sunt stocate în interiorul stivei, cele din partea superioară trebuie extrase mai întâi. Stocarea datelor într-o stivă este denumită și PUSH, în timp ce recuperarea datelor este denumită POP.


6) Ce este un fișier de acces secvenţial?

Când scrieți programe care vor stoca și prelua date într-un fișier, este posibil să desemnați acel fișier în diferite forme. Un fișier de acces secvenţial este astfel încât datele sunt salvate în ordine secvenţială: o dată este plasată în fişier după alta. Pentru a accesa anumite date din fișierul de acces secvenţial, datele trebuie citite câte o dată, până când se ajunge la cea potrivită.


7) Ce este inițializarea variabilelor și de ce este importantă?

Aceasta se referă la procesul în care unei variabile i se atribuie o valoare inițială înainte de a fi utilizată în program. Fără inițializare, o variabilă ar avea o valoare necunoscută, care poate duce la ieșiri imprevizibile atunci când este utilizată în calcule sau alte operațiuni.


8 Ce este programarea spaghetelor?

Programarea spaghetti se referă la coduri care tind să se încurce și să se suprapună pe tot parcursul programului. Această abordare nestructurată a codificării este de obicei atribuită lipsei de experiență din partea programatorului. Programarea spaghetti face un program complex și dificilă analiza codurilor, așa că trebuie evitată pe cât posibil.


9) Diferențierea codurilor sursă de codurile obiect

Codurile sursă sunt coduri care au fost scrise de programator. Este alcătuit din comenzi și alte cuvinte cheie asemănătoare englezei care ar trebui să instruiască computerul ce trebuie să facă. Cu toate acestea, computerele nu ar putea înțelege codurile sursă. Prin urmare, codurile sursă sunt compilate folosind un compilator. Ieșirile rezultate sunt coduri obiect, care sunt într-un format care poate fi înțeles de procesorul computerului. În programare C, codurile sursă sunt salvate cu extensia de fișier .C, în timp ce codurile obiect sunt salvate cu extensia de fișier .OBJ


10) În programarea C, cum inserați ghilimele (' și “) în ecranul de ieșire?

Aceasta este o problemă comună pentru începători, deoarece ghilimele fac în mod normal parte dintr-o instrucțiune printf. Pentru a insera ghilimelele ca parte a rezultatului, utilizați specificatorii de format \' (pentru ghilimele simple) și \” (pentru ghilimele duble).


11) La ce folosește un caracter „\0”?

Este denumit un caracter nul final și este folosit în primul rând pentru a afișa sfârșitul unei valori șir.


12) Care este diferența dintre simbolul = și simbolul ==?

Simbolul = este adesea folosit în operațiile matematice. Este folosit pentru a atribui o valoare unei variabile date. Pe de altă parte, simbolul ==, cunoscut și ca „egal cu” sau „echivalent cu”, este un operator relațional care este folosit pentru a compara două valori.


13) Ce este operatorul modul?

Operatorul de modul scoate restul unei diviziuni. Utilizează simbolul procentaj (%). De exemplu: 10 % 3 = 1, adică atunci când împărțiți 10 la 3, restul este 1.


14) Ce este o buclă imbricată?

O buclă imbricată este o buclă care rulează într-o altă buclă. Puneți-l într-un alt sens, aveți o buclă interioară care se află în interiorul unei bucle exterioare. În acest scenariu, bucla interioară este efectuată de un număr de ori, așa cum este specificat de bucla exterioară. Pentru fiecare rotire a buclei exterioare, se execută mai întâi bucla interioară.


15) Care dintre următorii operatori este incorect și de ce? ( >=, <=, <>, ==)

<> este incorectă. Deși acest operator este interpretat corect ca „nu este egal cu” în scrierea declarațiilor condiționale, nu este operatorul adecvat care trebuie utilizat în programare C. În schimb, operatorul != trebuie folosit pentru a indica condiția „nu este egală cu”.


16) Comparați și contrastați compilatoarele de la interpreți.

Compilatorii și interpreții se ocupă adesea de modul în care sunt executate codurile de program. Interpreții execută codurile de program pe rând, în timp ce compilatorii iau programul ca întreg și îl convertesc în cod obiect, înainte de a-l executa. Diferența cheie aici este că, în cazul interpreților, un program poate întâmpina erori de sintaxă în mijlocul execuției și se va opri de acolo. Pe de altă parte, compilatorii verifică sintaxa întregului program și vor trece la execuție numai atunci când nu se găsesc erori de sintaxă.


17) Cum declari o variabilă care va deține valori șiruri?

Cuvântul cheie char poate conține doar o valoare de caracter la un moment dat. Prin crearea unei matrice de caractere, puteți stoca valori de șir în ea. Exemplu: „char MyName[1]; ” declară o variabilă șir numită MyName care poate conține maximum 50 de caractere.


18) Pot fi folosite parantezele { } pentru a include o singură linie de cod?

În timp ce parantezele sunt folosite în principal pentru a grupa mai multe linii de coduri, va funcționa în continuare fără eroare dacă le-ați folosit pentru o singură linie. Unii programatori preferă această metodă ca modalitate de organizare a codurilor pentru a le face să pară mai clar, mai ales în declarațiile condiționate.


19) Ce sunt fișierele antet și care sunt utilizările lor în programarea C?

Fișierele antet sunt cunoscute și ca fișiere de bibliotecă. Acestea conțin două lucruri esențiale: definițiile și prototipurile funcțiilor utilizate într-un program. Mai simplu spus, comenzile pe care le utilizați în programarea C sunt de fapt funcții care sunt definite din interiorul fiecărui fișier antet. Fiecare fișier antet conține un set de funcții. De exemplu: stdio.h este un fișier antet care conține definiții și prototipuri de comenzi precum printf și scanf.


20) Ce este eroarea de sintaxă?

Erorile de sintaxă sunt asociate cu greșeli în utilizarea unui limbaj de programare. Poate că o comandă care a fost scrisă greșit sau o comandă care trebuie introdusă în modul minuscule, dar a fost introdusă cu un caracter majuscule. Un simbol greșit, sau lipsa unui simbol, undeva într-o linie de cod poate duce, de asemenea, la o eroare de sintaxă.


21) Ce sunt variabilele și în ce fel este diferită de constante?

Variabilele și constantele pot arăta la început similare, în sensul că ambele sunt identificatori formați dintr-un caracter sau mai multe caractere (litere, cifre și câteva simboluri permise). Ambele vor avea, de asemenea, o anumită valoare. Valorile deținute de o variabilă pot fi modificate pe tot parcursul programului și pot fi utilizate în majoritatea operațiilor și calculelor. Constantelor li se dau valori doar o singură dată, plasate la începutul unui program. Această valoare nu este modificată în program. De exemplu, puteți atribui o constantă numită PI și îi puteți da o valoare 3.1415 . Apoi îl puteți folosi ca PI în program, în loc să trebuiască să scrieți 3.1415 de fiecare dată când aveți nevoie de el.


22) Cum accesați valorile dintr-o matrice?

Matricele conțin un număr de elemente, în funcție de dimensiunea pe care i-ați dat-o în timpul declarației variabilelor. Fiecărui element i se atribuie un număr de la 0 la numărul de elemente-1. Pentru a atribui sau a prelua valoarea unui anumit element, consultați numărul elementului. De exemplu: dacă aveți o declarație care spune „intscores[5];”, atunci aveți 5 elemente accesibile, și anume: scors[0], scores[1], scores[2], scores[3] și scors[4 ].


23) Pot folosi tipul de date „int” pentru a stoca valoarea 32768? De ce?

Nu. Tipul de date „int” este capabil să stocheze valori de la -32768 la 32767. Pentru a stoca 32768, puteți utiliza în schimb „long int”. De asemenea, puteți utiliza „unsigned int”, presupunând că nu intenționați să stocați valori negative.


24) Pot fi combinați doi sau mai mulți operatori precum \n și \t într-o singură linie de cod de program?

Da, este perfect valabil să combinați operatori, mai ales dacă este nevoie.
De exemplu: poți avea un cod ca printf (“Hello\n\n\’World\'”) pentru a afișa textul „Bună ziua” pe prima linie și „Lumea” între ghilimele simple pentru a apărea pe următoarele două rânduri.

25) De ce nu toate fișierele de antet sunt declarate în fiecare program C?

Alegerea declarării unui fișier antet în partea de sus a fiecărui program C ar depinde de ce comenzi/funcții vei folosi în acel program. Deoarece fiecare fișier antet conține diferite definiții de funcție și prototip, veți folosi doar acele fișiere de antet care ar conține funcțiile de care veți avea nevoie. Declararea tuturor fișierelor antet din fiecare program ar crește doar dimensiunea și încărcarea generală a fișierului și nu este considerat un stil de programare bun.


26) Când este folosit cuvântul cheie „void” într-o funcție?

Când declarați funcții, veți decide dacă acea funcție va returna o valoare sau nu. Dacă acea funcție nu va returna o valoare, cum ar fi atunci când scopul unei funcții este de a afișa unele ieșiri pe ecran, atunci „void” trebuie plasat în partea din stânga a antetului funcției. Când se așteaptă o valoare returnată după execuția funcției, tipul de date al valorii returnate este plasat în loc de „void”.


27) Ce sunt enunțurile compuse?

Instrucțiunile compuse sunt alcătuite din două sau mai multe instrucțiuni de program care sunt executate împreună. Acest lucru se întâmplă de obicei în timpul manipulării condițiilor în care o serie de instrucțiuni sunt executate atunci când este evaluat un TRUE sau FALSE. Instrucțiunile compuse pot fi executate și în cadrul unei bucle. Parantezele { } sunt plasate înainte și după instrucțiunile compuse.


28) Care este semnificația unui algoritm pentru programarea C?

Înainte ca un program să poată fi scris, mai întâi trebuie creat un algoritm. Un algoritm oferă o procedură pas cu pas despre cum poate fi derivată o soluție. De asemenea, acționează ca un plan al modului în care un program va începe și se va termina, inclusiv ce proces și calcule sunt implicate.


29) Care este avantajul unui tablou față de variabilele individuale?

Când stocați mai multe date asociate, este o idee bună să utilizați matrice. Acest lucru se datorează faptului că tablourile sunt denumite folosind doar un cuvânt urmat de un număr de element. De exemplu: pentru a stoca cele 1 rezultate ale testului unui student, se pot folosi 10 nume de variabile diferite (grade1, grade10, grade1... grade2). La matrice, se folosește un singur nume, restul sunt accesibile prin numele de index (nota[3], nota[10], nota[1]… nota[0]).


30) Scrieți o instrucțiune buclă care va afișa următoarea ieșire:

1

12

123

1234

12345

Răspuns:

for (a=1; a<=5; i++) {

for (b=1; b<=a; b++)

printf("%d",b);

printf("\n");

}

C Programare Întrebări și răspunsuri la interviu pentru cei cu experiență

31) Ce este greșit în această afirmație? scanf(„%d”, whatnumber);

Un ampersand și un simbol trebuie să fie plasate înaintea numelui variabilei whatnumber. Plasarea și înseamnă că orice valoare întreagă introdusă de utilizator este stocată la „adresa” numelui variabilei. Aceasta este o greșeală comună pentru programatori, care duce adesea la erori logice.


32) Cum se generează numere aleatoare în C?

Numerele aleatoare sunt generate în C folosind rand() command. De exemplu: anyNum = rand() va genera orice număr întreg începând cu 0, presupunând că anyNum este o variabilă de tip întreg.


33) Care ar putea fi problema dacă un nume valid de funcție, cum ar fi tolower() este raportat de compilatorul C ca nedefinit?

Cel mai probabil motiv din spatele acestei erori este că fișierul antet pentru acea funcție nu a fost indicat în partea de sus a programului. Fișierele antet conțin definiția și prototipul pentru funcțiile și comenzile utilizate într-un program C. În cazul „tolower()”, codul „#include ” trebuie să fie prezent la începutul programului.


34) Ce sunt comentariile și cum le inserați într-un program C?

Comentarii sunt o modalitate excelentă de a pune câteva remarci sau descriere într-un program. Poate servi ca un memento despre ce este programul sau o descriere a motivului pentru care un anumit cod sau funcție a fost plasat acolo în primul rând. Comentariile încep cu /* și se termină cu */ caractere. Comentariile pot fi pe o singură linie sau chiar se pot întinde pe mai multe rânduri. Poate fi plasat oriunde în program.


35) Ce este depanarea?

Depanarea este procesul de identificare a erorilor în cadrul unui program. În timpul compilării programului, erorile găsite vor opri executarea completă a programului. În această stare, programatorul ar analiza posibilele părți în care a apărut eroarea. Depanarea asigură eliminarea erorilor și joacă un rol important în asigurarea faptului că rezultatul așteptat al programului este îndeplinit.


36) Ce face operatorul && într-un cod de program?

&& este, de asemenea, denumit operator AND. Când utilizați acest operator, toate condițiile specificate trebuie să fie TRUE înainte de a putea fi efectuată următoarea acțiune. Dacă aveți 10 condiții și toate, cu excepția uneia, nu reușesc să fie evaluate ca TRUE, întreaga declarație a condiției este deja evaluată ca FALSE


37) În programarea C, ce comandă sau cod poate fi folosit pentru a determina dacă un număr de par sau impar?

Nu există o singură comandă sau funcția în C care poate verifica dacă un număr este par sau impar. Cu toate acestea, acest lucru poate fi realizat prin împărțirea acelui număr la 2, apoi verificând restul. Dacă restul este 0, atunci acel număr este par, în caz contrar, este impar. Îl poți scrie în cod ca:

if (num % 2 == 0)

printf("EVEN");

else

printf("ODD");

38) Ce înseamnă formatul %10.2 când este inclus într-o instrucțiune printf?

Acest format este folosit pentru două lucruri: pentru a seta numărul de spații alocate pentru numărul de ieșire și pentru a seta numărul de zecimale. Numărul înainte de virgulă zecimală este pentru spațiul alocat, în acest caz ar aloca 10 spații pentru numărul de ieșire. Dacă numărul de spațiu ocupat de numărul de ieșire este mai mic de 10, caracterele de spațiu adițional vor fi inserate înaintea numărului de ieșire real. Numărul de după virgulă setează numărul de zecimale, în acest caz, este de 2 spații zecimale.


39) Ce sunt erorile logice și cum diferă de erorile de sintaxă?

Programul care conține erori logice tinde să treacă procesul de compilare, dar rezultatul rezultat poate să nu fie cel așteptat. Acest lucru se întâmplă atunci când în cod a fost introdusă o formulă greșită sau a fost executată o secvență greșită de comenzi. Erorile de sintaxă, pe de altă parte, se ocupă de comenzi incorecte care sunt scrise greșit sau nu sunt recunoscute de compilator.


40) Care sunt diferitele tipuri de structuri de control în programare?

Există 3 structuri principale de control în programare: secvență, selecție și repetiție. Controlul secvenţial urmează un flux de sus în jos în executarea unui program, astfel încât pasul 1 este mai întâi efectuat, urmat de pasul 2, până la îndeplinirea ultimului pas. Selecția se ocupă de instrucțiunile condiționate, ceea ce înseamnă că codurile sunt executate în funcție de evaluarea condițiilor ca fiind TRUE sau FALSE. Aceasta înseamnă, de asemenea, că nu toate codurile pot fi executate și că există fluxuri alternative în interior. Repetițiile sunt cunoscute și ca structuri de buclă și vor repeta una sau două instrucțiuni de program stabilite de un contor.


41) Ce este || operator și cum funcționează într-un program?

Cel || este cunoscut și ca operator SAU în programarea C. Când utilizați || pentru a evalua condițiile logice, orice condiție care se evaluează la TRUE va reda întreaga declarație de condiție ca TRUE.


42) Funcția „dacă” poate fi utilizată în compararea șirurilor de caractere?

Nu. Comanda „dacă” poate fi folosită doar pentru a compara valorile numerice și valorile unui singur caracter. Pentru compararea valorilor șirurilor, există o altă funcție numită strcmp care se ocupă în mod specific de șiruri.


43) Ce sunt directivele de preprocesor?

Directivele de preprocesor sunt plasate la începutul fiecărui program C. Aici sunt specificate fișierele de bibliotecă, care ar depinde de ce funcții vor fi utilizate în program. O altă utilizare a directivelor de preprocesor este declararea constantelor. Directivele de preprocesor încep cu simbolul #.


44) Care va fi rezultatul următoarei declarații condiționale dacă valoarea variabilei s este 10?

s >=10 && s < 25 && s!=12

Rezultatul va fi ADEVĂRAT. Deoarece valoarea lui s este 10, s >= 10 se evaluează la TRUE deoarece s nu este mai mare de 10, dar este totuși egal cu 10. s< 25 este, de asemenea, ADEVĂRAT deoarece 10 este mai mic decât 25. La fel, s!=12 , ceea ce înseamnă că s nu este egal cu 12, se evaluează la TRUE. && este operatorul AND și urmează regula conform căreia, dacă toate condițiile individuale sunt TRUE, întreaga declarație este TRUE.


45) Descrieți ordinea de prioritate în ceea ce privește operatorii din C.

Ordinea de prioritate determină ce operație trebuie să aibă loc mai întâi într-o instrucțiune de operație sau o instrucțiune condiționată. La cel mai mare nivel de prioritate se află operatorii unari !, +, – și &. Este urmat de operatorii matematici obișnuiți (*, / și modulul % mai întâi, urmați de + și -). Urmează operatorii relaționali <, <=, >= și >. Aceasta este apoi urmată de cei doi operatori de egalitate == și !=. Operatorii logici && și || sunt apoi evaluate. La ultimul nivel se află operatorul de atribuire =.


46) Ce este greșit cu această afirmație? myName = „Robin”;

Nu puteți utiliza semnul = pentru a atribui valori unei variabile șir. În schimb, utilizați funcția strcpy. Declarația corectă ar fi: strcpy(myName, „Robin”);


47) Cum se determină lungimea unei valori șir care a fost stocată într-o variabilă?

Pentru a obține lungimea unei valori șir, utilizați funcția strlen(). De exemplu, dacă aveți o variabilă numită FullName, puteți obține lungimea valorii șirului stocat folosind această instrucțiune: I = strlen(FullName); variabila I va avea acum lungimea caracterului valorii șirului.


48) Este posibil să inițializați o variabilă în momentul în care a fost declarată?

Da, nu trebuie să scrieți o declarație de atribuire separată după declarația variabilei, cu excepția cazului în care intenționați să o modificați mai târziu. De exemplu: planeta char[15] = „Pământ”; face două lucruri: declară o variabilă șir numită planetă, apoi o inițializează cu valoarea „Pământ”.


49) De ce limbajul C este considerat un limbaj de nivel mediu?

Acest lucru se datorează faptului că limbajul C este bogat în caracteristici care îl fac să se comporte ca un limbaj de nivel înalt și, în același timp, poate interacționa cu hardware-ul folosind metode de nivel scăzut. Utilizarea unei abordări bine structurate a programării, cuplată cu cuvinte asemănătoare englezei utilizate în funcții, îl face să acționeze ca un limbaj de nivel înalt. Pe de altă parte, C poate accesa direct structuri de memorie similare rutinelor limbajului de asamblare.


50) Care sunt diferitele extensii de fișiere implicate la programarea în C?

Codurile sursă în C sunt salvate cu extensia de fișier .C. Fișierele antet sau fișierele bibliotecă au extensia de fișier .H. De fiecare dată când un cod sursă de program este compilat cu succes, acesta creează un fișier obiect .OBJ și un fișier executabil .EXE.


51) Ce sunt cuvintele rezervate?

Cuvintele rezervate sunt cuvinte care fac parte din biblioteca standard de limbaj C. Aceasta înseamnă că cuvintele rezervate au o semnificație specială și, prin urmare, nu pot fi folosite în alte scopuri decât cele pentru care au fost destinate inițial. Exemple de cuvinte rezervate sunt int, void și return.


52) Ce sunt listele legate?

O listă legată este compusă din noduri care sunt conectate cu un altul. În programarea C, listele legate sunt create folosind pointeri. Utilizarea listelor legate este o modalitate eficientă de utilizare a memoriei pentru stocare.


53) Ce este FIFO?

În programarea C, există o structură de date cunoscută sub numele de coadă. În această structură, datele sunt stocate și accesate folosind formatul FIFO sau First-In-First-Out. O coadă reprezintă o linie în care primele date care au fost stocate vor fi și primele care sunt accesibile.


54) Ce sunt arborii binari?

Arborii binari sunt de fapt o extensie a conceptului de liste legate. Un arbore binar are doi indicatori, unul stâng și unul drept. Fiecare parte se poate ramifica în continuare pentru a forma noduri suplimentare, fiecare nod având și doi pointeri. Află mai multe despre Arborele binar în structura datelor dacă sunteți interesat.


55) Nu toate cuvintele rezervate sunt scrise cu litere mici. Adevărat sau fals?

FALS. Toate cuvintele rezervate trebuie scrise cu litere mici; în caz contrar, compilatorul C ar interpreta acest lucru ca neidentificat și invalid.


56) Care este diferența dintre expresia „++a” și „a++”?

În prima expresie, incrementul s-ar întâmpla mai întâi pe variabila a, iar valoarea rezultată va fi cea care va fi folosită. Acest lucru este cunoscut și ca un increment de prefix. În cea de-a doua expresie, valoarea curentă a variabilei a ar fi cea care trebuie utilizată într-o operație, înainte ca valoarea a în sine să fie incrementată. Acest lucru este cunoscut și sub numele de increment postfix.


57) Ce s-ar întâmpla cu X în această expresie: X += 15; (presupunând că valoarea lui X este 5)

X +=15 este o metodă scurtă de a scrie X = X + 15, deci dacă valoarea inițială a lui X este 5, atunci 5 + 15 = 20.


58) În limbajul C, variabilele NUME, nume și Nume sunt toate aceleași. Adevărat sau fals?

FALS. Limbajul C este un limbaj sensibil la majuscule. Prin urmare, NUME, nume și Nume sunt trei variabile unic diferite.


59) Ce este o buclă fără sfârșit?

O buclă fără sfârșit poate însemna două lucruri. Unul este că a fost proiectat să circule continuu până când condiția din buclă este îndeplinită, după care o funcție de pauză ar face ca programul să iasă din buclă. O altă idee a unei bucle fără sfârșit este atunci când a fost scrisă o condiție de buclă incorectă, ceea ce face ca bucla să ruleze eronat pentru totdeauna. Buclele fără sfârșit sunt adesea denumite bucle infinite.


60) Ce este o diagramă de flux de program și cum ajută la scrierea unui program?

O diagramă de flux oferă o reprezentare vizuală a procedurii pas cu pas către rezolvarea unei anumite probleme. Diagramele sunt realizate din simboluri, fiecare simbol sub formă de diferite forme. Fiecare formă poate reprezenta o anumită entitate în întreaga structură a programului, cum ar fi un proces, o condiție sau chiar o fază de intrare/ieșire.


61) Ce este în neregulă cu această instrucțiune de program? gol = 10;

Cuvântul gol este un cuvânt rezervat în limbajul C. Nu puteți folosi cuvinte rezervate ca variabilă definită de utilizator.


62) Este valabilă această declarație de program? INT = 10.50;

Presupunând că INT este o variabilă de tip float, această declarație este validă. Se poate crede că INT este un cuvânt rezervat și nu trebuie folosit în alte scopuri. Cu toate acestea, amintiți-vă că cuvintele rezervate sunt exprimate cu litere mici, astfel încât compilatorul C nu va interpreta acest lucru ca un cuvânt rezervat.


63) Care sunt argumentele reale?

Când creați și utilizați funcții care trebuie să efectueze o acțiune asupra unor valori date, trebuie să transmiteți aceste valori date acelei funcții. Valorile care sunt transmise în funcția apelată sunt denumite argumente reale.


64) Ce este o secvență de evadare newline?

O secvență de escape newline este reprezentată de caracterul \n. Acesta este folosit pentru a insera o nouă linie atunci când sunt afișate date în ecranul de ieșire. Mai multe spații pot fi adăugate inserând mai multe \n caractere. De exemplu, \n\n ar introduce două spații. O secvență de escape newline poate fi plasată înaintea expresiei de ieșire reală sau după.


65) Ce este redirecționarea ieșirii?

Este procesul de transfer de date către o sursă alternativă de ieșire, alta decât ecranul de afișare. Redirecționarea ieșirii permite unui program să aibă rezultatul salvat într-un fișier. De exemplu, dacă aveți un program numit COMPUTE, tastând acest lucru pe linia de comandă ca COMPUTE >DATA poate accepta intrare de la utilizator, poate efectua anumite calcule, apoi redirecționează rezultatul către un fișier numit DATA, în loc să îl afișeze pe ecran. .


66) Ce sunt erorile de rulare?

Acestea sunt erori care apar în timpul executării programului. Un exemplu obișnuit în care pot apărea erori de rulare este atunci când încercați să împărțiți un număr la zero. Când apar erori de rulare, execuția programului se va întrerupe, arătând ce linie de program a cauzat eroarea.


67) Care este diferența dintre funcțiile abs() și fabs()?

Aceste 2 funcții efectuează practic aceeași acțiune, care este de a obține valoarea absolută a valorii date. Abs() este folosit pentru valori întregi, în timp ce fabs() este folosit pentru numere de tip flotant. De asemenea, prototipul pentru abs() este sub , în timp ce fabs() este sub .


68) Care sunt parametrii formali?

În utilizarea funcțiilor într-un program C, parametrii formali conțin valorile care au fost transmise de funcția de apelare. Valorile sunt înlocuite în acești parametri formali și utilizate în orice operațiuni, așa cum este indicat în corpul principal al funcției apelate.


69) Ce sunt structurile de control?

Structurile de control preiau instrucțiunile care urmează să fie executate într-un program. Aceasta înseamnă că fluxul de program nu se poate muta neapărat de la o instrucțiune la următoarea, ci mai degrabă unele porțiuni alternative ar putea trebui să fie trecute sau ocolite din, în funcție de rezultatul instrucțiunilor condiționate.


70) Scrieți un fragment de cod simplu care va verifica dacă un număr este pozitiv sau negativ

If (num>=0)

printf("number is positive");

else

printf ("number is negative");

71) Când este de preferat o declarație „switch” față de o declarație „dacă”?

declarație de comutare este cel mai bine utilizat atunci când se ocupă de selecții bazate pe o singură variabilă sau expresie. Cu toate acestea, instrucțiunile switch pot evalua numai tipuri de date întregi și caractere.


72) Ce sunt variabilele globale și cum le declarați?

Variabilele globale sunt variabile care pot fi accesate și manipulate oriunde în program. Pentru a face o variabilă globală, plasați declarația variabilei în partea superioară a programului, imediat după secțiunea cu directivele preprocesorului.


73) Ce sunt tipurile enumerate?

Tipurile enumerate permit programatorului să folosească cuvinte mai semnificative ca valori pentru o variabilă. Fiecare articol din variabila tip enumerată este de fapt asociat cu un cod numeric. De exemplu, se poate crea o variabilă de tip enumerată numită DAYS ale cărei valori sunt Monday, marți… duminică.


74) Ce face funcția toupper()?

Este folosit pentru a converti orice literă în modul său majuscule. Prototipul funcției Toupper() este declarat în . Rețineți că această funcție va converti doar un singur caracter și nu un șir întreg.


75) Este posibil să aveți o funcție ca parametru într-o altă funcție?

Da, acest lucru este permis în programarea C. Trebuie doar să includeți întregul prototip al funcției în câmpul de parametri al celeilalte funcții în care urmează să fie utilizat.


76) Ce sunt tablourile multidimensionale?

Matricele multidimensionale sunt capabile să stocheze date într-o structură bidimensională sau mai multe. De exemplu, puteți folosi o matrice bidimensională pentru a stoca poziția curentă a pieselor într-un joc de șah sau poziția jucătorilor într-un program tic-tac-toe.


77) Ce funcție din C poate fi folosită pentru a adăuga un șir la un alt șir?

Funcția strcat. Este nevoie de doi parametri, șirul sursă și valoarea șirului de atașat la șirul sursă.


78) Care este diferența dintre funcțiile getch() și getche()?

Ambele funcții vor accepta o valoare introdusă de caractere de la utilizator. Când utilizați getch(), tasta care a fost apăsată nu va apărea pe ecran și este capturată și atribuită automat unei variabile. Când utilizați getche(), tasta care a fost apăsată de utilizator va apărea pe ecran, în același timp fiind atribuită unei variabile.


79) Aceste două instrucțiuni de program efectuează aceeași ieșire? 1) scanf(„%c”, &letter); 2) letter=getchar()

Da, amândoi fac exact același lucru, și anume să accepte următoarea tastă apăsată de utilizator și să o atribuie variabilei numite literă.


80) Care sunt tipurile de structură în C?

Tipurile de structură sunt utilizate în principal pentru a stoca înregistrări. O înregistrare este formată din câmpuri înrudite. Acest lucru facilitează organizarea unui grup de date asociate.


81) Ce înseamnă caracterele „r” și „w” atunci când scriu programe care vor folosi fișiere?

„r” înseamnă „citește” și va deschide un fișier ca intrare în care datele urmează să fie preluate. „w” înseamnă „scriere” și va deschide un fișier pentru ieșire. Datele anterioare care au fost stocate în acel fișier vor fi șterse.


82) Care este diferența dintre fișierele text și fișierele binare?

Fișierele text conțin date care pot fi ușor înțelese de oameni. Include litere, cifre și alte caractere. Pe de altă parte, fișierele binare conțin 1 și 0 pe care doar computerele le pot interpreta.


83) este posibil să vă creați propriile fișiere antet?

Da, este posibil să creați un fișier antet personalizat. Doar includeți în el prototipurile de funcție pe care doriți să le utilizați în programul dvs. și utilizați directiva #include urmată de numele fișierului antet.


84) Ce este structura dinamică a datelor?

Structura dinamică a datelor oferă un mijloc de stocare a datelor mai eficient în memorie. Utilizarea Utilizarea alocarea memoriei dinamice, programul dvs. va accesa spații de memorie după cum este necesar. Acest lucru este în contrast cu structura de date statică, în care programatorul trebuie să indice un număr fix de spațiu de memorie care trebuie utilizat în program.


85) Care sunt diferitele tipuri de date în C?

Baza tipuri de date în C sunt int, char și float. Int este folosit pentru a declara variabile care vor stoca valori întregi. Float este folosit pentru a stoca numere reale. Char poate stoca valori individuale ale caracterelor.


86) Care este forma generală a unui program C?

Programul AC începe cu directivele preprocesorului, în care programatorul ar specifica ce fișier antet și ce constante (dacă există) să fie utilizate. Acesta este urmat de titlul funcției principale. În cadrul funcției principale se află declarația variabilei și instrucțiunea programului.


87) Care este avantajul unui fișier cu acces aleatoriu?

Dacă cantitatea de date stocată într-un fișier este destul de mare, utilizarea accesului aleatoriu vă va permite să căutați mai rapid prin el. Dacă ar fi fost un fișier de acces secvențial, ar trebui să parcurgeți câte o înregistrare până când ajungeți la datele țintă. Un fișier cu acces aleatoriu vă permite să săriți direct la adresa țintă unde se află datele.


88) Într-o instrucțiune switch, ce se va întâmpla dacă o instrucțiune break este omisă?

Dacă o instrucțiune break nu a fost plasată la sfârșitul unei anumite porțiuni de caz? Se va trece la următoarea porțiune de caz, posibil cauzând o ieșire incorectă.


89) Descrieți modul în care matricele pot fi transmise unei funcții definite de utilizator

Un lucru de remarcat este că nu puteți transmite întreaga matrice unei funcții. În schimb, îi treceți un pointer care va indica primul element al matricei din memorie. Pentru a face acest lucru, indicați numele matricei fără paranteze.


90) Ce sunt indicii?

Pointers indică la anumite zone din memorie. Pointerii conțin adresa unei variabile, care la rândul său poate conține o valoare sau chiar o adresă către o altă memorie.


91) Puteți trece o structură întreagă la funcții?

Da, este posibil să treceți o structură întreagă unei funcții într-un stil de apel prin metodă. Cu toate acestea, unii programatori preferă să declare structura global, apoi să transmită o variabilă de acel tip de structură unei funcții. Această metodă ajută la menținerea consistenței și uniformității în ceea ce privește tipul de argument.


92) Ce este funcția gets()?

gets() function permite o introducere de date pe linie completă de la utilizator. Când utilizatorul apasă tasta Enter pentru a termina introducerea, întreaga linie de caractere este stocată într-o variabilă șir. Rețineți că tasta enter nu este inclusă în variabilă, ci în schimb un terminator nul \0 este plasat după ultimul caracter.


93) Simbolul % are o utilizare specială într-o instrucțiune printf. Cum ați plasa acest personaj ca parte a rezultatului de pe ecran?

Puteți face acest lucru folosind %% în instrucțiunea printf. De exemplu, puteți scrie printf(„10%%”) pentru ca rezultatul să apară ca 10% pe ecran.


94) Cum căutați date într-un fișier de date folosind metoda de acces aleatoriu?

Folosește fseek() funcția de a efectua intrare/ieșire cu acces aleatoriu într-un fișier. După ce fișierul a fost deschis de către funcția fopen(), fseek ar necesita trei parametri pentru a funcționa: un indicator de fișier către fișier, numărul de octeți de căutat și punctul de origine în fișier.


95) Comentariile sunt incluse în timpul etapei de compilare și plasate și în fișierul EXE?

Nu, comentariile care au fost întâlnite de compilator sunt ignorate. Comentariile sunt în mare parte doar pentru îndrumarea programatorului și nu au nicio altă utilizare semnificativă în funcționalitatea programului.


96) Există o funcție încorporată în C care poate fi utilizată pentru sortarea datelor?

Da, folosește qsort() funcţie. De asemenea, este posibil să se creeze funcții definite de utilizator pentru sortare, cum ar fi cele bazate pe algoritmul de sortare cu baloane și sortare cu bule.


97) Care sunt avantajele și dezavantajele unei grămezi?

Stocarea datelor pe heap este mai lentă decât ar fi nevoie atunci când se folosește stiva. Cu toate acestea, principalul avantaj al utilizării heap-ului este flexibilitatea acestuia. Asta pentru că memoria din această structură poate fi alocată și eliminată în orice ordine anume. Lentoarea în heap poate fi compensată dacă un algoritm a fost bine proiectat și implementat.


98) Cum convertiți șirurile în numere în C?

Puteți scrie propriile funcții pentru a face conversii șir în număr sau, în schimb, puteți utiliza funcțiile C încorporate. Puteți utiliza atof pentru a converti într-o valoare în virgulă mobilă, atoi pentru a converti într-o valoare întreagă și atol pentru a converti într-o valoare întregă lungă.


99) Creați un fragment de cod simplu care va schimba valorile a două variabile num1 și num2.

int temp;

temp = num1;

num1 = num2;

num2 = temp;

100) La ce folosește un punct și virgulă (;) la sfârșitul fiecărei instrucțiuni de program?

Are de-a face cu procesul de analizare și compilarea codului. Un punct și virgulă acționează ca un delimitator, astfel încât compilatorul știe unde se termină fiecare instrucțiune și poate continua să împartă instrucțiunea în elemente mai mici pentru verificarea sintaxei.

Aceste întrebări de interviu vă vor ajuta, de asemenea, în viva (orale)