DATA STRUCTURES test nr. 17
- 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
- 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
- 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]
- 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]
- 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]
- 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]
- 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
- 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
- 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
- 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
- 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])
- 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
- 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
- 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
- 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
- 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
- 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}
- 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)
- 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
-
a)
b)
c)
d)
e)
-
a)
b)
c)
d)
e)
-
a)
b)
c)
d)
e)
-
a)
b)
c)
d)
e)
-
a)
b)
c)
d)
e)
-
a)
b)
c)
d)
e)
-
a)
b)
c)
d)
e)
-
a)
b)
c)
d)
e)
-
a)
b)
c)
d)
e)
|