Intrebari si raspunsuri pentru interviu C

Va prezentam inca un set de 7 intrebari centrate pe limbajul de programare C, care vor necesita un nivel mediu de cunostinte.

1) Ce va afisa urmatoarea portiune de cod ?

int main(int argc, char** argv) { int x = 3; printf("%d", x++ + ++x); return 1; }






2) Care functie este mai rapida, presupunand ca datele de intrare pentru cele doua functii au aceleasi dimensiuni ?




3) Care este varianta corectă pentru a declara un pointer cu nume la funcţia pMyFunc care returnează un int şi are un parametru int?*(int pMyFunc(int));






4) Care portiune de cod este mai rapida ?




5) Ce va afişa secvenţa de mai jos?

char array[10] = "foo"; printf("%lu\n", sizeof(array[5]));





6) Ce valoare este intoarsa de catre urmatorul apel de functie ? strcmp("test123","tesT123");





7) Ce valoare va avea variabila b dupa urmatoarea secventa de operatii ?

int b = 193; b &= ~(1<<6);







Asteptam sugestiile sau intrebarile dumneavoastra pe rubrica de comentarii.

Related posts:

  1. Intrebari si raspunsuri pentru interviu C
  2. Intrebari si raspunsuri pentru interviu C
  3. Intrebari si raspunsuri pentru interviurile C
  4. Intrebari tricky pentru interviurile C in Linux
  5. Intrebari si raspunsuri pentru interviurile Java
Tags: , , , ,

V-a placut acest tutorial? Aveti anumite sugestii pentru urmatoarele tutoriale video? Lasati un comentariu! Feedback-ul vostru este foarte important pentru noi.

Pentru intrebari mai elaborate, cu caracter general, va rugam folositi forumul si in cel mai scurt timp veti primi un raspuns. Astfel ii vom ajuta si pe ceilalti sa invete din eventualele probleme.

2 comentarii la “Intrebari si raspunsuri pentru interviu C”

  1. paul says:

    La prima intrebare valoarea intoarsa va fi 3 + 1+ (4)=8
    Termenul x++ se evalueaza mai intai, deci are valoarea 3 si apoi se incrementeaza, deci dupa returnarea valorii va fi egal cu 4. Al doilea termen ++x va avea la momentul evaluarii valoarea 4 (din cauza primei incrementari) la care se adauga 1 datorita operatorului de preincrementare, deci al doilea termen va avea valoarea 5.

    Puteti exemplifica in ce fel compilatoare diferite pot intoarce valori diferite?

    Multumesc.

  2. Ionut
    says:

    Salut Paul,

    Ai dreptate x++ va fi evaluat la 4 insa ++x va fi evaluat tot la 4, incrementarea facanduse dupa utilizarea valorii lui x, deci expresia ia valoarea 8.

    INSA aceasta utilizare a operatorilor de incrementarea/pre-incrementare nu este recomandata deoarece compilatorul poate face diferite optimizari. Cum operatia de adunare este comutativa expresia de mai sus poate fi interpretata de compilator asa:

    ++x + x++ ; ceea ce ar duce la urmatorul rezultat: 3 + 4 = 7 (++x este 3, deoarece x se incrementeaza dupa operatia curenta, iar x++ este 4).