DATA STRUCTURES test nr. 17


  1. Functia int cont(x) intoarce:
    a) continutul zonei de memorie asociata variabilei x
    b) 3 daca a avut loc definirea int x=3;
    c) o adresa daca a avut loc definirea int x[10];
    d) un intreg fara semn
    e) valoarea lui x

  2. Functia int succ() intoarece:
    a) o adresa
    b) adresa urmatorului element dintr-o structura omogena
    c) elementul urmator dintr-o structura omogena
    d) adresa absoluta a elementului urmator
    e) adresa relativa a elementului urmator

  3. Functia int succ(x[i]) intoarece:
    a) o adresa lui *(x+i)
    b) adresa elementului x[i+1} dintr-o structura omogena
    c) elementul x[i+1} dintr-o structura omogena
    d) adresa absoluta a elementului x[i+1]
    e) adresa relativa a elementului x[i+1]

  4. Functia int pred(x[i]) intoarece:
    a) o adresa lui *(x+i-1)
    b) adresa elementului x[i-1} dintr-o structura omogena
    c) elementul x[i-1] dintr-o structura omogena
    d) adresa absoluta a elementului x[i-1]
    e) adresa relativa a elementului x[i-1]

  5. Functia int succ(pred(x[i])) intoarece:
    a) o adresa lui *(x+i)
    b) adresa elementului x[i] dintr-o structura omogena
    c) elementul x[i-1} dintr-o structura omogena
    d) adresa absoluta a elementului x[i]
    e) adresa relativa a elementului x[i]

  6. Daca s-a definit masivul unidimensional:
    int a[10]={10,9,8,7,6,5,4,3,2,1};
    atunci:
    a) functia cont(a[3]) returneaza 7 sau cont(a[5])=5
    b) cont(succ(a[6])=4
    c) succ(a[9])=NULL si pred(a[0])=10
    d) succ(a[9])=NULL si pred(a[0])=NULL
    e) succ(succ(succ(a[2])))=a[5]

  7. Functia int lg(x) returneaza:
    a) lungimea zonei de memorie x
    b) lungimea ca numar de baiti a zonei de memorie pusa in corespondenta cu identificatorul x
    c) lungimea zonei de memorie ca numar de baiti a zonei de memorie x din care se scade 1 ce corespunde delimitatorului de sfarsit de sir
    d) exact ceea ce returneaza functia de sistem sizeof()
    e) un intreg

  8. Daca s-a efectuat definirea: int x[10];
    atunci:
    a) lg(x)=20
    b) lg(x[1])=2
    c) lg(x[0])= lg(x[1])=lg(x[2])=...=lg(x[10])=lg(int)
    d) lg(x[0])= lg(x[1])=lg(x[2])=...=lg(x[9])=lg(int)
    e) lg(x[0])= lg(x[1])=lg(x[2])=...=lg(x[9])=lg(int)=2

  9. Daca s-a efectuat definirea: int x[10];
    a) addr(x[1])=addr(x[0])+2
    b) addr(x[1])=addr(x[0])+ addr(x[1])+addr(x[2])+... +addr(x[9])
    c) addr(x[1])=addr(x[0])= addr(x[1])=addr(x[2])=... =addr(x[9])
    d) addr(x[1])=addr(x[0])+2= addr(x[1])=addr(x[2])-2=... =addr(x[9])-16
    e) addr(x[1])=addr(x[0])+1= addr(x[1])+2=addr(x[2])+4=... =addr(x[9])+18

  10. Functia definita prin void addr(x); returneaza:
    a) adresa variabilei x
    b) adresa zonei de memorie pusa in corespondenta cu identificatorul x
    c) un pointer
    d) o dresa
    e) adresa de oinceput a zonei de memorie pusa in corespondenta cu identificatorul x

  11. Daca s-a definit si intializat masivul unidimensional a[] cu 10 elemente prin:
    float a[10]={0,1,2,3,4,5,6,7,8,9}; atunci:
    a) addr(a[3])=addr(a[0])+12
    b) addr(succ(pred(a[3])))=a[0]+16
    c) addr(succ(pred(a[3])))=a[0]+12
    d) addr(succ(pred(a[3])))=a[0]+lg(a[1])+lg(a[3])
    e) addr(succ(pred(a[3])))= lg(a[1])+lg(a[3])+lg(a[0])

  12. Modelul analitic pentru definirea proprietatilor unui masiv unidimensional definit prin tip nume[NR_elemente; este:
    a) lg(nume[0])=lg(nume[1])=lg(nume[2])=....=lg(nume[NR_elemente-1])=lg(tip)
    b) addr(nume[i])=addr(x[i-1])+lg(tip)
    c) lg(nume[0])=lg(nume[1])=lg(nume[2])=....=lg(nume[NR_elemente-1])=lg(tip)
    addr(nume[i])=addr(x[i-1])+lg(tip)
    d) lg(nume[i])=lg(nume[i+1])=lg(tip)
    addr(nume[i])=addr(x[i-1])+lg(tip)
    e) lg(nume[i])=lg(nume[i+1])=lg(tip)
    addr(nume[i])=addr(x[i+1])-lg(tip)
    pentri i=0,1,2,3,...,NR_emenente-1


  13. Daca se definescelementele unei list simple prin:
    struct lista_simpla{
    int iut;
    struct lista_simpla *peu;
    } *pcpls,elem1,elem2,elem3;

    unde:
    pcpls - pointer spre primul element al listei simple elem1 - primul element al listei simple
    elem2 - al doilea element allistei simple
    elem3 - al treilea element al listei simple
    atunci:
    a) addr(elem1)=cont(pcpls)
    b) cont(elem2->peu)=addr(elem3)
    c) cont(elem3->peu)=NULL
    d) pred(elem1)NULL
    e) succ(elem3)=NULL

  14. Daca functia in(x) returneaza numarul arcelor incidente spre interiorul nodului x si functia out(x) returneaza numarul arcelor incidente spre exteriorul nodului x atunci:
    a) pentru arborele binar perfect echilibrat out (x)=2 oricare ar fi nodul x al arborelui binar
    b) pentru a defini un arbore binar in(p_radacina)=NULL
    c) pentru a defini un arboree binar e necesar ca out(p_fr)=NULL unde p_fr este un nod frunza oarecare
    d) pentru a defini un arbore binar, este necesar ca nodurile intermediare notate Y_1,Y_2,...,Y_k sa indeplineasca simultan conditiile: in(y_i)=1 si 0< out(Y_i)<=2
    e) sa respecte simultan cerinte de definire cu ajutorul functiilor in() si out() pentru nodul radacina, pentru nopdurile intermediare si pentru nodurile frunza

  15. Daca functia in(x) returneaza numarul arcelor incidente spre interiorul nodului x si functia out(x) returneaza numarul arcelor incidente spre exteriorul nodului x cu tipul definit prin: struct arbin{
    struct arbin *p_stang;
    int info:
    struct arbin *p_pdrept;
    }
    atunci:
    a) pentru arborele binar perfect echilibrat out (x)=2 oricare ar fi nodul x al arborelui binar
    b) pentru a defini un arbore binar in(p_radacina)=NULL
    c) pentru a defini un arboree binar e necesar ca out(p_fr->p_stang)=out(p_fr-p_dret)NULL pentru toate nodurile frunza p_fr
    d) pentru a defini un arbore binar, este necesar ca nodurile intermediare notate Y_1,Y_2,...,Y_k sa indeplineasca simultan conditiile: in(y_i)=1 si 0< out(Y_i)<=2
    e) sa respecte simultan cerinte de definire cu ajutorul functiilor in() si out() pentru nodul radacina, pentru nopdurile intermediare si pentru nodurile frunza, dupa cum urmeaza:
    in(p_radacina)=NULL, out(p_radacina)>0 si out(p_radacina)<=2
    in(p_frunza)=1 si out(p_frunza->p_stang)=out(p_frunzap>p_drept)=NULL
    int(p_intermediar)=1, 0p_stang)<=2 si 0p_drept)<=2

  16. Daca functia type(x) returneaza tipul variabilei x, atunci:
    a) pentru ca type(x) = float, trebuie ca variabila x sa fi fost definita prin
    float x;
    b) daca exista definirea double x; lg(type(x))=8
    c) daca exista definirea long double x; lg(type(x))=10
    d) daca exista definirea double x=8; lg(type(x))=cont(x)=8
    e) daca exista definirea char x; lg(type(x))=1

  17. Un masiv bidimensional int a{17][14], ca structura de date omogena este definit prin:
    a) functia type(a[i]lj])=type(a[k][h]),i,k apartinand multimii {0, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}, iar j,h apartinand multimii {0,1,2,3,4,5,6,7,8,9,10,11,12,13}
    b) ecuatia din care rezulta ca toate elementele au acelasi tip
    c) functia type(a[i]lj])=type(a[k][h])=int ,i,k apartinand multimii {0, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}, iar j,h apartinand multimii {0,1,2,3,4,5,6,7,8,9,10,11,12,13}
    d) functia type(a[i]lj])=int si type(a[k][h])=int ,i,k apartinand multimii {0, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}, iar j,h apartinand multimii {0,1,2,3,4,5,6,7,8,9,10,11,12,13}
    e) functia type(a[i]lj])= type(a[i+1][j+1])=int ,i apartinand multimii {0, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}, iar j apartinand multimii {0,1,2,3,4,5,6,7,8,9,10,11,12}

  18. Daca a_i si a_j sunt doua elemente consecutive ale unei liste duble definite prin elemente de tip articole astfel: struct listaD{
    int info;
    struct listaD *pprecedent,*purmator}a_i,a_j;

    atunci:
    a) cont(a_i->purmator)=addr(a_j) si cont(a_j->pprecedent)=addr(a_i)
    b) cont(a_j->pprecedent )!=NULL
    c) cont(a_i->purmator)!=NULL
    d) cont(a_i->info)!=cont(a_j->info)
    e) cont(a_i->info)==cont(a_j->info)

  19. Daca pPlist1 si pPlist2 sunt pointerii spre primele elemente ale doua liste simple avand fiecare cate trei elemente, atunci:
    a) adresa spre elementul urmator din ultimul element referit cu pPlist1 contine acelasi lucru cu pPlist2
    b) cont(pPlist1->pue->pue->pue)=cont(pPlist2)
    c) cont(pPlist1->pue->pue)=cont(pPlist2)
    d) cont(pPlist2->pue->pue->pue)=cont(pPlist1)
    e) cont(pPlist1->pue->pue->pue)=addr(elem4) , daca elem4, elem5, elem6 alcatuiesc cea de a doua lista


  20. a)
    b)
    c)
    d)
    e)

  21. a)
    b)
    c)
    d)
    e)

  22. a)
    b)
    c)
    d)
    e)

  23. a)
    b)
    c)
    d)
    e)

  24. a)
    b)
    c)
    d)
    e)

  25. a)
    b)
    c)
    d)
    e)

  26. a)
    b)
    c)
    d)
    e)

  27. a)
    b)
    c)
    d)
    e)

  28. a)
    b)
    c)
    d)
    e)