Sunteți pe pagina 1din 79

Capitole speciale de matematica

Licenta vara 2010 – iarna 2011

MULTIPLE CHOICE

1. Fie grupul simetric ( S3 ,  ) . Atunci numărul subgrupurilor lui S3 este


a. 1
b. 2
c. 4
d. 6

2. Fie grupul simetric ( S3 ,  ) . Atunci numărul subgrupurilor normale ale lui S3 este
a. 1
b. 2
c. 3
d. 4

3. Fie grupul ( Z , +) si multimea 5Z = {5m m ∈ Z } . Care din urmatoarele afirmatii este


adevarată?

a. 5Z este subgrup al grupului ( Z , + ) , dar nu este normal


b. 5Z este subgrup normal al grupului ( Z , + )
c. 5Z nu este subgrup al grupului ( Z , + )

4. Fie M 2 ( R ) multimea matricilor cu două linii, două coloane si elemente din multimea
 0 0  
numerelor reale. Multimea I =   a, b ∈ R  este
 a b  
a. ideal la stânga al inelului ( M ( R ) , +, ⋅) , dar nu este ideal la dreapta al acestui inel
2

( )
b. ideal la dreapta al inelului M ( R ) , +, ⋅ , dar nu este ideal la stânga al acestui inel
2

(
c. ideal bilateral al inelului M ( R ) , +, ⋅
2 )

5. Fie Q ( 2 ) = {a + b }
2 a, b ∈ Q . Atunci Q ( ( 2 ) , +, ⋅) este
a. inel comutativ fără divizori ai lui zero
b. inel comutativ cu divizori ai lui zero
c. corp comutativ
d. corp necomutativ

6. Fie f = 2ɵ X + 2ɵ ∈ Z 4 [ X ] . Atunci
a. ∀g ( X ) ∈ Z 4 [ X ] , f ( X ) g ( X ) ≠ 0ɵ
b. ∀g ( X ) ∈ Z 4 [ X ] , g ( X ) f ( X ) ≠ 0ɵ
c. ∃g ( X ) ∈ Z 4 [ X ] astfel încât f ( X ) g ( X ) = 0ɵ

7. Fie A un inel si I, J, L ideale bilaterale în A astfel încât I + J = A si I ⊇ JL . Atunci


a. I ≠ J
b. I ⊆ J
c. I ⊇ J

123456789 
8. Fie permutarea τ ∈ S9 ,τ =   . Descompunerea acestei permutări în produs de ciclii
 469732185 
disjuncti este

a. (1,4,7)(2,6,)(3,9,5)(8)
b. (1,5,4)(3,6,9,2)(7,8)
c. (2,6,7)(1,4,9,3)(5,8)
d. nici una din variantele de mai sus

9. Care din polinoamele următoare este ireductibil ?


a. X 3 + X + 1∈ Z [ X ]
2
b. X + 1∈ Z3 [ X ]
5

c. X 4 − 1∈ Z 7 [ X ]
d. nici unul din polinoamele de mai sus

123456 
10. Fie permutarea τ ∈ S6 ,τ =   . Atunci ordinul permutării τ este
2

 512436 
a. 6
b. 12
c. 2
d. 3

11. Fie ( S3 ,  ) grupul permutarilor de ordin 3 si H un subgrup cu 3 elemente al acestui grup. Câte
elemente are grupul factor S3 / H ?

a. 3
b. 2
c. 4
d. 1

123456 
12. Fie permutarea τ ∈ S6 ,τ =   . Atunci ordinul permutării τ este
−1

 512436 
a. 6
b. 4
c. 2
d. 3

13. Fie permutarea are descompunerea

a. c.
b. d.

14. Fie permutarea are descompunerea

a. c.
b. d.

15. Elementele inversabile ale inelului sunt


a. c.
b. d.

16.
Fie DeterminaŃi mulŃimea elementelor sale inversabile,
.

a. c.
b. d.

17. Daca definim aZ + bZ ={x+y | x ∈ aZ, y ∈ bZ}, unde prin Z am notat multimea numerelor
intregi, atunci 25Z + 20Z este egal cu :

a. 45Z c. 20Z

b. 25Z d. 5Z

1 2 3 4 5 6 7 8 9 10 
18. Se considera permutarea σ ∈ S10 , σ =   . Ordinul
3 5 1 4 7 10 8 2 6 9 
permutarii este :

a. infinit c. 12
b. 10 d. 4
 1 2 3 4 5  1 2 3 4 5
19. Se considera permutarile σ,τ ∈ S5, σ =   , τ =   . Permutarea
3 4 2 1 5  2 5 4 1 3
x ∈ S3 cu proprietatea ca x o σ = τ este :

a. 1 2 3 4 5 c. 1 2 3 4 5
x =   x =  
3 4 2 1 5  1 4 2 5 3 
b. 1 2 3 4 5 d. 1 2 3 4 5
x =   x =  
2 5 4 3 1  1 2 3 4 5 

20. Se considera permutarile σ,τ ∈ S4, . Sa se rezolve

ecuatia

a. c.

b. d.

 1 2 3 4 5
21. Se considera permutarea σ ∈ S5, σ =   . Atunci σ120 este egala cu:
3 4 2 1 5

a. σ c. σ2
b. permutarea identica d. σ-1

22. Solutiile ecuatiei 3x2 – 4x + 1 =0 in Z5 sunt :

a. x = 1̂ , x = 3̂ c. x1 = 1̂ , x2 = 2̂
1 2

b. x = 2̂ , x = 3̂
1 2

23. Solutiile ecuatiei x2 – x + 5 =0 in Z17 sunt :

a. x = 4̂ , x = 3̂ c. x1 = 4̂ , x2 = 14̂
1 2

b. x1 = 2̂ , x2 = 14̂

24. Care este polinomul g ∈ Z8[X] astfel incat (2̂ X + 3̂) g = 1̂

a. g(X) = 4̂ X 2 + 6̂ X + 3̂ c. g(X) = 4̂ X 2 + 4̂ X + 3̂
b. g(X) = 6̂ X 2 + 6̂ X + 3̂

25. Solutiile ecuatiei 3x2 – 4x + 1 =0 in Z19 sunt :

a. x1 = 1̂ , x2 = 13̂ c. x1 = 1̂ , x2 = 2̂
b. x = 2̂ , x = 13̂
1 2

26. Stabiliti daca .... in


a. c.

b.

27.
Sa se afle a ∈ Z 7 astfel incat polinomul X 6 + aX + 5ɵ ∈ Z 7 [ X ] sa fie ireductibil

a. a = 2ɵ c. a = 5ɵ
b. a = 3ɵ d. nu exista

28.
Fie polinomul f = X 3 − X + 1 . Care din urmatoarele afirmatii este adevarata?

a. polinomul are radacini întregi c. polinomul are radacini rationale


b. polinomul nu are radacini întregi

29.
3 2 1
 
Fie matricea A =  6 4 2  . Rangul matricei este
9 6 3
 

a. 0 c. 2
b. 1 d. 3

30. Determinati parametrii a si b reali astfel încat matricea de mai jos sa aiba rangul 2:
 a 1 2 4
 
 1 b 2 3
 1 2b 2 4 
 
a. a=1, b = 1/2
b. a = 1, b = 1
c. a = 0, b = 1
d. a = b = 0

31. Care dintre urmatoarele valori pentru parametrii a si b reali fac ca matricea de mai jos sa nu aiba rangul
3:
 a 1 2 4
 
 1 b 2 3
 1 2b 2 4 
 
a. a = 1, b = 0
b. a = 1, b = 1/2
c. a=b=1
d. a = 0, b = 1

32. Care este rangul matricii:


1 3 0 3 8
 
 0 0 12 16 9 
 1 3 2 1 − 1
 
 1 3 − 2 5 17 
 4 12 6 6 5 
 
a. 1
b. 2
c. 3
d. 4
e. 5

33. Care este rangul matricii:


 −1 2 1 0 2
 
− 2 4 2 2 0
−3 6 3 2 2
 
 − 5 12 6 4 4 

a. 1
b. 2
c. 3
d. 4
e. 5

34. Determinati a real astfel încat matricea de mai jos sa nu fie inversabila:
 2 −1 0
 
 a 1 3
 1 0 2
 
a. a = 1/2
b. a = 3/4
c. a = 2/3
d. a = -1/2
35. Fie grupul permutarilor de grad , grupul altern de grad , si permutarea identica.
Se considera , unde este signatura permutarii . Care este imaginea lui ?
a.
b.
c.
d.

36. Elementul zero al inelului Z8 × Z este

a. (0̂,0) c.
b. d.

1. Se considera functia . Atunci derivata mixta de ordin 2 data de


este egala cu
a. c. 1
b. d. 2y

2. Derivata partiala de ordin 2 a lui in raport cu variabila y este egala cu


a. c.
b. d. 6y

3. Derivata partiala la lui in raport cu variabila x este egala cu


a. c.
b. d.

4. Derivata partiala a lui in raport cu variabila y este egala cu


a. c.
b. d.

5. Se considera functia . Atunci punctele stationare(numite deasemenea puncte


critice) ale lui f(x,y)
sunt
a. (0,0) c. (1,1,),(0,0)
b. (1,0),(0,1) d. nu exista puncte stationare

6. Se considera functia . Atunci punctele stationare(numite


deasemenea puncte critice) ale lui f(x,y) sunt
a. (0,0) c. (1,2)
b. (1,2),(0,0) d. nu exista puncte stationare
7. Se considera functia . Atunci punctele stationare(numite
deasemenea puncte critice) ale lui f(x,y) sunt
a. (0,0) c. (2,3)
b. (2,3),(0,0) d. nu exista puncte stationare

8. Se considera functia . Atunci


punctul (-2,-2) este un punct
a. de minim local pentru f(x,y) c. nu este punct de extrem local
b. de maxim local pentru f(x,y)

9. Care din urmatoarele functii are o o infinitate de puncte stationare


a. f(x,y)=x+y c. f(x,y)=x+2y
b. f(x,y)=sin(x) d.

10. Se considera functia . Atunci


punctul (-5,-2) este un punct
a. de minim local pentru f(x,y)
b. de maxim local pentru f(x,y)
c. nu este puncte de extrem local

11. Sa se calculeze derivatele partiale de ordinul intai pentru urmatoarea functie:


f ( x, y ) = x 2 + 2 xy − y 2
/

/
a. f x ( x, y) = 2 ( x + y ) ; f y ( x, y ) = 2 ( x − y ) c. f x ( x, y) = 2 ( x + 2 y ) ; f y ( x, y ) = 2 ( x − y )
/

b. f x ( x, y) = 2 ( x − 2 y ) ; f y ( x, y) = 2 ( x + y ) d. alt raspuns.

12. Scrieti diferentiala de ordinul intai a functiei


1 1
f ( x, y ) = + + 2( x + y − 1)
x y

a. c.

b. d.

13. Se da functia de doua variabile f ( x, y ) = x 2 − xy + y 2 − 3 x + 3 y .Derivata partiala de ordinul al


doilea a lui f in raport cu x este:
/
/

/
/

a. f
x2
( x, y ) = 2 c. f
x2
( x, y ) = 0
/
/

/
/
b. f
x2
( x, y ) = −1 d. f
x2
( x, y ) = −2 x

14. Se da functia de doua variabile f ( x, y ) = x − xy + y − 3 x + 3 y .Alege valoarea corecta pentru


2 2

/
/
f xy ( x, y )

/
/

/
/
a. f xy ( x, y ) = 0 c. f xy ( x, y ) = xy
/
/

/
/
b. f xy ( x, y ) nu exista d. f xy ( x, y ) = −1

15. Se da functia de doua variabile f ( x, y ) = ( x − 1) + ( y + 6) .


2 2

Functia are punct stationar pe:

a. M(1,-6) c. M(0,0)

b. M(-1,6) d. M(1,0)

16.
400
Fie f(x,y) = 10x + 4y + 2xy + , x >0, y >0 . Derivatele partiale de ordin I sunt:
xy

a.  ' 400 c.  ' 400


 f x ( x , y ) = 10 + 2 y −  f x ( x , y ) = 10 + 2 y +
x2 y x2 y2
 400  400
 f y' ( x, y ) = 4 + 2 x − 2  f y' ( x, y ) = 4 + 2 x + 2 2
 xy  x y
b.  f ' ( x, y ) = 10 x + 4 y + 2 d.  ' 400
 x  f x ( x, y ) = 10 + 2 y + xy 2
 f ' ( x, y ) = 10 x + 2 y + 400
 y  400
x2 y2  f y' ( x, y ) = 4 + 2 x + 2
 xy

17. Functia f (x,y)= arctg( + ) verifica

a. y f ' (x ,y) + xf ' (x ,y) = 0


x y

b. y f ' (x ,y) - xf ' (x ,y) = 0


x y

c. f 'x (x ,y) + f 'y (x ,y) = 0

d. 2x f ' (x ,y) - 2yf ' (x ,y) = 0


x y
18. Se da functia de doua variabile f ( x, y ) = xy .
Diferentiala de ordinul I a lui f este

a. df = dx + dy c. df = ydx + dy
b. df = dx + xdy d. df = ydx + xdy

19. Se da functia de doua variabile f ( x, y ) = x + y


2 2

Diferentiala de ordinul I a lui f este

a. df = x 2 dx + y 2 dy c. df = 0
b. df = dx + dy d. df = 2 xdx + 2 ydy

20. Pentru functia , punctul M(5,2) este

a. punct sa;
b. punct de maxim local;
c. punct de minim local.

21. Calculeaza ( eventual folosind proprietatile integralelor euleriene )

a.

b.

c.

d.

22. Aria domeniului plan marginit de curbele si , este:


a. ;
b.
;
c.
;
d.
.

23. Se considera unde . Valoarea lui I

este:
a.
;
b.
;
c.
;
d.
.

24. Valoarea integralei duble , unde , este

a. 1;
b. 2;
c. 3;
d. 4.

25. Prin calcul direct sau folosind formula lui Green rezulta ca integrala unde

, cu si este egala cu
a.
;
b.
;
c.
;
d.
.

26. Valoarea integralei , unde este

a. 0;
b. 1;
c. 2;
d. 3.
27. Sa se calculeze , unde .

a.
;

b.
;

c.
;

d.
.

28. Folosind o schimbare de variabila adecvata, sa se calculeze integrala dubla , unde este

domeniul marginit de elipsa .


a.
;
b.
;
c.
;
d.
.

29. Calculeaza integrala .

a.
;
b.
;
c.
;
d.
.

30. Calculeaza integrala .


a.
;
b.
;
c.
;
d.

31. Ecuatiile curbelor care delimiteaza domeniul pe care se calculeaza integrala dubla

sunt
a.

b.

c.

32. Schimbati ordinea de integrare in integrala dubla

a.

b.

c. alt raspuns

33. Fie unde , . Valoarea lui este

a. 0;
b.
;

c.
.
34. Fie , unde . Valoarea lui este

a.
;
b.
;
c.
;
d.
.

35. Fie . Valoarea lui I este

a.
;
b.
;
c.
.

36. Valoarea integralei curbilinii de tipul al doilea , unde

este
a.
;
b.
;
c.
;
d. 0.
37. Valoarea integralei curbilinii de tipul al doilea , unde

este
a.
;
b.
;
c.
;
d.
.

38. Fie integrala curbilinie de tipul al doilea , unde C este curba simpla si rectificabila

care are ca imagine portiunea din parabola , cuprinsa intre punctele si , care are
primul capat in B. Valoarea ei este
a.
;
b.
;
c. ;
d. .

39. Fie unde C este conturul dreptunghiului ale carui varfuri sunt .
Valoarea lui I este
a. 22
b. 23
c. 24

40. Calculeaza , unde C este circumferinta , .


a.
b.
c.
Structuri de date
Informatie, coduri, reprezentari, tablouri, liniarizari, matrice k-diagonala

MULTIPLE CHOICE

1. Daca decodificarea oricarui cuvant cod se poate realiza fara a cunoaste simbolurile care il urmeaza
atunci codul se numeste
a. instantaneu
b. fara memorie
c. independent de context
d. nesingular

2. Care din alternativele urmatoare este falsa?


Fie (a, l, t) tripletul ce caracterizeaza o informatie codificata. Atunci
a. a este adresa de inceput a locatiei care contine informatia codificata
b. l este dimensiunea (in biti) a locatiei notate prin a
c. t este timpul reprezentarii
d. De cele mai multe ori, a este multiplu de l/8

3. In cazul reprezentarii numerelor naturale, tripletul (a, l, t) ia una din formele:


a. (a, 16, byte)
b. (a, 8, word)
c. (a, 8, byte)

4. La reprezentarea numerelor intregi, atributul t al tripletului (a, 8, t) poate fi:


a. byte
b. word
c. short

5. La reprezentarea numerelor intregi, atributul t al tripletului (a, 16, t) poate fi:


a. short
b. integer
c. long

6. Datele care se definesc odata cu instructiunile de prelucrare a lor si care sunt memorate in spatiul
program se numesc
a. date statice
b. date dinamice
c. date private

7. Un tablou de dimensiune 2 cu m randuri si n coloane, in specificare prin liniarizare linie ocupa


a. locatii
b. locatii
c. mn locatii

8. Intr-o matrice superior sau inferior triunghiulara numarul coeficientilor egali cu zero este mai mare sau
egal cu
a. n/2
b. n/3
c. n(n-1)/2
d. n(n-1)/4

9. Functia de rang pentru o matrice superior triunghiulara liniarizata coloana este


a. r(i,j)=j(j-1)/2+i-1
b. r(i,j)=i(i-1)/2+j-1
c. r(i,j)=(j-1)(2n+2-j)/2+i-1

10. Functia de rang pentru o matrice inferior triunghiulara liniarizata coloana este
a. r(i,j)=j(j-1)/2+i-1
b. r(i,j)=(2n+2-j)(j-1)/2+i-1
c. r(i,j)=j-1+i(i-1)/2

11. Numarul de elemente nenule dintr-o matrice superior/inferior k-diagonala este m =


a. k(n-k+1)/2
b. k(2n-k+1)/2
c. k(n-2k+1)/2
Structuri de date
Liste simplu inlantuite

MULTIPLE CHOICE

1. Intr-o lista simplu inlantuita, cu cel putin 4 celule, fiecare celula retine in campul urm adresa
urmatoarei celule din lista. Daca p, q si r sunt adresele a trei celule din lista astfel incat:
p -> urm == q -> urm -> urm
si
r-urm == q,
atunci ordinea logica a celulelor in lista (celulele fiind identificate prin adrese) este:

a. q, r, p c. r, q, p
b. p, q, r d. p, r, q

2. Intr-o lista simplu inlantuita, cu cel putin 4 celule, fiecare celula retine in campul urm adresa
urmatoarei celule din lista. Daca P, Q si R sunt adresele a trei celule din lista astfel incat:
Q == P -> urm -> urm
si
R -> urm == P -> urm -> urm,
atunci ordinea logica a celulelor in lista (celulele fiind identificate prin adrese) este:

a. Q, R, P c. P, R, Q
b. R, Q, P d. P, Q, R

3. Intr-o lista simplu inlantuita, cu cel putin 4 celule, fiecare celula retine in campul urm adresa
urmatoarei celule din lista, iar Q este adresa ultimei celule din lista. Atunci P este adresa
antepenultimei celule din lista daca si numai daca este satisfacuta conditia

a. Q -> urm -> urm == P


b. P -> urm == Q
c. P -> urm -> urm == Q
d. Q -> urm == P -> urm -> urm

4. Intr-o lista simplu inlantuita cu cel putin 4 celule, fiecare celula retine in campul urm adresa
urmatoarei celule din lista, iar P este adresa celei de-a treia celule din lista. Atunci Q este adresa primei
celule din lista daca si numai daca este satisfacuta conditia:

a. P -> urm -> urm == Q -> urm


b. P -> urm -> urm == Q
c. Q -> urm -> urm -> urm == P -> urm
d. Q -> urm -> urm == P -> urm

5. Intr-o lista simplu inlantuita, cu cel putin doua celule, fiecare celula retine in campul URM adresa
urmatoarei celule din lista, iar Q memoreaza adresa penultimei celule din lista. Daca P este adresa unei
celule ce urmeaza a fi adaugata la sfarsitul listei si P -> URM are valoarea NULL, stabiliti care dintre
urmatoarele actiuni este o operatie corecta de adaugare.

a. P -> URM = Q
b. Q -> URM = P
c. Q -> URM -> URM = P
d. P -> URM -> URM = Q

6. Intr-o lista simplu inlantuita alocata dinamic fiecare element retine in campul nr un numar intreg si in
campul urm adresa urmatorului element din lista. Stiind ca variabila p contine adresa primului element
din lista si variabila t este de acelasi tip cu variabila p, stabiliti care dintre urmatoarele secvente
elibereaza intreaga zona de memorie ocupata de elementele listei.
a. while(p) {t = p; p = p->urm; free(p);}
b. while(p) {t = p; p = p->urm; free(t);}
c. while(p) {t=p; t=t->urm; free(t);}
d. free(p);

7. Intr-o lista liniara simplu inlantuita, fiecare element retine in campul urm adresa urmatorului nod din
lista, iar in campul inf un numar intreg. Adresa primului element al listei este retinuta in variabila p.
Daca in lista sunt memorate, in aceasta ordine, numerele: 5, 9, 3, si 6 (6 fiind ultimul element), in urma
executarii secventei de instructiuni (p indica, initial, nodul cu numarul 5):
{ q = p -> urm -> urm; p->urm -> urm = q -> urm; q->urm = p -> urm; p -> urm = q;}
in lista vor fi in ordine numerele:
a. 9, 5, 3, 6
b. 5, 9, 6, 3
c. 5, 3, 9, 6
d. 5, 3, 6, 9

8. Intr-o lista simplu inlantuita, alocata dinamic, fiecare element retine in campul next adresa urmatorului
nod din lista, iar in campul info un numar intreg. Adresa primului element al listei este memorata in
variabila prim. Se stie ca lista are cel putin 3 noduri. Care dintre urmatoarele secvente de instructiuni
elimina corect penultimul element al listei?
a. {
p = prim; do p = p->next; while(p->next->next->next);
p->next=p->next->next;
}
b. {
p = prim;
while (p->next->next->next) p = p->next;
p->next=p->next->next;
}
c. {
p = prim;
while (p->next->next) p = p->next;
p->next=p->next->next;
}
d. prim -> next = prim->next -> next;

9. Intr-o lista liniara, simplu inlantuita, alocata dinamic, fiecare element retine in campul next adresa
urmatorului nod din lista, iar in campul info in numar intreg. Adresa primului element al listei este
memorata in variabila prim. Lista contine cel putin 3 noduri. Care este efectul executarii urmatoarei
secvente de program
{
p = prim; q = p->next -> next;
while ( q-> next) {p = p->next; q = q-> next;}
p -> next = q;
}

a. Eliminarea nodului din mijlocul listei


b. Eliminarea din lista a ultimului nod;
c. Eliminarea din lista a penultimului nod
d. Eliminarea celui de-al doilea nod al listei

10. Fiecare element al unei liste liniare simplu inlantuite alocata dinamic retine in campul adru adresa
elementului urmator din lista. Daca p retine adresa primului element, iar lista are cel putin doua
elemente, care dintre urmatoarele secvente dee instructiuni sterge al doilea element al listei?
a. q = p->adru; p->adru = q -> adru; free(q);
b. p -> adru = p->adru -> adru; free (p->adru);
c. q = p-> adru; free(q); p ->adru = q->adru;
d. free(p->adru);
Structuri de date
Liste duble, circulare, stive, cozi

MULTIPLE CHOICE

1. Intr-o lista circulara simplu inlantuita alocata dinamic cu cel putin un element, fiecare element retine in
campul nr un numar intreg si in campul urm adresa urmatorului element din lista. Stiind ca variabila p
retine adresa unui element din lista si variabila t este de acelasi tip cu p, stabiliti care dintre
urmatoarele secvente afiseaza toate valorile memorate in nodurile listei, fiecare valoare fiind afisata
exact odata.
a. t = p;
while(t -> urm != p) {
printf(“%d “, t -> nr;
t = t->urm;}
b. t = p;
do{
printf(“%d “, t -> nr;}
t = t->urm;
}while(t != p);
c. t = p;
while(t != p) {
printf(“%d “, t -> nr;
t = t->urm;}
d. t = p->urm;
do{
printf(“%d “, t -> nr;}
t = t->urm;
}while(t != p);

2. Intr-o lista dublu inlantuita care incepe cu elementul memorat la adresa p si contine cel putin 4
elemente, fiecare element retine in campul urm adresa elementului urmator, in campul pre adresa
elementului precedent, iar in campul inf o valoare intreaga. Care dintre urmatoarele variante tipareste
valoarea celui de-al treilea element al listei?
a. printf(“%d “, p->urm -> urm -> pre -> inf);
b. printf(“%d “, p->urm -> urm -> urm -> pre -> inf);
c. printf(“%d “, p->urm -> urm -> urm);
d. printf(“%d “, p->urm -> urm);

3. Variabila p retine adresa unui element oarecare al unei liste circulare nevide alocata dinamic, in care
fiecare element memoreaza in campul nr un numar intreg, iar in campul urm adresa elementului
urmator. Care dintre urmatoarele variante tipareste toate elementele listei?
a. q = p; do{
printf(“%d”, q -> nr); q = q -> urm;
} while (q != p);
b. q = p; while (q -> urm != p){
printf(“%d”, q -> nr); q = q -> urm;
}
c. q = p; while (q != p){
printf(“%d”, q -> nr); q = q -> urm;
}
d. q = p->urm;
while (q != p){
printf(“%d”, q -> nr); q = q -> urm;
}

4. Se considera o coada in care initial au fost introduse, in aceasta ordine, elementele 1 si 2. Daca se
noteaza cu AD(x) operatia prin care se adauga informatia x in coada, si cu EL() operatia prin care se
elimina un element din coada, care este rezultatul executarii secventei: EL(); Ad(3); EL(); AD(4);
AD(5);?
a. 1, 4, 5
b. 5, 4, 2
c. 3, 4, 5
d. 5, 4, 3

5. Se considera o stiva in care initial au fost introduse, in aceasta ordine, valorile 1 si 2. Daca se noteaza
cu PUSH(x). operatia prin care se insereaza valoarea x in varful stivei si POP() operatia prin care se
extrage elementul din varful stivei, care este continutul stivei in urma secventei de operatii: POP();
PUSH(3); POP(); PUSH(4); PUSH(5);
a. 5 b. 5 c. 2 d. 1
4 4 3 4
3 1 5 5

6. In lista circulara simplu inlantuita ce contine numerele 1, 2, 3, 2, 3 in aceasta ordine, iar p este adresa
nodului ce contine primul numar 2 (fiecare nod are un camp nr ce contine numarul intreg si un camp
urm care indica adresa elementului urmator din lista). Prin executarea secventei
while (p -> nr > 0) {p -> nr = p -> nr -1; p = p -> urm;}
continutul listei, citit de la adresa de plecare va fi:
a. 0, 1, 0, 2,0
b. 1, 2, 1, 2, 0
c. 0, 1, 1, 2, 0
d. 0, 1, 0, 1, 0

7. Se considera ca variabilele p si q memoreaza adresa primului, respectiv ultimului element al unei liste
liniare nevide dublu inlantuite. Elementele listei retin in campul urm adresa elementului urmator, iar in
campul prec adresa elementului anterior. Stabiliti care este numarul de noduri din lista daca p -> urm -
> urm si q -> prec -> prec indica acelasi nod al listei.
a. 4 c. 3
b. 5 d. 2

8. Se considera lista circulara simplu inlantuita ce contine celulele cu numerele 1, 2, 3, 4 (in aceasta
ordine). Fiecare element memoreaza in campul nr un numar intreg, iar in campul urm adresa
elementului urmator din lista. Variabila prim indica nodul ce contine numarul 1. Cate treceri sunt
necesare pentru ca toate elementele din lista sa ajunga egale. Definim prin trecere prelucrarea data de
secventa urmatoare:
p = prim;
do {if(p->nr > prim->nr) p->nr = p->nr -1; p = p -> urm;}
while (p != prim);

a. 5 c. 3
b. 2 d. 4
9. Intr-o lista circulara simplu inlantuita, p este adresa unui nod din lista si campul next memoreaza
pentru fiecare nod adresa nodului urmator din lista. Pentru a numara elementele listei vom scrie
secventa (variabila q este de acelasi tip cu variabila p):
a. q = p; k = 1; while(q -> next != p) {k++; q = q -> next;}
b. q = p; k = 1; do{ q = q -> next; k++; } while(q ==p);
c. q = p; k = 1; while(q!=p) {k++; q = q->next;}
d. k=0; do{p=p->next; k++;} while (p!=NULL);

10. Se considera o stiva alocata dinamic care are cel putin 10 elemente. Variabila vf memoreaza adresa de
inceput a stivei si orice element al stivei memoreaza in campul info un numar intreg, iar in campul
next adresa nodului urmator. Se considera seceventa de program:
while (vf && vf -> info %2 == 0) {
aux = vf;
vf = aux-> next;
free (aux);
}
Daca in urma executarii secventei de program, variabila vf are valoarea NULL, atunci:
a. Primul element memorat in stiva este par, celelalte fiind numere impare.
b. In stiva nu s-a memorat nici un numar impar.
c. Ultimul element memorat in stiva este par, celelalte elemente fiind numere impare.
d. In stiva nu s-a memorat nici un numar par.

11. Se considera o lista circulara cu 8 elemente numerotate cu 1, 2, 3, 4, 5, 6, 7, 8. Mai intai se elimina


elementul numerotat cu 3, apoi se elimina fiecare al treilea element al parcurgeri, numararea
continuandu-se cu succesorul elementului eliminat, pana cand lista va mai contine un singur element.
Care va fi numarul de ordine al elementului ramas?
a. 2 c. 3
b. 7 d. 4

12. Se considera o lista circulara dublu inlantuita ale carei noduri retin in campul st adresa nodului
anterior, iar in campul dr adresa nodului urmator din lista. Lista are cel putin doua elemente. Stiind ca
p retine adresa unui nod din lista, care este numarul de noduri din lista astfel incat relatia
p->st->st == p->dr sa fie adevarata?
a. 5 c. 2
b. 3 d. 4

13. Intr-o lista simplu inlantuita circulara, fiecare element retine in campul adr adresa elementului urmator
din lista. Daca p si q sunt adresele a doua elemente distincte din lista astfel incat sunt satisfacute
conditiile p == q -> adr si q == p -> adr. Atunci lista are
a. un numar impar de elemente c. cel putin 3 elemente
b. exact 2 elemente d. exact 1 element

14. Se considera o stiva implementata prin intermediul vectorului a cu elementele a[0] = 0, a[1] = 10, a[2]
= 20, a[3] = 30, a[4] = 40, a[5] = 50. Daca cel de-al doilea element, incepand de la baza stivei este 10,
atunci primul element care iese din stiva este:
a. a[6] c. a[5]
b. a[1] d. a[0]
15. Intr-o lista circulara simplu inlantuita fiecare element retine in campul adr adresa elementului urmator
din lista. Daca p reprezinta adresa unui element din lista atunci stabiliti care dintre urmatoarele expresii
are valoarea 1 daca si numai daca lista contine exact doua noduri.
a. p -> adr == p c. p -> adr -> adr == p
b. p -> adr -> adr == NULL d. p -> adr != NULL

16. Principiul de functionare al unei stive este notat


a. LILO
b. FIFO
c. LIFO

17. O lista liniara in care operatiile de depunere si extragere sunt permise la oricare din capetele listei se
numeste
a. coada fara prioritati
b. coada completa
c. coada nelimitata

18. Care din urmatoarele structuri de date nu este o lista?


a. stiva
b. coada
c. arborele insailat

19. Cazurile din urmatoarele cuvinte nu descrie o exceptie ?


a. underline
b. overflow
c. underflow

20. In implementarea unei liste circulare, prin alocare statica, calculul pozitiei unui element utilizeaza
urmatoarele operatii
a. new
b. adunare, modulo, scadere
c. malloc, calloc, realloc

21. Cautarea informatiei in liste liniare simplu inlantuita, alocata static, se realizeaza:
a. liniar
b. logaritmic
c. prin intermediul campului legatura

22. Algoritmul cautarii binara se aplica


a. vectorilor ordonati
b. listelor liniare
c. tablourilor de dimensiune 2
Structuri de date
Structuri de date neliniare, sortare si cautare

MULTIPLE CHOICE

1. Care din urmatoarele structuri nu sunt de tip neliniar


a. arborii binari si oarecare
b. retelele planare si spatiale
c. structurile de liste
d. cozile complete

2. Lista in preordine a informatiei stocate in arborele alaturat este:

a. 20, 30, 35, 40, 50, 60, 65, 70, 75, 80, 85, 90
b. 50, 30, 20, 40, 35, 70, 60, 65, 80, 75, 85, 90
c. 90, 85, 80, 75, 70, 65, 60, 50, 40, 35, 30, 20

3. O multime de arbori se numeste


a. retea
b. structura multiliniara
c. padure

4. Care din urmatoarele moduri de explorare a arborilor utilizeaza o structura de tip coada in
implementarea algoritmului de explorare?
a. in latime (breath first)
b. in adancime (dept first)
c. aleator (random)

5. Se considera arborele cu radacina 20:

Care este inaltimea acestuia?


a. 9
b. 5
c. 6
d. 4

6. Un algoritm de cautare interna se aplica pentru structuri de date stocate


a. in memoria externa a sistemului de calcul
b. in reteaua locala de calculatoare
c. in memoria interna a sistemului de calcul

7. Algoritmii de cautare utilizeaza operatii de


a. salt
b. aritmetice
c. comparare

8. Un arbore de cautare este intotdeauna optimal (permite un numar minim de comparatii).


a. Adevarat
b. Fals

9. Care din urmatoarele metode de sortare nu se bazeaza pe metoda insertiei


a. sortare prin insertia directa
b. sortare prin insertie binara
c. sortare prin interclasare

10. Numarul mediu de accese la componentele unui vector sortat prin metoda insertiei directe este:
a. (n-1)(n+2)/4
b.

c.
Criptografie - Licenta 2010
Bazele matematice ale criptografiei, Criptografie aplicata – intrebari orientative

MULTIPLE CHOICE

1. Considerati cifrul de permutare al lui Hill. Pentru numarul intreg fixat d = 2 si cheia de criptare

, codificarea textului clar CLAR este...

a. NHZH c. PIHU
b. NIZH d. HIPU

2. Considerati cifrul de permutare al lui Hill. Pentru numarul intreg fixat d = 2 si cheia de criptare

, codificarea textului clar GUMA este...

a. EYAG c. YEUG
b. EYGU d. EYUG

3. Considerati cifrul de permutare al lui Hill. Pentru numarul intreg fixat d = 2 si cheia de criptare

, codificarea textului clar LESA este...

a. HIWN c. NXWK
b. HIWK d. IHNW

4. Considerati cifrul de permutare al lui Hill. Pentru numarul intreg fixat d = 2 si cheia de criptare

, codificarea textului clar ZARE este...

a. VXBQ c. VXCR
b. WXBQ d. VXBP

5. Considerati cifrul de permutare al lui Hill. Pentru numarul intreg fixat d = 2 si cheia de criptare

, codificarea textului clar LIRA este...

a. MAZI c. LAZH
b. MAXI d. LAZI

6. Considerati alfabetul latin din care eliminati litera de frecventa redusa W. Folosind sistemul de
codificare Polybios, codificati textul clar EXCLAMARE. Alegeti varianta corecta din cele de mai jos.
a. AEECACCBAACCAADCAE c. AEECABCBABCCAADCAE
b. AEECACCAAACCAADCAD d. AEECABCBAACCAADCAE
7. Considerati alfabetul latin din care eliminati litera de frecventa redusa Q. Folosind sistemul de
codificare Polybios, codificati textul clar STIRPIRE. Alegeti varianta corecta din cele de mai jos.
a. DDDEBDDBDABDDBAE c. DCDEBDDBDABDDBAE
b. DCDDBDDBDABDDBAE d. DCDDBDDBDABDDDAE

8. Considerati alfabetul latin din care eliminati litera de frecventa redusa Y. Folosind sistemul de
codificare Polybios, codificati textul clar ZIRCONIU. Alegeti varianta corecta din cele de mai jos.
a. EEBDDCACCECDBDEA c. EEBDDCACECCDDBEA
b. EEBCDCACECCDBDEA d. EEBCDCACCECDDBAE

9. Considerati alfabetul latin din care eliminati litera de frecventa redusa W. Folosind sistemul de
codificare Polybios, decodificati textul criptat AEECACCBAACCAADCAE. Alegeti varianta corecta
din cele de mai jos.
a. EXCLUDERE c. EXCHANGE
b. EXCLAMARE d. INCLUDERE

10. Considerati alfabetul latin din care eliminati litera de frecventa redusa Q. Folosind sistemul de
codificare Polybios, decodificati textul criptat DCDDBDDBDABDDBAE. Alegeti varianta corecta din
cele de mai jos.
a. STIRBIRE c. STIRPIRE
b. STIRPARE d. ESTIMARE
ANS: C

11. Consideram un schimb de mesaje in care se foloseste sistemul de criptare afin a carei functie de
criptare este definita prin , unde reprezinta o cheie din multimea tuturor
cheilor de criptare K, iar x reprezinta codificarea textului in clar. Pentru schimbul de mesaje se doreste
criptarea cuvntului PAINE. Aceasta este:
a. AHFUT c. BNFUT
b. BNFZT d. ANFVT

12. Consideram un schimb de mesaje in care se foloseste sistemul de criptare afin a carei functie de
criptare este definita prin , unde reprezinta o cheie din multimea tuturor
cheilor de criptare K, iar x reprezinta codificarea textului in clar. Pentru schimbul de mesaje se doreste
criptarea cuvntului AMURG. Aceasta este:
a. DJNSU c. DJSNT
b. DJNST d. CJSNT

13. Consideram un schimb de mesaje in care se foloseste sistemul de criptare afin a carei functie de
criptare este definita prin , unde reprezinta o cheie din multimea tuturor
cheilor de criptare K, iar x reprezinta codificarea textului in clar. Pentru schimbul de mesaje se doreste
criptarea cuvntului INGER. Aceasta este:
a. UVLBO c. VULBO
b. UVLBR d. VULCO

14. Consideram un schimb de mesaje in care se foloseste sistemul de criptare afin a carei functie de
criptare este definita prin , unde reprezinta o cheie din multimea tuturor
cheilor de criptare K, iar x reprezinta codificarea textului in clar. Pentru schimbul de mesaje se doreste
criptarea cuvntului VULPE. Aceasta este:
a. EZGAW c. ZEGWX
b. ZEGXW d. EZGAX

15. Codificati textul clar INCAS folosind sistemul de criptare Vigenere cu cheia secreta GARA. Solutia
este...
a. ONTAY c. ONSAY
b. NMTAY d. ONSAZ

16. Codificati textul clar IMPAR folosind sistemul de criptare Vigenere cu cheia secreta VARF. Solutia
este...
a. EMGFN c. DMHFM
b. EMHFM d. DMGFM

17. Codificati textul clar UMBRA folosind sistemul de criptare Vigenere cu cheia secreta CARD. Solutia
este...
a. WMTUC c. WMSUC
b. VMSUC d. VMSUD

18. Codificati textul clar ZIMBRU folosind sistemul de criptare Vigenere cu cheia secreta BILA. Solutia
este...
a. ARYBSC c. AQXBSC
b. AQXCSB d. AQYBSC

19. Codificati textul clar USCAT folosind sistemul de criptare Vigenere cu cheia secreta LABIL. Solutia
este...
a. FSDIF c. FSDIE
b. ESDIF d. ESDIE

20. Se da secventa binara de text clar 101011. Codificati aceasta secventa folosind cheia fluida 1010,
folosind un sistem aditiv fluid binar de criptare.
a. 010001 c. 001000
b. 000010 d. 000001

21. Se da secventa binara de text clar 110100. Codificati aceasta secventa folosind cheia fluida 1011,
folosind un sistem aditiv fluid binar de criptare.
a. 001010 c. 010010
b. 011010 d. 010110

22. Se considera secventa binara de text criptat 110010. Folosind intr-un sistem aditiv fluid binar de
criptare cheia fluida secreta 1101, se cere decriptarea secventei.
a. 000101 c. 100111
b. 001011 d. 100010

23. Se considera secventa binara de text criptat 111001. Folosind intr-un sistem aditiv fluid binar de
criptare cheia fluida secreta 1001, se cere decriptarea secventei.
a. 011111 c. 011101
b. 100000 d. 011110
24. Folosind sistemul de criptare asincron cu auto-cheie pentru k = 11, codificarea textului clar GRADINA
este ...
a. RIILTGG c. RIILSHH
b. RIJLTGG d. RIILSHI

25. Folosind sistemul de criptare asincron cu auto-cheie pentru k = 8, codificarea textului clar CORIDA
este ...
a. KYRYBA c. KYPXAB
b. KYRYBB d. KYPXAA

26. Folosind sistemul de criptare asincron cu auto-cheie pentru k = 7, codificarea textului clar STRIGAT
este ...
a. ZSJRXYQ c. ZSJRXXR
b. ZSJRXXQ d. ZSRXYRR

27. Folosind sistemul de criptare asincron cu auto-cheie pentru k = 11, decodificarea textului criptat
RIILTGG este ...
a. GRADINI c. GRADINA
b. GRANINI d. GRINDINA

28. Folosind sistemul de criptare asincron cu auto-cheie pentru k = 8, decodificarea textului criptat
KYPXAA este ...
a. COLIBA c. COLINA
b. CORIDA d. CORIDE

29. Folosind sistemul de criptare asincron cu auto-cheie pentru k = 7, decodificarea textului criptat
ZSJRXXQ este ...
a. STRICAT c. STRIGAT
b. STRESAT d. STOCATE

30. Considerati sistemul de criptare bloc DES. Folosind modul de utilizare ECB al acestuia, codificati

secventa de text clar x = 1100110110011110, folosind cheia de criptare .

a. 0101110111000111 c. 0011011101011011
b. 0111110110011110 d. 0011011101011011

31. Considerati sistemul de criptare bloc DES. Folosind modul de utilizare ECB al acestuia, codificati

secventa de text clar x = 1111010110101101, folosind cheia de criptare .

a. 1111010110100111 c. 1111101011000111
b. 1111010111000111 d. 1111011010010111
32. Considerati sistemul de criptare bloc DES. Folosind modul de utilizare ECB al acestuia, codificati

secventa de text clar x = 1001110110001111, folosind cheia de criptare .

a. 1001110110001111 c. 1100111010001111
b. 0011011110001111 d. 0011101100101111

33. Considerati sistemul de criptare bloc DES. Folosind modul de utilizare CBC al acestuia, codificati

secventa de text clar x = 1101110110101001, folosind cheia de criptare . Blocul

initial este IV = 1100.


a. 0101000010010001 c. 1000100100001001
b. 0001010100001001 d. 1000101000001100

34. Considerati sistemul de criptare bloc DES. Folosind modul de utilizare CBC al acestuia, codificati

secventa de text clar x = 1010010110000001, folosind cheia de criptare . Blocul

initial este IV = 1111.


a. 1100011010110011 c. 0011100111101100
b. 0101100111101010 d. 0011010111101100

35. Considerati sistemul de criptare bloc DES. Folosind modul de utilizare CBC al acestuia, codificati

secventa de text clar x = 1101010110101110, folosind cheia de criptare . Blocul

initial este IV = 0110.


a. 0111001000011111 c. 1110100000101111
b. 1001001010001111 d. 1110001001001111

36. Considerati sistemul de criptare bloc DES. Folosind modul de utilizare OFB al acestuia, codificati

secventa de text clar x = 1001110001000001, folosind cheia de criptare . Blocul

initial este IV = 0011.


a. 1010111100101000 c. 1010000000011000
b. 0011000000010010 d. 0011000000100001

37. Considerati sistemul de criptare bloc DES. Folosind modul de utilizare OFB al acestuia, codificati

secventa de text clar x = 1011110100110101, folosind cheia de criptare . Blocul

initial este IV = 1001.


a. 0010010001101100 c. 0010001001101101
b. 1000001001101101 d. 1000100010100110
38. Considerati sistemul de criptare bloc DES. Folosind modul de utilizare OFB al acestuia, codificati

secventa de text clar x = 1000000111111010, folosind cheia de criptare . Blocul

initial este IV = 1101.


a. 1001110000101110 c. 0011011000011101
b. 0011011000010111 d. 0110110000100111

39. Considerati sistemul de criptare bloc DES. Folosind modul de utilizare CFB al acestuia, codificati

secventa de text clar x = 0001100001101001, folosind cheia de criptare . Blocul

initial este IV = 0110.


a. 1101110010101111 c. 1101110001010000
b. 1101111110011010 d. 1101111110101111

40. Considerati sistemul de criptare bloc DES. Folosind modul de utilizare CFB al acestuia, codificati

secventa de text clar x = 1111000010010110, folosind cheia de criptare . Blocul

initial este IV = 0010.


a. 1101110111101101 c. 0111110111101000
b. 0111110101110010 d. 0111100111000011

41. Considerati sistemul de criptare bloc DES. Folosind modul de utilizare CFB al acestuia, codificati

secventa de text clar x = 0001100011011011, folosind cheia de criptare . Blocul

initial este IV = 1101.


a. 1111011100001011 c. 1111011100001110
b. 1111011101101101 d. 1111011101101000

42. Pentru codificarea unui text clar se foloseste un sistem de criptare cu cheie publica. Daca criptanalistul
dispune de un text criptat y, atunci acesta poate cauta un text clar x astfel incat . Ce modalitate
de aparare considerati a fi posibila in acest caz?
a. gradul de complexitate al sistemului c. gradul de complexitate al textului clar x
b. gradul de complexitate al textului criptat y d. asigurarea accesului la informatie doar
partilor autorizate

43. Sistemul de criptare RSA se bazeaza pe...


a. dificultatea calculului logaritmului discret c. teoria algebrica a codurilor
intr-un corp finit
b. dificultatea descompunerii in factori primi d. problema {0, 1} a rucsacului
a numerelor mari (de sute de cifre)

44. Sistemul de criptare El-Gamal se bazeaza pe...


a. dificultatea calculului logaritmului discret c. teoria algebrica a codurilor
intr-un corp finit
b. dificultatea descompunerii in factori primi d. problema {0, 1} a rucsacului
a numerelor mari (de sute de cifre)

45. Fie d exponentul de deciptare al cifrului RSA construit cu numerele prime p = 5 si q = 7. Daca
exponentul de criptare este e = 5, atunci
a. d = 7 c. d = 11
b. d = 5 d. d = 3

46. Fie d exponentul de deciptare al cifrului RSA construit cu numerele prime p = 3 si q = 5. Daca
exponentul de criptare este e = 7, atunci
a. d = 5 c. d = 11
b. d = 7 d. d = 3

47. Daca d este exponentul de deciptare al unui cifru RSA construit cu numerele prime p = 5 si q = 17 si
avand exponentul de criptare este e = 3, atunci
a. d = 13 c. d = 43
b. d = 38 d. d = 23

48. Un utilizator al cifrului RSA are ca cheie publica (n, e) = (35, 5) si ca cheie secreta d = 5. Daca
primeste textul cifrat c = 33 atunci textul in clar m corespunzator este:
a. m = 3 c. m = 13
b. m = 15 d. m = 11

49. Un utilizator al cifrului RSA are ca cheie publica (n, e) = (35, 5) si ca cheie secreta d = 5. Daca
primeste textul cifrat c = 3 atunci textul in clar m corespunzator este:
a. m = 3 c. m = 33
b. m = 15 d. m = 1

50. Un utilizator al cifrului RSA alege numerele prime p = 5 si q = 11 si exponentul de criptare e = 3.


Daca d este exponentul de decriptare corespunzator, atunci:
a. d = 15 c. m = 27
b. d = 13 d. m = 16

51. Fie e exponentul de criptare al unui cifru RSA construit cu numerele prime p = 5 si q = 17 si avand ca
exponent de decriptare pe d = 43. Avem:
a. e = 3 c. e = 15
b. e = 5 d. e = 9

52. Fie e exponentul de criptare al unui cifru RSA construit cu numerele prime p = 7 si q = 11 si avand ca
exponent de decriptare pe d = 11. Avem:
a. e = 3 c. e = 15
b. e = 5 d. e = 11

53. Fie e = 4 exponentul de criptare al unui cifru RSA construit cu numerele prime p = 3 si q = 5.
Determinati codificarea c a textului clar m = 11.
a. c = 3 c. c = 15
b. c = 5 d. c = 1
54. Fie Folosind eventual un algoritm de exponentiere rapida modulo 15, avem:
a. r = 7 c. r = 12
b. r = 4 d. r = 6

55. Fie m = 4 x 9 x 5 = 180 si asfel incat


a mod 4 = 2, a mod 9 = 3, a mod 5 = 1.
Avem:
a. a = 132 c. a = 66
b. a = 31 d. a = 77

56. Fie m = 4 x 5 x 7 = 140 si asfel incat


a mod 4 = 3, a mod 9 = 5, a mod 7 = 3.
Avem:
a. a = 113 c. a = 73
b. a = 59 d. a = 77

57. Folosind protocolul Diffie - Hellman Alice si Bob aleg p = 7 si pe g = 3 ca radacina primitiva modulo
7. Daca cheia secreta a lui Alice este a = 4, cheia secreta a lui Bob este b = 2, iar k este cheia secreta
comuna, atunci
a. k = 5 c. k = 6
b. k = 2 d. k = 4

58. Folosind protocolul Diffie - Hellman Alice si Bob aleg p = 17 si pe g = 3 ca radacina primitiva modulo
17. Daca cheia secreta a lui Alice este a = 7, cheia secreta a lui Bob este b = 4, iar k este cheia secreta
comuna, atunci
a. k = 8 c. k = 4
b. k = 3 d. k = 5

59. Fie p = 17 si fie g = 3 o radacina primitiva modulo 17. Daca atunci


a. a = 9 c. a = 5
b. a = 13 d. a = 7

60. Fie p = 17 si fie g = 3 o radacina primitiva modulo 17. Daca atunci


a. a = 3 c. a = 11
b. a = 13 d. a = 7

61. Daca N este numarul tuturor cheilor cifrului DES, atunci


a. c.
b. d.

62. Fie si fie functia de criptare afina .


Daca astfel incat , atunci
a. c.
b. d.
63. Fie si n numarul functiilor de criptare afina
, unde si gcd(a, 26)=1. Avem:
a. n = 312 c. n = 100
b. n = 676 d. n = 250

64. Fie si functia de criptare afina , unde


si gcd(a, 26)=1. Daca , atunci:
a. a = 15 , b = 13 c. a = 7 , b = 2
b. a = 11 , b = 24 d. a = 11 , b = 13

65. Fie N > 1, cu gcd(a, N) = 1 si functia de criptare afina


. Care dintre afirmatiile:

(A) cu si
(B) astfel incat
(C) este permutare a multimii

este adevarata?
a. A c. C
b. B d. nici una

66. Daca r este numarul rundelor cifrului DES ca cifru Feistel, atunci
a. r = 13 c. r = 5
b. r = 18 d. r = 16

67. Fie cifrul RSA construit cu numerele prime p, q si fie n = pq. Daca e este exponentul de criptare,
atunci:
a. gcd(e, (p - 1)(q - 1)) = 1 c. gcd(e, n + 1) = 1
b. gcd(e, n) = 1 d. gcd(e, (p - 1)(q - 1)) 1

68. Fie cifrul RSA construit cu numerele prime p, q si fie n = pq. Daca n = pq, e este exponentul de
criptare si d este exponentul de decriptare, iar , atunci:
a. c.
b. d.

69. Fie p > 2 un numar prim, g o radacina primitiva modulo p si . Avem:


a. c.

b. d.

70. Fie p = 13 si g = 2 o radacina primitiva modulo 13. Daca , atunci


a. c.
b. d.

71. Fie cifrul El-Gamal asociat numarului prim p = 11 si radacinii primitive modulo 11 g = 2. Cheia
secreta a lui Alice este a = 3, iar cea a lui Bob b = 4. Daca Bob cripteaza mesajul in clar m = 9 pentru a
fi transmis lui Alice obtine (B, C). Avem:

(A) (B, C) = (7, 2)


(B) (B, C) = (5, 3)
(C) (B, C) = (9, 6)
a. nici un raspuns corect c. B
b. A d. C

72. Fie cifrul El-Gamal asociat numarului prim p = 7 si radacinii primitive modulo 7 egale cu 5. Cheia
secreta a lui Alice este 3, iar cea a lui Bob 4. Daca Bob cripteaza mesajul in clar 11 pentru a fi transmis
lui Alice obtine:
(A) (2, 6)
(B) (5, 3)
(C) (2, 4)
a. nici un raspuns corect c. B
b. A d. C

73. Fie cifrul El-Gamal asociat numarului prim p = 11 si radacinii primitive modulo 11 g = 2. Cheia
secreta a lui Alice este a = 3, iar cea a lui Bob b = 4. Alice primeste de la Bob textul criptat (5, 3) al
textului in clar m. Avem:

a. m = 9 c. m = 7
b. m = 5 d. m = 6

74. Fie cifrul El-Gamal asociat numarului prim p = 11 si radacinii primitive modulo 11 egale cu 2. Cheia
secreta a lui Alice este a = 4, iar cea a lui Bob b = 7. Alice primeste de la Bob textul criptat (3, 7) al
textului in clar. Decodificand, se obtine mesajul clar

a. 9 c. 7
b. 10 d. 6

75. Fie cifrul El-Gamal asociat numarului prim p = 23 si radacinii primitive modulo 23 g = 7. Cheia
secreta a lui Alice este a = 6, iar cea a lui Bob b = 3. Bob cripteaza textul clar m = 7 si obtine (B, C).
Avem:

a. (B, C) = (13, 5) c. (B, C) = (21, 11)


b. (B, C) = (15, 12) d. (B, C) = (3, 5)

76. Fie cifrul El-Gamal asociat numarului prim p = 23 si radacinii primitive modulo 23 g = 7. Cheia
secreta a lui Alice este a = 6, iar cea a lui Bob b = 3. Textul cifrat transmis de Bob lui Alice este (B, C)
= (21, 11). Daca m este textul in clar corespunzator, atunci

a. m = 13 c. m = 9
b. m = 7 d. m = 11
77. Alice alege numerele prime p = 5, q = 11 si exponentul de criptare e = 27. Semnatura RSA pentru
documentul m = 15 emis de Alice este , unde d este exponentul de decriptare
corespunzator lui e. Avem:
a. s = 20 c. s = 41
b. s = 13 d. s = 31

78. Alice alege numerele prime p = 5, q = 11 si exponentul de criptare e = 27. Semnatura RSA pentru
documentul m = 24 emis de Alice este , unde d este exponentul de decriptare
corespunzator lui e. Avem:
a. s = 13 c. s = 43
b. s = 19 d. s = 31

79. Alice alege numerul prim p = 13 si radacina primitiva modulo 13 g = 2 si cheia secreta a = 7. Alice
foloseste semnatura digitala El-Gamal pentru a semna documentul pentru care h(x) = 8,
unde h este o hash-functie cunoscuta public. Alege k = 5 si obtine semnatura (r, s), unde
, iar este inversul lui 5 modulo 12. Avem
a. (r, s) = (6, 10) c. (r, s) = (11, 4)
b. (r, s) = (9, 7) d. (r, s) = (5, 11)
Baze de Date 2010 _ Intrebări orientative

MULTIPLE CHOICE

1. Normalizarea rezolva
a. Anomaliile de stergere, de actualizare si de creare
b. Anomalia de actualizare, de stergere, si de creare
c. Anomalia de inserare, de actualizare si de creare
d. Anomaliile de stergere, de actualizare si de inserare

2. O cheie primara
a. Poate fi compusa numai dintr-un singur atribut
b. Poate fi compusa din mai multe atribute
c. Poate fi compusa dintr-un singur atribut care are si valori NULL
d. Poate fi compusa din zero, unul sau mai multe atribute

3. Prima forma normala rezolva anomaliile cauzate de


a. Grupurile repetitive si atributele multivaloare
b. Dependentele partiale de cheia primara
c. Dependentele tranzitive
d. Relatiile de tip unu-la-mai-multi

4. A doua forma normala rezolva anomaliile cauzate de


a. Grupurile repetitive
b. Dependentele partiale de cheia primara
c. Grupurile repetitive si atributele multivaloare
d. Dependentele tranzitive

5. A treia forma normala rezolva anomaliile cauzate de


a. Dependentele partiale de cheia primara
b. Grupurile repetitive
c. Dependentele tranzitive
d. Atributele multivaloare

6. Relatia m:n devine in modelul relational


a. tabel asociativ cu cheia primara formata numai din doua chei externe pentru cele doua
tabele asociate
b. tabel asociativ cu cheia primara formata din doua chei externe pentru cele doua tabele
asociate plus eventuale coloane aditionale
c. chei externe
d. entitate independenta

7. Limbajul de definire a datelor (DDL - Data Definition Language) nu include urmatoarea instructiune
a. INSERT
b. CREATE
c. ALTER
d. DROP
8. Limbajul de manipulare a datelor (DML – Data Manipulation Language) nu include instructiunea
a. INSERT
b. UPDATE
c. DELETE
d. DROP

9. Sintaxa corecta pentru o restrictie NOT NULL este


a. nume_coloana REFERENCES NOT NULL
b. nume_coloana tip_de_date IS NOT NULL
c. nume_coloana tip_de_date NOT NULL
d. DEFAULT [NULL | NOT NULL]

10. Utilizarile valide ale instructiunii ALTER TABLE nu includ


a. Adaugarea coloanelor
b. Eliminarea unei chei primare
c. Redenumirea unui tabel
d. Adaugarea unei restrictii

11. Operatorul UNION


a. Include randurile duplicate in setul de rezultate
b. Combina seturile de rezultate a doua interogari intr-un singur set de rezultate si elimina
randurile duplicate din setul de rezultate
c. Combina doua interogari intr-o singura interogare de tip join
d. Este numit JOIN in unele implementari SQL

12. Care este varianta corecta pentru a crea tabelul CARTE, cu caracteristicile de mai jos (codc cheie
primara, coddom cheie secundara), indicand cheile la nivel de tabel?
(Tabelele DOMENIU_CARTE si CARTE sunt in relatia 1:M).
a. CREATE TABLE CARTE
(codc CHAR(5) PRIMARY KEY,
titlu VARCHAR2(30),
autor VARCHAR2(30),
pret NUMBER(8,2),
nrex NUMBER(3),
coddom CHAR(5) NOT NULL);
b. CREATE TABLE CARTE
(codc CHAR(5) PRIMARY KEY,
titlu VARCHAR2(30),
autor VARCHAR2(30),
pret NUMBER(8,2),
nrex NUMBER(3),
coddom CHAR(5) NOT NULL
REFERENCES DOMENIU(coddom));
c. CREATE TABLE CARTE
(codc CHAR(5),
titlu VARCHAR2(30),
autor VARCHAR2(30),
pret NUMBER(8,2),
nrex NUMBER(3),
coddom CHAR(5) NOT NULL,
PRIMARY KEY (codc),
FOREIGN KEY (coddom) REFERENCES DOMENIU (coddom));

13. Sa se creeze tabelul asociativ imprumuta, a carui structura este data mai jos(codc, codcit si dataim
fac parte din cheia primara). Sa se precizeze legatura cu tabelele carte si cititor.
a. IMPRUMUTA (
codc CHAR(5),
codcit CHAR(5),
dataim DATE DEFAULT SYSDATE,
datares DATE,
dataef DATE,
PRIMARY KEY (codc, codcit, dataim),
FOREIGN KEY (codc)
REFERENCES CARTE (codc),
FOREIGN KEY (codcit)
REFERENCES CITITOR(codcit));
b. IMPRUMUTA (
codc CHAR(5) PRIMARY KEY,
codcit CHAR(5) PRIMARY KEY,
dataim DATE DEFAULT SYSDATE PRIMARY KEY,
datares DATE,
dataef DATE,
FOREIGN KEY (codc)
REFERENCES CARTE (codc),
FOREIGN KEY (codcit)
REFERENCES CITITOR(codcit));
c. IMPRUMUTA (
codc CHAR(5) REFERENCES CARTE (codc),
codcit CHAR(5) REFERENCES CITITOR(codcit),
dataim DATE DEFAULT SYSDATE PRIMARY KEY,
datares DATE,
dataef DATE,
PRIMARY KEY (codc, codcit);

14. Sa se creeze tabelul CARTE_INFO(codc, titlu, autor) prin copiere din tabelul
CARTE(codc CHAR(5), titlu VARCHAR2(30), autor VARCHAR2(30),
pret NUMBER(8,2), nrex NUMBER(3), coddom CHAR(5))
selectand cartile care au coddom=’I’.
a. CREATE TABLE CARTEINFO
(codc CHAR(5),
titlu VARCHAR2(30),
autor VARCHAR2(30),
FROM CARTE
PRIMARY KEY (codc),
FOREIGN KEY (coddom)
REFERENCES DOMENIU (coddom));
b. CREATE TABLE CARTE_INFO
(codc CHAR(5) PRIMARY KEY,
titlu VARCHAR2(30),
autor VARCHAR2(30),
FROM CARTE
WHERE coddom = ’I’;
c. CREATE TABLE CARTE_INFO
AS SELECT codc, titlu, autor
FROM CARTE
WHERE coddom = ’I’;

15. Care este comanda corecta prin care se adauga constrangerea de cheie primara tabelului
IMPRUMUTA (cod_cititor, cod_carte, data_imprumut, data_restituire)?
a. ALTER TABLE IMPRUMUTA
ADD PRIMARY KEY cod_cititor, PRIMARY KEY cod_carte, PRIMARY KEY
data_imprumut;
b. ALTER TABLE IMPRUMUTA
ADD PRIMARY KEY cod_cititor, cod_carte, data_imprumut;
c. ALTER TABLE IMPRUMUTA
ADD CONSTRAINT cp PRIMARY KEY (cod_cititor, cod_carte, data_imprumut);
d. ALTER TABLE IMPRUMUTA
ADD CONSTRAINT PRIMARY KEY (cod_cititor, cod_carte, data_imprumut);

16. Sa se insereze in tabelul CARTE toate cartile din tabelul CARTE_INFO, presupunand ca tabelul
CARTE_INFO a fost deja creat.
a. CREATE TABLE CARTE
AS SELECT codc, titlu, autor
FROM CARTE_INFO;
b. INSERT INTO CARTE
SELECT
FROM CARTE_INFO;
c. CREATE TABLE CARTE
AS SELECT *
FROM CARTE_INFO;
d. INSERT INTO CARTE
SELECT *
FROM CARTE_INFO;

17. Pentru profesorii titulari, sa se maresca cumulul cu 10% si sa se rotunjeasca la 2 zecimale.


a. UPDATE PROF SET CUMUL = (CUMUL*1.1)
WHERE TITULAR=’Y’;
b. MODIFY PROF SET CUMUL = ROUND(CUMUL*1.1,2)
WHERE TITULAR=’Y’;
c. UPDATE PROF SET CUMUL = ROUND(CUMUL*1.1,2);
WHERE TITULAR=’Y’;
d. UPDATE PROF SET CUMUL = ROUND(CUMUL*1.1,2);

18. Sa se modifice pretul cartilor din biblioteca, care se gasesc intr-un numar de exemplare mai mic decat
media numarului de exemplare pe biblioteca. Noua valoare a pretului sa fie egala cu suma preturilor
cartilor scrise de ‘BARBU’.
a. UPDATE CARTE
SET pret = (SELECT SUM(pret)
FROM CARTE
WHERE autor = ’BARBU’)
WHERE nrex < (SELECT AVG(nrex)
FROM CARTE);
b. MODIFY CARTE
SET pret = (SELECT SUM(pret)
FROM carte
WHERE autor = ’BARBU’)
WHERE nrex < (SELECT AVG(nrex)
FROM CARTE);
c. UPDATE CARTE
pret = ( SUM(pret)
FROM carte
WHERE autor = ’BARBU’)
WHERE nrex < ( AVG(nrex) FROM CARTE);
d. UPDATE CARTE
pret = (SELECT SUM(pret)
FROM carte
WHERE autor = ’BARBU’ and
nrex < ( AVG(nrex) FROM CARTE);

19. O uniune (join) fara o clauza WHERE sau o clauza JOIN


a. Nu returneaza nici un rand din setul de rezultate
b. Reprezinta o uniune interna (inner join)
c. Are ca rezultat un produs cartezian
d. Reprezinta o uniune externa (outer join)

20. O uniune externa (outer join) nu


a. Poate fi scrisa in Oracle SQL folosind un simbol (+) in clauza FROM
b. Poate fi scrisa in Oracle SQL folosind un simbol (+) in clauza WHERE
c. Returneaza toate randurile din unul sau din ambele tabele
d. Poate fi catre stanga, catre dreapta sau completa

21. Sa se obtina pentru fiecare carte, codul sau si numarul de exemplare care nu au fost inca restituite.
a. SELECT codc
FROM IMPRUMUTA
WHERE dataef IS NULL
GROUP BY codc;
b. SELECT COUNT(*)
FROM IMPRUMUTA
GROUP BY codc;
c. SELECT codc, COUNT(*)
FROM IMPRUMUTA
WHERE dataef IS NULL
GROUP BY codc;
d. SELECT COUNT(*)
FROM IMPRUMUTA
WHERE dataef =0
GROUP BY codc;

22. Care este secventa corecta care afiseaza cate carti au fost imprumutate cel putin de doua ori?
a. SELECT COUNT(COUNT(codcarte))
FROM imprumuta
GROUP BY codcarte
HAVING COUNT(codcarte)>1;
b. SELECT COUNT(codcarte)
FROM imprumuta
GROUP BY codcarte
HAVING COUNT(codcarte)>1;
c. SELECT COUNT(COUNT(codcarte))
FROM imprumuta
WHERE COUNT(codcarte)>1;
d. SELECT COUNT(codcarte)
FROM imprumuta
ORDER BY codcarte
HAVING COUNT(codcarte)>1;

23. Care este secventa corecta care afiseaza pentru fiecare domeniu de carte, numarul cartilor din domeniu,
media preturilor si numarul total de exemplare?
a. SELECT codcarte, COUNT(*), AVG(pret)
FROM CARTE
GROUP BY codcarte;
b. SELECT coddomeniu, AVG(pret), SUM(nrex)
FROM CARTE
GROUP BY codcarte;
c. SELECT coddomeniu, COUNT(*), AVG(pret), SUM(nrex)
FROM CARTE
GROUP BY coddomeniu;
d. SELECT COUNT(*), AVG(pret), SUM(nrex)
FROM CARTE
ORDER BY codcarte;

24. Care este comanda corecta care pentru fiecare facultate, insereaza in tabelul TOTALURI(cod_fac,
nr_prof, total_sal_fac) numarul de profesori si suma salariilor pe care facultatea o plateste profesorilor
sai?
a. INSERT TO TOTALURI
SELECT COD_FAC, COUNT(*) , SUM(SALARIU)
FROM PROF
ORDER BY COD_FAC;
b. INSERT INTO TOTALURI
SELECT COD_FAC, COUNT(*) , SUM(SALARIU)
FROM PROF ;
c. INSERT INTO TOTALURI
SELECT COD_FAC, COUNT(*) , SUM(SALARIU)
FROM PROF
GROUP BY COD_FAC;
d. INSERT INTO TOTALURI
SELECT COD_FAC, SUM(COD_PROF), SUM(SALARIU)
FROM PROF
GROUP BY COD_FAC;

25. Sa se obtina titlurile si preturile cartilor mai scumpe decat cartea avand titlul “Baze de date”, al carui
autor este Popescu (self join).
a. SELECT x.titlu, x.pret
FROM carte x, y
WHERE x.pret < y.pret
AND y.titlu = ’Baze de date’
AND y.autor = ’Popescu’;
b. SELECT x.titlu, x.pret
FROM carte x, carte y
WHERE x.pret > y.pret
AND y.titlu = ’Baze de date’
AND y.autor = ’ Popescu’;
c. SELECT x.titlu, x.pret
FROM carte x, carte y
WHERE x.pret > y.pret
AND titlu = ’Baze de date’
AND autor = ’ Popescu’;
d. SELECT x.titlu, x.pret
FROM carte x, carte y
WHERE x.pret > y.pret
AND y.titlu = ’Baze de date’, y.autor = ’ Popescu’;

26. Pentru tabelele


PROFESORI(codp, nume, pren, salariu)
COPII (codc, codp, nume_c, virsta)
care este secventa corecta pentru a afisa profesorii care au copii?
a. SELECT a.nume, a.pren
FROM PROFESORI A
WHERE a.codp IN (SELECT DISTINCT codp
FROM COPII);
b. SELECT a.nume, a.pren
FROM PROFESORI A
WHERE a.codp IN DISTINCT codp
FROM COPII;
c. SELECT a.nume, a.pren
FROM PROFESORI A
WHERE a.codp IN COPII;

27. Pentru tabelele


PROFESORI(codp, nume, pren, salariu)
COPII (codc, codp, nume_c, virsta)
care este secventa corecta pentru a afisa profesorii fara copii?
a. SELECT a.nume, a.pren
FROM PROFESORI A
WHERE a.codp IS NOT (SELECT DISTINCT codp FROM COPII);
b. SELECT a.nume, a.pren
FROM PROFESORI A
WHERE a.codp NOT IN (SELECT DISTINCT codp FROM COPII);
c. SELECT a.nume, a.pren
FROM PROFESORI A
WHERE a.codp NOT IN SELECT codp FROM copii;

28. Se considera pentru actionarii unei firme, urmatoarele tabele


ACTIONARI(nume varchar2(20), cod_act number(5))
ACTIUNI (cod_act number(5), seriain number(8), seriasf number(8), valoare number(8))
(unde seriain si seriasf reprezinta seria de inceput, respectiv de sfarsit al intervalului de actiuni pe care
il are un actionar).
Care este secventa corecta care afiseaza pentru un actionar (introdus de la tastatura), intervalele
seriilor actiunilor sale?
a. SELECT a.seriain, a.seriasf, b.nume
FROM actiuni a, actionari b
WHERE a.cod_act=b.cod_act AND b.nume=‘&x’;
b. SELECT a.seriain, a.seriasf, b.nume
FROM actiuni , actionari
WHERE a.cod_act=b.cod_act AND nume=‘&x’;
c. SELECT a.seriain, a.seriasf, b.nume
FROM actiuni a, actionari b
WHERE a.cod_act=b.cod_act ;
d. SELECT a.seriain, a.seriasf, b.nume
FROM actiuni a, actionari b
WHERE a.cod_act=b.cod_act OR b.nume=‘&x’;

29. Se considera pentru actionarii unei firme, tabelul


ACTIUNI (cod_act number(5), seriain number(8), seriasf number(8), valoare number(8))
(unde seriain si seriasf reprezinta seria de inceput, respectiv de sfarsit al intervalului de actiuni pe care
il are un actionar).
Care este secventa corecta care afiseaza suma necesara firmei pentru plata tuturor
devidentelor (numarul de actiuni inmultit cu valoarea unei actiuni)?
a. SELECT SUM((seriain+seriasf)*valoare))
FROM ACTIUNI;
b. SELECT SUM((seriasf-seriasf)*valoare))
FROM ACTIUNI;
c. SELECT SUM((seriain-seriasf)*valoare))
FROM ACTIUNI;
d. SELECT SUM((seriasf-seriain+1)*valoare))
FROM ACTIUNI;

30. Pentru tabelele


Angajat(cod_angajat, nume, pren, …..)
Are_functia (cod_angajat, cod_functie, salariu ,…..)
Functii(cod_functie, ……)
care este comanda corecta pentru a calcula suma salariilor angajatului ‘ENE ANA’, care cumuleaza
mai multe functii, in diferite compartimente?
a. SELECT COUNT(SALARIU) AS SALARIU_CUMULAT
FROM salariat, are_functia
WHERE s.cod_salariat=a.cod_salariat
AND NUME='ENE' AND PREN='ANA’;
b. SELECT Sum(SALARIU) AS SALARIU_CUMULAT
FROM salariat, are_functia
WHERE NUME='ENE' , PREN='ANA’;
c. SELECT Sum(SALARIU) AS SALARIU_CUMULAT
FROM salariat s, are_functia a
WHERE s.cod_salariat=a.cod_salariat
AND NUME='ENE' AND PREN='ANA’;

31. Care este comanda corecta care afiseaza daca exista angajati care nu lucreaza in departamentul
‘Contractari’ si al caror salariu coincide cu salariul unui angajat din departamentul ‘Contractari’?
a. SELECT nume, salariu, cod_depart
FROM salariati
WHERE salariu IN (SELECT salariu FROM salariati , department d
WHERE s.cod_depart = d.cod_depart AND nume_depart <> ‘Contractari’)
AND cod_depart= (SELECT cod_depart FROM department
WHERE nume_depart = ‘Contractari’);
b. SELECT nume, salariu, cod_depart
FROM salariati
WHERE salariu IS IN (SELECT salariu FROM salariati , department
WHERE s.cod_depart = d.cod_depart , nume_depart = ‘Contractari’)
AND cod_depart<> (SELECT cod_depart FROM department
WHERE nume_depart = ‘Contractari’);
c. SELECT nume, salariu, cod_depart
FROM salariati
WHERE (salariu) IN (SELECT salariu FROM salariati s, department d
WHERE s.cod_depart = d.cod_depart AND nume_depart = ‘Contractari’)
AND cod_depart<> (SELECT cod_depart FROM department
WHERE nume_depart = ‘Contractari’);

32. Care este comanda corecta care afiseaza numarul total de carti imprumutate si restituite pentru fiecare
cititor al unei biblioteci?
a. SELECT cod_cititor, COUNT()
FROM imprumuta
WHERE data_restituirii NOT NULL
GROUP BY cod_cititor;
b. SELECT cod_cititor, COUNT(*)
FROM imprumuta
WHERE data_restituirii IS NOT NULL;
c. SELECT cod_cititor, COUNT(*)
FROM imprumuta
GROUP BY cod_cititor;
d. SELECT cod_cititor, COUNT(*)
FROM imprumuta
WHERE data_restituirii IS NOT NULL
GROUP BY cod_cititor;

33. Care este comanda corecta care afiseaza numele salariatilor care castiga mai mult decat salariul mediu
pe companie, in ordine crescatoare a salariului?
a. SELECT nume
FROM salariati
WHERE salariu >AVG(salariu);
b. SELECT nume
FROM salariati
WHERE salariu > (SELECT AVG(salariu) FROM salariati)
ORDER BY salariu;
c. SELECT nume
FROM salariati
WHERE salariu > (SELECT AVG(salariu) FROM salariati
ORDER BY salariu);
d. SELECT nume
FROM salariati
WHERE salariu > (SELECT AVG(salariu) FROM salariati)
ORDER BY 1;

34. Care comanda listeaza numele tuturor angajatilor care au a treia litera din nume 'a'?
a. SELECT nume
FROM salariat
WHERE nume LIKE '__a$';
b. SELECT nume
FROM salariat
WHERE nume LIKE '%a%';
c. SELECT nume
FROM salariat
WHERE nume LIKE '__a%';

35. Care dintre urmatoarele comenzi intoarce numarul zilei din luna carespunzator datei curente?
a. SELECT TO_CHAR(SYSDATE,’DDD’)
FROM dual;
b. SELECT TO_CHAR(SYSDATE,’DAY’)
FROM dual;
c. SELECT TO_CHAR(SYSDATE,’D’)
FROM dual;
d. SELECT TO_CHAR(SYSDATE,’DD’)
FROM dual;

36. Care este comanda care nu elimina simultan spatiile de la inceputul si sfarsitul coloanei nume?
a. SELECT TRIM(nume)
FROM salariat;
b. SELECT RTRIM(LTRIM(nume))
FROM salariat;
c. SELECT LTRIM(RTRIM(nume))
FROM salariat;
d. SELECT LTRIM(nume)
FROM salariat;

37. Care comanda care afiseaza numarul de angajati din fiecare departament?
a. SELECT cod_departament, COUNT(*)
FROM salariat;
b. SELECT cod_departament, SUM(cod_angajat)
FROM salariat
GROUP BY cod_departament;
c. SELECT cod_departament, COUNT(*)
FROM salariat
GROUP BY cod_departament;
d. SELECT cod_departament, COUNT()
FROM salariat
GROUP BY cod_departament;

38. Care este comanda corecta care afiseaza codul departamentelor pentru care salariul minim depaseste
5000?
a. SELECT cod_departament
FROM salariat
WHERE MIN(salariu)>5000
GROUP BY cod_departament;
b. SELECT cod_departament
FROM salariat
GROUP BY cod_departament
HAVING MIN(salariu)>5000;
c. SELECT cod_departament
FROM salariat
GROUP BY cod_departament
MIN(salariu)>5000;

39. Care este comanda corecta care afiseza:


- codurile departamentelor in care lucreaza cel putin un angajat, iar pentru fiecare
dintre acestea si pentru fiecare manager care lucreaza in departamentul respectiv numarul
de salariati;
- numarul de salariati pentru fiecare departament indiferent de manager;
- numarul de angajati subordonati unui manager indiferent de department;
- numarul total de angajati din companie?
a. SELECT cod_depart, cod_manager, COUNT(cod_angajat)
FROM salariati
GROUP BY CUBE (cod_depart, cod_manager);
b. SELECT cod_depart, cod_manager, COUNT(cod_angajat)
FROM salariati
GROUP BY cod_depart, cod_manager;
c. SELECT cod_depart, cod_manager, COUNT(cod_angajat)
FROM salariati
GROUP BY ROLLUP (cod_depart, cod_manager);

40. Care este comanda corecta care afiseaza:


- codurile departamentelor in care lucreaza cel putin un angajat, iar pentru fiecare dintre
acestea si pentru fiecare manager care lucreaza in departamentul respectiv numarul de
salariati;
- numarul de salariati pentru fiecare departament indiferent de manager;
- numarul total de angajati din companie?
a. SELECT cod_depart, cod_manager, COUNT(*)
FROM salariati
GROUP BY CUBE (cod_depart, cod_manager);
b. SELECT cod_depart, cod_manager, COUNT(*)
FROM salariati
GROUP BY cod_depart, cod_manager;
c. SELECT cod_depart, cod_manager, COUNT(*)
FROM salariati
GROUP BY ROLLUP (cod_depart, cod_manager);

41. Care este comanda corecta care afiseaza numarul total al cartilor imprumutate in anul 2009?
a. SELECT COUNT()
FROM imprumuta
WHERE TO_CHAR(data_imprumutului,’yyyy’)=2009;
b. SELECT COUNT(*)
FROM imprumuta
WHERE TO_CHAR(data_imprumutului,’yyyy’)=2009;
c. SELECT COUNT(*)
FROM imprumuta
WHERE data_imprumutului=2009;
d. SELECT COUNT(*)
FROM imprumuta
WHERE TO_CHAR(data_imprumutului,’yy’)=2009;
42. Care este comanda corecta care afiseaza numele si salariul angajatilor condusi direct de Ionescu
Mihai?
a. SELECT nume, salariu
FROM salariati
WHERE cod_sef != (SELECT cod_angajat FROM salariati
WHERE nume ='Ionescu' AND prenume ='Mihai' );
b. SELECT nume, salariu
FROM salariati
WHERE cod_sef = (SELECT cod_angajat FROM salariati
WHERE nume ='Ionescu', prenume ='Mihai' );
c. SELECT nume, salariu
FROM salariati
WHERE cod_sef = ‘Ionescu Mihai';
d. SELECT nume, salariu
FROM salariati
WHERE cod_sef = (SELECT cod_angajat FROM salariati
WHERE nume ='Ionescu' AND prenume ='Mihai' );

43. Care este comanda corecta care afiseaza numele salariatilor si numele departamentelor in care
lucreaza, inclusiv departamentele in care nu lucreaza salariati?
a. SELECT nume_salariat, nume_departament
FROM salariati s, departamente d
WHERE s.cod_departament = d.cod_departament;
b. SELECT nume_salariat, nume_departament
FROM salariati s, departamente d
WHERE s.cod_departament(+) = d.cod_departament;
c. SELECT nume_salariat, nume_departament
FROM salariati s, departamente d
WHERE s.cod_departament = d.cod_departament(+);
d. SELECT nume_salariat, nume_departament
FROM salariati s, departamente d
WHERE s.cod_departament(+) = d.cod_departament(+);

44. Care este comanda corecta care listeaza numele functiilor salariatilor care lucreaza in departamentul
30, fara duplicate?
a. SELECT DISTINCT nume_functie
FROM salariati s, functii f
WHERE cod_functie=cod_functie
AND cod_departament= 30;
b. SELECT DISTINCT nume_functie
FROM salariati s, functii f
WHERE s.cod_functie=f.cod_functie
AND cod_departament= 30;
c. SELECT DISTINCT nume_functie
FROM salariati, functii
WHERE s.cod_functie=f.cod_functie
AND cod_departament= 30;
d. SELECT nume_functie
FROM salariati s, functii f
WHERE s.cod_functie=f.cod_functie
AND cod_departament= 30;
45. Care este comanda corecta care afiseaza toate functiile pe care nu lucreaza angajati?
a. SELECT cod_functie
FROM functii
WHERE cod_functie IN
(SELECT cod_functie FROM salariati WHERE cod_functie IS NOT NULL);
b. SELECT cod_functie
FROM functii
WHERE cod_functie NOT IN
(SELECT cod_functie FROM salariati WHERE cod_functie IS NULL);
c. SELECT cod_functie
FROM functii
WHERE cod_functie NOT IN
(SELECT cod_functie FROM salariati);
d. SELECT cod_functie
FROM functii
WHERE cod_functie NOT IN
(SELECT cod_functie FROM salariati WHERE cod_functie IS NOT NULL);

46. Care este comanda corecta care listeaza fara duplicate, codul operelor de arta (numeric), codul
(numeric) si numele artistilor (sir de caractere)?
a. SELECT cod_opera, cod_artist, null nume
FROM opera
UNION ALL
SELECT null, cod_artist, nume
FROM artist;
b. SELECT cod_opera, cod_artist, TO_CHAR(null) nume
FROM opera
UNION
SELECT TO_NUMBER(null), cod_artist, nume
FROM artist;
c. SELECT cod_opera, cod_artist, nume
FROM opera
UNION
SELECT cod_artist, nume
FROM artist;

47. Care este comanda corecta care obtine codurile cartilor care se gasesc in biblioteca in mai putin de 20
exemplare si care au fost împrumutate de cel putin trei ori?
a. SELECT codcarte FROM carte
WHERE nrex < 20
MINUS
SELECT codcarte FROM imprumuta
GROUP BY codcarte
HAVING COUNT(*) > 3;
b. SELECT codcarte FROM carte
WHERE nrex < 20
INTERSECT
SELECT codcarte FROM imprumuta
GROUP BY codcarte
HAVING COUNT(*) > 3;
c. SELECT codcarte FROM carte
WHERE nrex < 20
UNION
SELECT codcarte FROM imprumuta
GROUP BY codcarte
HAVING COUNT(*) > 3;

48. Care este comanda corecta care afiseaza informatii referitoare la operele de arta, artistii care le-au creat
si galeriile în care sunt expuse?
a. SELECT cod_opera, titlu, data_crearii, a.cod_artist, nume, prenume,
g.cod_galerie, nume_galerie, adresa
FROM opera o, galerie g, artist a
WHERE o.cod_artist = a.cod_artist;
b. SELECT cod_opera, titlu, data_crearii, a.cod_artist, nume, prenume,
g.cod_galerie, nume_galerie, adresa
FROM opera, galerie, artist
WHERE opera.cod_artist = artist.cod_artist
AND o.cod_galerie = g.cod_galerie;
c. SELECT cod_opera, titlu, data_crearii, a.cod_artist, nume, prenume,
g.cod_galerie, nume_galerie, adresa
FROM opera o, galerie g, artist a
WHERE o.cod_artist = a.cod_artist
AND o.cod_galerie = g.cod_galerie;

49. Care este comanda corecta care afiseaza informatii referitoare la titlul operelor de arta expuse în
galeriile având codul 20 sau 40, respectiv numele si prenumele artistilor care le-au realizat?
a. SELECT titlu, nume, prenume
FROM opera JOIN artist
WHERE cod_galerie IN (20, 40);
b. SELECT titlu, nume, prenume
FROM opera NATURAL JOIN artist
WHERE cod_galerie IN (20, 40);
c. SELECT titlu, nume, prenume
FROM opera NATURAL JOIN artist USING cod_artist
WHERE cod_galerie IN (20, 40);
d. SELECT titlu, nume, prenume
FROM opera JOIN artist ON (cod_artist)
WHERE cod_galerie IN (20, 40);

50. Care este comanda corecta care afiseaza informatii referitoare la artisti si operele acestora, inclusiv cei
care nu au opere expuse în cadrul muzeului?
a. SELECT nume, prenume, titlu
FROM opera o
RIGHT OUTER JOIN artist a ON (o.cod_artist = a.cod_artist);
b. SELECT nume, prenume, titlu
FROM opera o
LEFT OUTER JOIN artist a ON (o.cod_artist = a.cod_artist);
c. SELECT nume, prenume, titlu
FROM opera o, artist
WHERE o.cod_artist = a.cod_artist(+);
d. SELECT nume, prenume, titlu
FROM opera o
FULL OUTER JOIN artist a ON o.cod_artist = a.cod_artist;
51. Care este comanda corecta care afiseaza numele si prenumele artistilor, precum si titlurile operelor
create de acestia? Se vor afisa si artistii care nu au opere expuse în cadrul muzeului, precum si titlurile
operelor al caror autor este necunoscut.
a. SELECT nume, prenume, titlu
FROM opera o
RIGHT OUTER JOIN artist a ON (o.cod_artist = a.cod_artist);
b. SELECT nume, prenume, titlu
FROM opera o, artist a
WHERE o.cod_artist(+) = a.cod_artist(+);
c. SELECT nume, prenume, titlu
FROM opera o
FULL OUTER JOIN artist a ON (o.cod_artist = a.cod_artist);
d. SELECT nume, prenume, titlu
FROM opera o
LEFT OUTER JOIN artist a ON (o.cod_artist = a.cod_artist);

52. Care este comanda corecta care afiseaza titlul, codul artistului si valoarea operelor create de artistul
caruia îi apartine opera având codul 200 si care se afla expuse în aceeasi galerie cu operele al caror cod
este 100 sau 110? Se presupune ca o opera are un singur autor.
a. SELECT titlu, cod_artist, valoare
FROM opera
WHERE cod_artist != (SELECT MAX(cod_artist)
FROM opera WHERE cod_opera = 200)
AND cod_galerie IN (SELECT cod_galerie
FROM opera WHERE cod_opera IN (100, 110));
b. SELECT titlu, cod_artist, valoare
FROM opera
WHERE cod_artist = (SELECT cod_artist
FROM opera WHERE cod_opera = 200)
AND cod_galerie IN (SELECT cod_galerie
FROM opera WHERE cod_opera IN (100, 110));
c. SELECT titlu, cod_artist, valoare
FROM opera
WHERE cod_artist = (SELECT cod_artist
FROM opera WHERE cod_opera = 200)
AND cod_galerie NOT IN (SELECT cod_galerie
FROM opera WHERE cod_opera IN (100, 110));

53. Care este comanda corecta care afiseaza pentru fiecare artist titlul si valoarea celei mai ieftine opere de
arta expuse în muzeu?
a. SELECT titlu, cod_artist, valoare
FROM opera
WHERE valoare IN (SELECT MIN(valoare)
FROM opera
GROUP BY cod_artist);
b. SELECT titlu, cod_artist, valoare
FROM opera
WHERE valoare = (SELECT MIN(valoare)
FROM opera);
c. SELECT titlu, cod_artist, valoare
FROM opera
WHERE valoare = (SELECT MIN(valoare)
FROM opera
ORDER BY cod_artist);

54. Care este comanda corecta care afiseaza codul, numele si prenumele artistilor care au cel putin trei
opere de arta expuse în muzeu?
a. SELECT cod_artist, nume, prenume
FROM artist a
WHERE 3 <= (SELECT COUNT(*)
FROM opera);
b. SELECT cod_artist, nume, prenume
FROM artist a
WHERE 3 <= (SELECT COUNT(*)
FROM opera
WHERE cod_artist = a.cod_artist);
c. SELECT cod_artist, nume, prenume
FROM artist a
WHERE 3 <= (SELECT SUM(cod_opera)
FROM opera
WHERE cod_artist = a.cod_artist);

55. Care este comanda care sterge toti angajatii din departamentul 80 care nu au comision?
a. DELETE FROM angajati
WHERE comision IS NULL
OR cod_departament = 80;
b. DELETE FROM angajati
WHERE comision IS NULL
AND cod_departament = 80;
c. DELETE FROM angajati
WHERE comision = NULL
AND cod_departament = 80;

56. Care este comanda corecta care afiseaza:


- valoarea totala a operelor de arta ale unui autor, expuse în cadrul fiecarei galerii;
- valoarea totala a operelor din fiecare galerie, indiferent de autor;
- valoarea totala a operelor fiecarui autor, indiferent de galerie;
- valoarea totala a operelor.
a. SELECT cod_galerie, cod_artist, SUM(valoare)
FROM opera
GROUP BY cod_galerie, cod_artist;
b. SELECT cod_galerie, cod_artist, SUM(valoare)
FROM opera
GROUP BY ROLLUP(cod_galerie, cod_artist);
c. SELECT cod_galerie, cod_artist, SUM(valoare)
FROM opera
GROUP BY CUBE(cod_galerie, cod_artist);

57. Care este comanda corecta care afiseaza:


- valoarea totala a operelor de arta ale unui autor, expuse în cadrul fiecarei galerii;
- valoarea totala a operelor din fiecare galerie, indiferent de autor;
- valoarea totala a operelor.
a. SELECT cod_galerie, cod_artist, SUM(valoare)
FROM opera
GROUP BY cod_galerie, cod_artist;
b. SELECT cod_galerie, cod_artist, SUM(valoare)
FROM opera
GROUP BY ROLLUP(cod_galerie, cod_artist);
c. SELECT cod_galerie, cod_artist, SUM(valoare)
FROM opera
GROUP BY CUBE(cod_galerie, cod_artist);

58. Considerând galeriile al caror cod este mai mic decât 50, care este comanda corecta care calculeaza
media valorilor operelor:
- pentru fiecare galerie si, în cadrul acesteia, pentru fiecare artist;
- pentru fiecare artist si, în cadrul acestuia, pentru anii de achizitie corespunzatori.
a. SELECT cod_galerie, cod_artist,
TO_CHAR(data_achizitiei, 'yyyy') "an achizitie",
AVG(valoare) "Valoare medie"
FROM opera WHERE cod_galerie < 50
GROUP BY CUBE (cod_galerie, cod_artist, TO_CHAR(data_achizitiei, 'yyyy'));
b. SELECT cod_galerie, cod_artist,
TO_CHAR(data_achizitiei, 'yyyy') "an achizitie",
AVG(valoare) "Valoare medie"
FROM opera WHERE cod_galerie < 50
GROUP BY GROUPING SETS
((cod_galerie, cod_artist), (cod_artist, TO_CHAR(data_achizitiei, 'yyyy')));
c. SELECT cod_galerie, cod_artist,
TO_CHAR(data_achizitiei, 'yyyy') "an achizitie",
AVG(valoare) "Valoare medie"
FROM opera WHERE cod_galerie < 50
GROUP BY ROLLUP (cod_galerie, cod_artist, TO_CHAR(data_achizitiei, 'yyyy'));

59. Se da urmatoarea vizualizare


CREATE VIEW v_angajati
AS
SELECT cod_ang, nume, prenume, salariu, data_angajarii
FROM angajati
WITH READ ONLY;
Care dintre urmatoarele comenzi este corecta?
a. INSERT INTO v_angajati
VALUES (10, ‘Ion’, ‘Daniel’, 1000,’05/12/2009’);
b. DELETE FROM v_angajati
WHERE salariu > 1000;
c. SELECT *
FROM v_angajati;
d. UPDATE v_angajati
SET salariu = salariu + 500
WHERE cod_angajat = 10;

60. Se da urmatoarea vizualizare


CREATE VIEW v_angajati
AS
SELECT cod_ang, nume, prenume, salariu, cod_departament
FROM angajati
WHERE cod_departament = 30
WITH CHECK OPTION;
Care dintre urmatoarele comenzi este corecta?
a. INSERT INTO v_angajati
VALUES (10, ‘Ion’, ‘Daniel’, 1000, 505);
b. SELECT *
FROM v_angajati
WHERE salariu > 505;
c. UPDATE v_angajati
SET cod_departament= 505
WHERE cod_departament = 30;

61. Care este comanda corecta care obtine numele primilor trei angajati care au cele mai mari salarii?
a. SELECT nume
FROM angajati a
WHERE 3>(SELECT COUNT(*)
FROM angajati
WHERE salariu > a.salariu);
b. SELECT nume
FROM angajati a
WHERE COUNT(*) >(SELECT 3
FROM angajati
WHERE salariu > a.salariu);
c. SELECT nume
FROM angajati
WHERE 3>(SELECT COUNT(*)
FROM angajati);

62. Care este comanda corecta care obtine numele angajatilor care castiga salariul maxim in departamentul
in care lucreaza?
a. SELECT nume
FROM salariati s
WHERE salariu =(SELECT MIN(salariu)
FROM angajati );
b. SELECT nume
FROM salariati
WHERE salariu =(SELECT salariu
FROM salariati
WHERE salariu = MIN(salariu));
c. SELECT nume
FROM salariati s
WHERE salariu =(SELECT MIN(salariu)
FROM angajati
WHERE cod_departament=s.cod_departament);

63. Care este comanda corecta care obtine titlurile cartilor care momentan sunt imprumutate (inca nu au
fost restituite)? Dataef reprezinta data la care cititor a restituit efectiv cartea.
a. SELECT titlu
FROM carte
WHERE cod_carte IN
(SELECT DISTINCT cod_carte
FROM imprumuta
WHERE dataef IS NULL);
b. SELECT titlu
FROM carte
WHERE cod_carte NOT IN
(SELECT DISTINCT cod_carte
FROM imprumuta
WHERE dataef IS NULL);
c. SELECT titlu
FROM carte
WHERE cod_carte IN
(SELECT DISTINCT cod_carte
FROM imprumuta
WHERE dataef IS NOT NULL);

64. Care este comanda corecta care obtine numele cititorilor si titlurile cartilor imprumutate de acestia in
anul 2008?
a. SELECT nume, titlu
FROM cititor, carte, imprumuta
WHERE imprumuta.cod_carte= carte.cod_carte
AND TO_CHAR(data_imprumut,’yyyy’) = 2008;
b. SELECT nume, titlu
FROM cititor, carte, imprumuta
WHERE imprumuta.cod_carte= carte.cod_carte
AND imprumuta.cod_cititor= cititor.cod_cititor
AND TO_CHAR(data_imprumut,’yyyy’) = 2008;
c. SELECT nume, titlu
FROM cititor, carte, imprumuta
WHERE imprumuta.cod_carte= carte.cod_carte
AND imprumuta.cod_cititor= cititor.cod_cititor
AND TO_CHAR(data_imprumut,’2008’) = 2008;

65. Care este comanda corecta care afiseaza jobul pentru care salariul mediu este minim?
a. SELECT cod_job, AVG(salariu)
FROM angajati
GROUP BY cod_job
HAVING AVG(salariu)=(SELECT MIN(salariu)
FROM angajati
GROUP BY cod_job);
b. SELECT cod_job, AVG(salariu)
FROM angajati
GROUP BY cod_job
HAVING AVG(salariu)=(SELECT MIN(AVG(salariu))
FROM angajati
GROUP BY cod_job);
c. SELECT cod_job, AVG(salariu)
FROM angajati
GROUP BY cod_job
HAVING MIN(salariu)=(SELECT AVG(MIN(salariu))
FROM angajati
GROUP BY cod_job);
Universitatea SPIRU HARET
Facultatea de Matematica si Informatica

Tehnici de
programare

Intrebari orientative pentru pregatirea examenului de licenta


vara 2010 – iarna 2011
Tehnici de programare
Notiuni fundamentale in teoria grafurilor

MULTIPLE CHOICE

1. Care din urmatoarele proprietati este adevarata pentru un graf orientat cu n varfuri si n arce (n > 3)
care are un circuit de lungime n:
a. exista un varf cu gradul n-1
b. pentru oricare varf gradul intern si gradul extern sunt egale
c. graful nu are drumuri de lungime strict mai mare decat 2
d. gradul intern al oricarui varf este egal cu 2

2. Care este numarul maxim de noduri de grad 3 intr-un graf neorientat cu 5 noduri?
a. 4
b. 5
c. 3
d. 2

3. Se considera graful neorientat cu 7 noduri numerotate de la 1 la 7 si muchiile [1,3], [2, 3], [3, 4], [3, 5],
[5, 4], [1, 2], [2, 5], [2, 4], [6, 7], [3, 6]. Care dintre urmatoarele succesiuni de noduri reprezinta un lant
care trece o singura data prin toate nodurile grafului?
a. (1, 2, 3, 4, 5, 6, 7)
b. (4, 5, 3, 6, 7)
c. (7, 6, 3, 5, 4, 2, 1)
d. (1, 3, 5, 4, 2, 3, 6)

4. Graful neorientat cu 8 noduri, numerotate de la 1 la 8, este reprezentat cu ajutorul matricei de


adiacenta

Pentru acest graf este adevarata afirmatia:


a. Graful este hamiltonian
b. Gradul maxim al unui nod este 3
c. Graful nu are noduri de grad 0
d. Graful are trei componente conexe

5. Graful neorientat cu 60 de noduri, numerotate de la 1 la 60, are numai muchiile [1, 60], [60, 20], [2,
30] si [4, 30]. Numarul componentelor conexe ale grafului este egal cu:
a. 3
b. 56
c. 54
d. 0

6. Fie graful orientat G dat prin matricea de adiacenta:

Care din urmatoarele propozitii este falsa?


a. exista cel putin un nod in graful G care are gradul intern egal cu cel extern
b. graful G nu are circuite
c. exista cel putin un drum intre oricare doua noduri ale grafului G
d. Graful G are 9 arce
Tehnici de programare
Arbori binari

MULTIPLE CHOICE

1. Se considera arborele binar a carui reprezentare standard (ST[i] - descendent stang, DR[i] - descendent
drept) este ST = (2, 3, 4, 0, 6, 0, 0, 0, 0) si DR = (8, 5, 0, 0, 7, 0, 0, 9, 0), unde prin 0 s-a notat lipsa
descendentului corespunzator. Atunci prin parcurgerea in inordine, nodurile arborelui sunt vizitate
astfel:
a. 1, 2, 3, 4, 5, 6, 7, 8, 9 c. 4, 3, 2, 6, 5, 7, 1, 8, 9
b. 1, 2, 8, 3, 5, 9, 4, 6, 7 d. 4, 3, 6, 7, 5, 2, 9, 8, 1

2. Se considera arborele

Notam prin x si y numerele de la mijlocul sirului care reprezinta traversarea in inordine a arborelui.
Atunci:

a. x = 10, y = 11
b. x = 7, y = 17
c. x = 5, y = 9
d. x = 12, y = 19

3. Se considera expresia in forma poloneza prefix (obtinuta prin explorarea in preordine a arborelui binar
asociat)
+*+572/82
unde numerele care apar sunt formate dintr-o singura cifra. Rezultatul evaluarii expresiei este:
a. 12 c. 80
b. 24 d. 28

4. Se considera expresia in forma poloneza postfix (obtinuta prin explorarea in postordine a arborelui
binar asociat)
5, 3, *, 2, +, 5, 2, 3, *, +, *
unde informatia stocata in nodurile arborelui este separata folosind virgula. Rezultatul evaluarii
expresiei este:
a. 28 c. 17
b. 187 d. 11

5. Se considera arborele binar

Prin traversarea in inordine se obtine:


a. 21, 25, 26, 32, 38, 41, 52, 76, 83, 91, 92, 95
b. 38, 25, 76, 21, 32, 41, 91, 26, 52, 83, 92, 95
c. 38, 21, 25, 26, 32, 76, 41, 52, 91, 83, 92, 95
d. 95, 26, 52, 83, 92, 21, 32, 41, 91, 25, 76, 38

6. Se considera arborele binar

Prin parcurgerea (traversarea / explorarea) in postordine se obtine sirul:


a. 30, 17, 78, 12, 28, 46, 88, 10, 45, 59, 85, 92
b. 10, 12, 28, 17, 45, 59, 46, 85, 92, 88, 78, 30
c. 30, 17, 12, 10, 28, 78, 46, 45, 49, 88, 85, 92
d. 10, 12, 17, 28, 30, 45, 46, 59, 78, 85, 88, 92

7. Se considera arborele binar

Prin parcurgerea (traversarea / explorarea) in preordine se obtine sirul:


a. 01, 26, 27, 31, 40, 54, 59, 71, 72, 76, 89
b. 40, 59, 72, 89, 01, 27, 54, 76, 26, 71, 31
c. 31, 26, 01, 27, 71, 54, 40, 59, 76, 72, 89
d. 31, 26, 71, 01, 27, 54, 76, 40, 59, 72, 89
8. Se considera arborele binar cu radacina 51

Frunzele arborelui sunt:


a. 51, 0, 7, 15, 30, 35, 48, 50, 55, 82, 88, 98
b. 7, 15, 30, 35, 50, 85, 82, 88, 98
c. 11, 33, 48, 74, 93, 0, 47, 86, 28, 54, 51
d. 47, 82, 88

9. Se considera arborele binar

Care dintre urmatoarele afirmatii este falsa:


a. Arborele este echilibrat c. Arborele are 4 nivele
b. Arborele este complet d. Frunzele arborelui sunt: 4, 6, 9, 14
Tehnici de programare
Complexitate

MULTIPLE CHOICE

1. Se considera metoda sortarii prin interclasare a n siruri de caractere in ordine lexicografica crescatoare.
Presupunand ca procesul de divizare se bazeaza pe metoda injumatatirii la fiecare pas, atunci timpul
necesar efectuarii sortarii prin interclasare este:
a. O(n) c. O(n log2n)
b. O(n2) d. O(n ln n)

2. Se considera algoritmul cautarii binare si 2k-1≤ n < 2k. In cazul unei cautari cu succes se fac
a. k-1 comparatii c. cel mult k comparatii
b. exact k comparatii d. n comparatii

3. Se presupune ca n siruri de caractere sunt sortate prin metoda sortarii prin partitionare binara numita si
metoda sortarii rapide (quicksort). Notam prin T(n) numarul mediu de comparatii pentru ordonarea
lexicografica crescatoare a celor n siruri. Atunci T(n) =
a. O(n) c. O(n ln n)
b. O(n2) d. O(n log2n)

4. Numarul de comparatii necesare unui algoritm optim pentru determinarea simultana a celui mai mic,
respectiv a celui mai mare element al unui tablou unidimensional cu n (n > 0) numere intregi este:
a. 2n c. 3n/2 + O(1)
b. 2n-2 d. O( )

5. Complexitatea algoritmului de cautare binara a unui element intreg x intr-un tablou unidimensional cu
n (n > 1) numere intregi sortate descrescator este:
a. n c.
b. n/2 d. ln n

6. Fie relatia de recurenta


f(n) = n f(n-1), n>0
f(0)=1. Atunci f(5) =
a. 120 c. 20
b. 60 d. 0

7. Fie relatia de recurenta


f(n) = n f(n-1), n>1
f(1)=0. Atunci f(5) =
a. 120 c. 20
b. 60 d. 0

8. Se considera un circuit combinational cu n variabile booleene binare care contine circuite de baza
pentru implementarea operatiilor booleene de adunare, inmultire si inversare (negatie). Care este
complexitatea metodei de simulare/testare a functionarii unui astfel de circuit?
a. n
b. n/2
c.
d.
e.

9. In cazul cel mai defavorabil, metoda de sortare prin interschimbare necesita un numar de comparatii
exprimabil prin:
a. O( ) c. O(n)
b. O(n ln n) d. O( )

10. Metoda selectiei pentru ordonarea crescatoare a elementelor unui tablou cu n numere intregi (n par, n =
2k, k>0), implementata folosind stategia min-max (cu determinarea simultana a maximului si
minimului) necesita un numar de comparatii exprimabil prin:
a. n c.

b. O( ) d.

11. Metoda selectiei pentru ordonarea descrescatoare a elementelor unui tablou cu n numere intregi (n
impar, n = 2k+1, k 0), implementata folosind stategia min-max (cu determinarea simultana a
maximului si minimului) necesita un numar de comparatii exprimabil prin:
a. n c.

b. O( ) d.

12. Se considera metodele de sortare


A - metoda interschimbarii
B - metoda interclasarii
C - metoda partitionarii binare (quick sort)
Atunci, in cazul cel mai defavorabil, ordinea crescatoare a complexitatii metodelor - din punct de
vedere al numarului de comparatii efectuate - este:
a. A, B, C
b. C, B, A
c. B, C, A
d. A, C, B
e. C, A, B

13. Complexitatea algoritmului de interclasare (exprimata prin numarul comparatiilor necesare) a doua
tablouri ordonate crescator avind m, respectiv n elemente, unde m>n, este:
a. O(mn) c. O(m)
b. O(m/n) d. O(m+n)
Tehnici de programare
Recursivitate

MULTIPLE CHOICE

1. Se considera urmatoarea functie recursiva apelata numai pentru numere naturale nenule:
int f(int a, int b){
if (a<b) return a; else return f(a-b, b);
}
Care dintre urmatoarele functii este echivalenta cu functia data?

a. int f(int a, int b){return a*b;}


b. int f(int a, int b){return a-b+1;}
c. int f(int a, int b){return a%b;}
d. int f(int a, int b){return a/b;}

2. Se considera definitia
void f(int n){
int j;
if (n>0) for (j=1; j<=n; j++) {printf(“%d”,j); f(n-1);}
}
Ce se afiseaza ca urmare a apelului f(2)?
a. 1122 c. 121
b. 112 d. 1121

3. Se considera definitia:
long f(int n){
if (n == 0) return 1;
else if (n == 1) return 4;
else return f(n-1) - f(n-2);
}
Stabiliti ce valoare returneaza apelul f(7).

a. 1 c. -4
b. -3 d. 4

4. Se considera definitia
long f(int n, int k){
if (n == k || k == 1) return 1;
if (n < k) return 0;
long s=0, i;
for (i=1; i<=k; i++) s+=f(n-k,i);
return s;
}
Stabiliti ce valoare returneaza apelul f(6,3).

a. 3 c. 2
b. 1 d. 4
5. Se considera definitia:
long f(int x, int y){
if (x == y || x == 0) return 1;
else return f(x,y-1)+f(x-1,y-1);
}
Ce valoare returneaza apelul f(8,10)?

a. 50 c. 40
b. 45 d. 55

6. In functia recursiva de mai jos se considera ca tabloul unidimensional v este declarat global.
void star(int i){
if(i<10) {
printf(“*”);
if (v[i] == i+1) star(i+2); else star(i+1);
}
}
Pentru care dintre declaratiile urmatoare, apelul star(0) produce 7 asteriscuri (stelute)?

a. int v[] = {1, 4, 3, 2, 1, 6, 5, 4, 3, 10};


b. int v[] = {3, 2, 1, 4, 3, 6, 7, 2, 9, 2};
c. int v[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
d. int v[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};

7. Pentru o valoare naturala mai mare decat 1 memorata in variabila globala n, subprogramul urmator
afiseaza cel mai mare divizor al lui n, mai mic decat n, la apelul divi(n).
void divi(long i){
if ( ... == 0) printf(“%ld”, ...); else divi(i-1);
}
Cu ce expresii trebuie completate punctele de suspensie?
a. n % i si i c. n%(i-1)=0 si i
b. n% (i-1) si i-1 d. n%i si i-1

8. Stiind ca p este un vector (tablou unidimensional) cu 3 componente intregi (tabloul este declarat
global), M este multimea tuturor cifrelor nenule, iar functia tipar afiseaza valorile elementelot p[0],
p[1] si p[2], cu ce trebuie inlocuite simbolurile a, b si c in definitia functiei G astfel incat in urma
apelului G(0) sa se afiseze toate elementele produsului cartezian MxMxM?
void G(int k){
int i;
for (i = a; i<=b; i++) { p[k] = i; if (k == c) tipar(); else G(k+1);}
}
a. a = 0, b = 10, c = 3 c. a = 1, b = 9, c = 3
b. a = 1, b = 3, c = 9 d. a = 1, b = 9, c = 2

9. Pentru definitia alaturata a functiei ex(), stabiliti ce se afiseaza la apelul ex(120)?


void ex(int x){
if (x != 0){
printf(“%d”, x %10);
ex(x/10);
}
}
a. 012 c. 021
b. 120 d. 21
Tehnici de Programare
Metoda Greedy

MULTIPLE CHOICE

1. O singura statie de servire (procesor, pompa de benzina etc) trebuie sa satisfaca cererile a n clienti.
Timpul de servire necesar fiecarui client este cunoscut in prealabil: pentru clientul i este necesar un
timp ti, 1 ≤ i ≤ n. Daca dorim sa minimizam timpul total de asteptare atunci
a. selectam intotdeauna clientul cu timpul maxim de servire din multimea de clienti ramasa
b. selectam intotdeauna clientul cu timpul minim de servire din multimea de clienti ramasa

2. Se considera graful ponderat din imaginea alaturata.

Ordinea de selectare a muchiilor in vederea obtinerii unui arbore partial de cost minim, prin utilizarea
strategiei Greedy de tip Kruskal, este:
a. (1, 2), (2, 3), (4, 5), (6, 7), (1, 4), (4, 7)
b. (1, 2), (2, 3), (6, 7), (4, 5), (2, 5), (1, 4)
c. (5, 6), (5, 7), (3, 6), (2, 4), (3, 5), (1, 4)

3. Managerul artistic al unui festival trebuie sa selecteze o multime cat mai ampla de spectacole care pot
fi jucate in singura sala pe care o are la dispozitie. Stiind ca i s-au propus 8 spectacole si pentru fiecare
spectacol i-a fost anuntat intervalul in care se va desfasura:
1: [10, 15)
2: [2, 4)
3: [7, 9)
4: [21, 25)
5: [10, 12)
6: [12, 15)
7: [7, 8)
8: [20, 27)
Care spectacole trebuie selectate pentru a permite spectatorilor sa vizioneze un numar cat mai mare de
spectacole?
a. 2, 3, 5, 6, 8
b. 1, 8
c. 2, 4, 5, 6, 7
d. 2, 3, 1, 8

4. Se considera ca trebuie transportate cu ajutorul unui rucsac de capacitate 10kg, obiecte cu greutatile
8kg, 6kg si 4kg. Pentru fiecare kg transportat castigul obtinut este 1 LEU.
Stiind ca obiectele se incarca integral in sac si ca se poate alege cel mult un obiect din fiecare tip,
atunci solutia optima este (se noteaza prin 1 - selectarea obiectului, iar prin 0 - neselectarea acestuia):
a. (1, 0, 0) c. (1, 1, 1)
b. (0, 1, 1) d. (1, 1, 0)

5. Se doreste planificarea optimala (penalizarea totala sa fie minima) a 7 lucrari, fiecare lucrare i fiind
data prin termenul de predare t[i] si penalizarea p[i] care se plateste in cazul in care lucrarea nu este
finalizata la timp. Se presupune ca pentru executarea unei lucrari este necesara o unitate de timp si ca
nu se pot executa doua lucrari in acelasi timp.
Se considera datele de intrare:
i t[i] p[i]
1 4 50
2 3 40
3 2 60
4 3 20
5 4 70
6 2 10
7 1 130
Care este penalizarea totala minima ce se poate obtine?

a. 10 c. 20
b. 130 d. 70
Tehnici de programare
Divide et Impera

MULTIPLE CHOICE

1. Fie tabloul unidimensional a in care elementele sunt, in ordine 1, 3, 5, 7, 10, 16, 21. Pentru a verifica
daca numarul x = 4 se afla printre elementele tabloului, se aplica metoda cautarii binare. Care este
succesiunea corecta de elemente cu care se compara x?
a. 1, 3, 5
b. 7, 5, 3
c. 7, 3, 5
d. 21, 16, 10, 7, 5, 3

2. Se considera doua tablouri unidimensionale A si B: A = (1, 3, 5, 9, 10), respectiv B = (2, 4, 6, 7). In


urma interclasarii lor in ordine crescatoare se obtine tabloul cu elementele:
a. (1, 2, 3, 4, 5, 6, 9, 7, 10) c. Nu se poate realiza interclasarea
b. (1, 2, 3, 4, 5, 6, 7, 9, 10) d. (1, 3, 5, 9, 10, 2, 4, 6, 7)

3. Pentru cautarea unei valori intre elementele unui tablou ordonat descrescator vom utiliza utiliza un
algoritm eficient de tip:
a. interclasare c. cautare binara
b. quicksort d. backtracking

4. Fie secventele de numere:


i) 1, 4, 6, 8, 9
ii) 8, 5, 4, 3, 2, 1
iii) 2, 3, 8, 5, 9
Algoritmul de cautare binara se poate aplica direct, fara alte prelucrari prealabile
a. numai secventei i) c. numai secventei ii)
b. numai secventei iii) d. atat secventei i) cat si secventei ii)

5. Se considera metoda sortarii prin interclasare a n siruri de caractere in ordine lexicografica crescatoare.
Presupunand ca procesul de divizare se bazeaza pe metoda injumatatirii la fiecare pas, atunci timpul
cerut de algoritm este:
a. O(n) c. O(n log2n)
2
b. O(n ) d. O(n ln n)

6. Pentru rezolvarea problemei Turnurilor din Hanoi se poate utiliza:


a. numai metoda backtracking
b. numai metoda Divide et Impera
c. numai metoda Gready
d. numai metoda eliminarii stivei
e. Atat metoda Divide et Impera cat si metoda eliminarii stivei

7. Se presupune ca n siruri de caractere sunt sortate prin metoda sortarii rapide (quicksort). Notam prin
T(n) numarul mediu de comparatii pentru ordonarea lexicografica crescatoare a celor n siruri. Atunci
T(n) =
a. O(n) c. O(n ln n)
b. O(n2) d. O(n log2n)

8. Se considera functia C din biblioteca standard:


void * bsearch(const void *x, const void *s, size_t dim, size_t n, int (*f)(const void *, const void *));
Atunci:
a. f este functie de comparare definita de c. s este adresa elementului ce va fi cautat
utilizator
b. x este tabloul in care se cauta d. n este numarul de componente ale sirului
in care se face cautarea

9. Se considera arborele binar a carui reprezentare standard (ST[i] - descendent stang, DR[i] - descendent
drept) este ST = (2, 3, 4, 0, 6, 0, 0, 0, 0) si DR = (8, 5, 0, 0, 7, 0, 0, 9, 0), unde prin 0 s-a notat lipsa
descendentului corespunzator. Atunci prin parcurgerea in inordine, nodurile arborelui sunt vizitate
astfel:
a. 1, 2, 3, 4, 5, 6, 7, 8, 9 c. 4, 3, 2, 6, 5, 7, 1, 8, 9
b. 1, 2, 8, 3, 5, 9, 4, 6, 7 d. 4, 3, 6, 7, 5, 2, 9, 8, 1

10. Metoda Divide et impera, cu divizare binara, pentru rezolvarea unei probleme relativ la obiectele O1,
O2, ..., On, se poarte reprezenta sub forma unui arbore binar. Daca fiecare secventa Op, Op+1, ...., Oq se
reprezinta prin perechea (p, q), atunci varfurile terminale ale arborelui sunt etichetate cu:
a. (1, n)
b. (n+1, )
c. (p, q) cu q = p+1
d. (p, q) cu q-p ≤ , unde este dimensiunea subproblemei ce se poate rezolva direct.
Tehnici de Programare
Backtracking

MULTIPLE CHOICE

1. Un algoritm de tip backtracking genereaza in ordine lexicografica, toate sirurile de 5 cifre 0 si 1 cu


proprietatea ca nu exista mai mult de doua cifre de 0 consecutive. Primele sase solutii generate sunt:
00100, 00101, 00110, 01001, 01010. Care este cea de-a opta solutie?
a. 01110 c. 01011
b. 01100 d. 01101

2. Un algoritm backtracking genereaza toate sirurile alcatuite din cate 6 cifre binare (0 si 1). Numarul
tuturor solutiilor generate va fi egal cu :
a. 64 c. 16
b. 32 d. 12

3. Aplicand metoda backtracking pentru a genera toate permutarile celor n elemente ale unei multimi, o
solutie se memoreaza sub forma unui tablou unidimensional x1, x2, ..., xn. Daca sunt deja generate
valori pentru componentele x1, x2, ..., xk-1, iar pentru componenta xk (1 <k<n)au fost testate toate
valorile posibile si nu a fost gasita niciuna convenabila, atunci:
a. se incearca alegerea unei noi valori pentru componenta xk-1.
b. se incearca alegerea unei noi valori pentru componenta x1, oricare ar fi valoarea k.
c. se incheie algoritmul.
d. se incearca alegerea unei valori pentru componenta xk+1.

4. Daca se utilizeaza metoda backtracking pentru a genera toate numerele naturale, in ordine strict
crescatoare, formate din 4 cifre pare distincte, care dintre numerele de mai jos trebuie, eliminate astfel
incat cele ramase sa reprezinte o succesiune de numere corect generate?
1) 2068; 2) 2084; 3) 2088; 4) 2468; 5) 2086; 6) 2406
a. numai 3)
b. atat 3) cat si 5)
c. atat 3) cat si 4)
d. numai 4)

5. Se considera multimea {1, 7, 5, 16, 12}. Se genereaza prin metoda backtracking toate submultimile
sale formate din exact 3 elemente: primele patru solutii generate sunt, in ordine: {1, 7, 5}, {1, 7, 16},
{1, 7, 12}. Care dintre solutii trebuie eliminate din sirul urmator astfel incat cele ramase sa apara in sir
in ordinea generarii lor:
{1, 16, 12}, {5, 16, 12}, {7, 5, 16}, {7, 5, 12}
a. {1, 16, 12}
b. {5, 16, 12}
c. {7, 5, 16}
d. {7, 5, 12}

6. Se considera algoritmul care genereaza in ordine strict crescatoare toate numerele formate cu 5 cifre
distincte alese din multimea {1, 0, 5, 7, 9} in care cifra din mijloc este 0.Selectati numarul care
precede si numarul care urmeaza secventei de numere generate:
19075; 51079; 51097
a. 19057, 57019
b. 15079, 71059
c. 19057, 59071
d. 15097, 71095

7. Daca pentru generarea tuturor submultimilor unei multimi A = {1, 2, ..., n} cu 1 ≤ n ≤ 10, se utilizeaza
un algoritm backtracking astfel incat se afiseaza in ordine, pentru n=3, submultimile {}, {1}, {2}, {3},
{1, 2}, {1,3}, {2,3}, {1, 2, 3}, atunci, utilizand exact acelasi algoritm pentr n = 4, in sirul
submultimilor generate, solutia a 7-a va fi:
a. {1,3}
b. {4}
c. {1,2,3}
d. {1,4}

8. Produsul cartezia {1,2,3}x{2,3} este obtinut cu ajutorul unui algoritm backtracking care genereaza
perechile (1,2), (1,3), (2,2), (2,3), (3,2) si (3,3). Care este numarul perechilor obtinute prin utilizarea
aceluiasi algoritm la generarea produsului cartezian {1, 2, 3, 4, 5}x{a, b, c, d}?
a. 9 c. 10
b. 20 d. 6

9. Se genereaza toate sirurile strict crescatoare de numere naturale nenule mai mici sau egale cu 4, avand
primul termen 1 sau 2, ultimul termen 4 si cu diferenta dintre oricare doi termeni aflati pe pozitii
consecutive cel mult 2, obtinandu-se solutiile (1, 2, 3,4), (1, 2, 4), (1, 3, 4), (2, 3, 4), (2, 4). Folosind
aceeasi metoda generam toate sirurile strict crescatoare de numere naturale nenule mai mic sau egale
cu 6, avand primul termen 1 sau 2, ultimul termen 6 si diferenta dintre oricare doi termeni aflati pe
pozitii consecutive cel mult 2, care dintre afirmatiile urmatoare este adevarata:
a. imediat dupa solutia (1, 3, 4, 5, 6) se genereaza solutia (2, 3, 4, 5, 6)
b. penultima solutie generata este (2, 3, 5, 6)
c. imediat dupa solutia (1, 2, 4, 6) se genereaza solutia (1, 3, 4, 6)
d. in total sunt generate 13 solutii.

10. Avand la dispozitie cifrele 0, 1 si 2 putem genera, in ordine crescatoare, numerele care au suma
cifrelor egala cu 2 astfel: 2, 11, 20, 101, 110, 200, etc. Folosind acest algoritm generati numerele cu
cifrele 0, 1 si 2 care au suma cifrelor egala cu 3. Care va fi al saptelea numar din aceasta generare?
a. 120
b. 1002
c. 201
d. 210

11. Generarea tuturor cuvintelor de 4 litere, fiecare litera putand fi orice element din multimea {a, c, e, m,
v, s}, se realizeaza cu ajutorul unui algoritm echivalent cu algoritmul de generare a:
a. produsului cartezian c. partitiilor unei multimi
b. combinarilor d. permutarilor

12. Folosind un algoritm de generare putem obtine numere naturale de k cifre care au suma cifrelor egala
cu un numar natural s introdus de la tastatura, unde s si k sunt numere naturale nenule. Astfel pentru
valorile k = 2 si s = 6 se genereaza numerele: 15, 24, 33, 42, 51, 60. Care vor fi primele 4 numere ce se
vor genera pentru k = 3 si s=8?
a. 800, 710, 620, 530 c. 125, 233, 341, 431
b. 107, 116, 125, 134 d. 116, 125, 134, 143
13. Se considera multimile A = {1, 2, 3}, B = {1}, C = {2, 3, 4}. Elementele produsului cartezian AxBxC
se genereaza, in ordine astfel: (1, 1, 2), (1, 1, 3), (1, 1, 4), (2, 1, 2), (2, 1, 3), (2, 1, 4), (3, 1, 2), (3, 1, 3),
(3, 1, 4). Daca prin acelasi algoritm se genereaza produsul cartezian al multimilor AxBxC, unde A =
{a, b}, B ={a}, C = {b, c, d}, atunci cel de-al cincilea element generat este:

a. (a, a, d) c. (b, a, b)
b. (a, a, c) d. (b, a, c)

14. Pentru a determina toate modalitatile de a scrie numarul 8 ca suma de numere naturale nenule distincte
(abstractie facand de ordinea termenilor) se foloseste metoda backtracking obtinandu-se, in ordine,
toate solutiile 1+2+5, 1+3+4, 1+7, 2+6, 3+5. Aplicand exact acelasi procedeu, se determina solutiile
pentru scrierea numarului 10. Cate solutii de forma 1+ ... exista?
a. 3 c. 5
b. 4 d. 6

15. Se considera multimile A = {1, 2, 3}, B = {1}, C = {2, 3, 4}. Elementele produsului cartezian AxBxC
se genereaza, folosind metoda backtracking, in ordinea (1, 1, 2), (1, 1, 3), (1, 1, 4), (2, 1, 2), (2, 1, 3),
(2, 1, 4), (3, 1, 2), (3, 1, 3), (3, 1, 4). Daca prin acelasi algoritm se genereaza produsul cartezian al
multimilor AxBxC unde A = {x, y}, B = {x, u}, c = {x, y, z}, atunci cel de-al saptelea element generat
este:
a. (y, u, x) c. (y, x, z)
b. (y, x, x) d. (y, y, z)

16. Generarea tuturor sirurilor formate din trei elemente, fiecare element putand fi oricare numar din
multimea {1, 2, 3}, se realizeaza cu ajutorul unui algoritm echivalent cu algoritmul de generare a:
a. permutarilor c. produsului cartezian
b. combinarilor d. aranjamentelor

17. In utilizarea metodei backtracking pentru a genera toate cuvintele alcatuite din doua litere ale multimii
{a, c, e, q}, astfel incat sa nu existe doua consoane alaturate, cuvintele se genereaza in urmatoarea
ordine: aa, ac, ae, aq, ca, ce, ea, ec, ee, eq, qa, qe. Daca se utilizeaza exact aceeasi metoda pentru a
genera cuvinte formate din 4 litere ale multimii {a, b, c, d, e, f}, astfel incat sa nu existe doua consoane
alaturate in cuvant, care este penultimul cuvant generat?
a. fefa c. feef
b. fafe d. fefe

18. Utilizand metoda backtracking se genereaza toate numerele formate doar din trei cifre astfel incat
fiecare numar sa aiba cifrele distincte. Cifrele fiecarui numar sunt din multimea {12, 2, 3, 4}. acest
algoritm genereaza numerele, in aceasta ordine: 123, 124, 132, 134, 213, 214, 231, 234, 312, 314, 321,
324, 412, b413, 421, 423, 431, 432. Daca utilizam acelasi algoritm pentru a genera toate numerele de 4
cifre, fiecare numar fiind format din cifre distincte din multimea {1, 2, 3, 4, 5}, precizati care este
numarul generat imedia dupa 4325.
a. 4351 c. 4521
b. 5123 d. 4321

19. Utilizand metoda backtracking se genereaza toate numerele palindrom formate din 4 cifre. Fiecare
numar contine cifre din multimea {1, 3, 5}. Elementele sunt generate in urmatoarea ordine: 111, 1331,
1551, 3113, 3333, 3553, 5115, 5335, 5555. Daca se utilizeaza exact aceeasi metoda pentru a genera
toate numerele palindrom formate din 4 cifre, fiecare element avand cifre din multimea {1, 2, 3, 4, 5,
6, 7, 8, 9}. Sa se precizeze cate numere pare se vor genera.
a. 99 c. 36
b. 40 d. 72

20. Utilizand metoda backtracking se genereaza elementele produsului cartezian a n multimi A1, A2, ...,
An. Daca utilizam acest algoritm pentru a genera elementele produsului cartezian a 3 multimi: M = {1,
2, 3}, N = {1, 2} si P = {1, 2, 3, 4} atunci care din urmatoarele secvente nu reprezinta o solutie acestui
algoritm, pentru produsul cartezian PxNxM?
a. (4, 2, 3) c. (3, 2, 1)
b. (3, 3, 3) d. (1, 1, 1)

21. Utilizand metoda backtracking se genereaza toate numerele de cate 3 cifre astfel incat fiecare numar
generat are cifrele distincte si suma lor este un numar par. Precizati care dintre urmatoarele numere
reprezinta o solutie a algoritmului?
a. 235 c. 281
b. 986 d. 455

22. Utilizand metoda backtracking se genereaza in ordine lexicografica toate posibilitatile de aranjare a 8
dame pe tabla de sah astfel incat aceastea sa nu se atace. fiecare solutie se exprima sub forma unui
vector c = (c1, c2, ..., c8) unde c1 reprezinta coloana pe care se afla dama de pe lkinia i. Stiind ca
primele doua solutii generate sunt (1, 5, 8, 6, 3, 7, 2, 4), (1, 6, 8, 3, 7, 4, 2, 5) sa se determine solutia
generata de algoritm imediat dupa solutia (8, 2, 4, 1, 7, 5, 3, 6).
a. (8, 1, 2, 3, 4, 5, 6, 7) c. (8, 2, 5, 3, 1, 7, 4, 6)
b. (8, 4, 2, 7, 6, 1, 3, 5) d. (7, 4, 2, 5, 8, 1, 3, 6)

23. Se genereaza toate sirurile strict crescatoare de numere naturale nenule mai mici sau egale cu 4, avand
primul termen 1 sau 2, ultimul termen 4 si cu diferenta dintre oricare doi termeni aflati pe pozitii
consecutive cel mult 2, obtinandu-se solutiile (1, 2, 3, 4), (1, 2, 4), (1, 3, 4), (2, 3, 4), (2, 4). Folosind
aceeasi metoda, generam toate sirurile strict crescatoare de numere naturale nenule mai mici sau egale
cu 5, care dintre afirmatiile urmatoare este adevarata:
a. imediat dupa solutia (1, 3, 5) se genereaza solutia (2, 3, 4, 5).
b. imediat dupa solutia (2, 3, 5) se genereaza solutia (2, 5).
c. penultima solutie generata este (2, 4, 5).
d. in total sunt generate 5 solutii.

24. Se genereaza in ordine crescatoare numerele de cate sase cifre care contin cifra 1 o singura data, cifra 2
de cate doua ori si cifra 3 de trei ori. Se obtin, in aceasta ordine, numerele 122333, 123233, 123323,
...,333221. care din urmatoarele propozitii este adevarata?
a. Imediat dupa numarul 332312 se genereaza 332321
b. Sunt 8 numere generate prin aceasta metoda care au prima cifra 1 si ultima cifra 2.
c. Sunt 6 numere generate prin aceasta metoda care au prima cifra si a doua cifra 2.
d. Penultimul numar generat este 333122.

25. Utilizand metoda backtracking se genereaza in ordine lexicografica toate anagramele cuvantului caiet.
Stiind ca primele 2 solutii sunt aceit si aceti, care este cuvantul generat inaintea cuvantului tiaec?
a. teica c. ticae
b. tieac d. tiace
Tehnici de Programare
Metoda Programarii Dinamice

MULTIPLE CHOICE

1. Se considera un triunghi de numere naturale format din n linii. Prima linie contine un numar, a doua
linie doua numere, . . . , ultima linie n numere naturale. Cu ajutorul acestui triunghi se pot
forma sume de numere naturale în felul urmator:
1) se porneste cu numarul din linia 1;
2) succesorul unui numar se afla pe linia urmatoare plasat sub el (aceeasi coloana) sau pe diagonala la
dreapta (coloana creste cu 1).

Presupunem ca ati implementat strategia programarii dinamice pentru a obtine cea mai mare suma
care se poate forma folosind regulile de mai sus.

Testati programul realizat pentru n = 4 si triunghiul de numere:


2
35
634
5614
Care este suma maxima obtinuta?

a. 14
b. 16
c. 17
d. 19

2. Se considera x - un vector cu n elemente numere întregi. Se scrie un program C++/Java bazat pe


strategia Programarii Dinamice care va determina un cel mai lung sir crescator al sirului x.
In timpul testarii programului se considera:
n=5
x = (4, 5, 7, -1, 7)
Programul trebuie sa afiseze:

a. 4, 5, 7
b. 4, 5, 7, 7
c. 5, 7, 7

3. Fie G un graf orientat si ponderat avand n varfuri. Fie d[i] lungimea drumului maxim care are ca
extremitate initiala varful i (i = 1, 2, ..., n). Valoarea d(G) = max{d[i]; i = 1, 2, ..., n} reprezinta
diametrul grafului G.

Se doreste utilizarea programarii dinamice pentru elaborarea si testarea unui program C++/Java care
pentru un graf orientat G furnizeaza d(G). Care este algoritmul care, modificat, faciliteaza obtinerea
diametrului grafului G?

a. Dijkstra
b. Roy-Floyd
c. Kruskal
4. Fie matricele A[50][20], B[20][1], C[1][10] si D[10][100]. Se doreste realizarea inmultirii celor patru
matrici X = ABCD. Inmultirea matricelor este asociativa, iar numarul de inmultiri pentru realizarea
produsului Y=UV (unde U[m][n] si V[n][p]) este mxnxp. Care este ordinea de inmultire (obtinuta prin
metoda programarii dinamice) ce duce la numarul minim de inmultiri cu care se poate calcula X.
a. A x ((BxC)xD)
b. (Ax(BxC))xD
c. (AxB)x(CxD)

5. Se defineste o partitie a unui numar natural n ca fiind o scriere a lui n sub forma ,
unde , iar sunt numere naturale care verifica relatia .
Ati scris un program C++/Java, care utilizeaza metoda programarii dinamice, pentru a numara si
genera partitiile oricarui numar n introdus de la tastatura.
Pentru n = 7 se cere sa precizati cate din partitiile generate de programul dumneavoastra sunt
constituite numai din numere impare: este impar pentru oricare i, .

a. 7
b. 6
c. 5
d. 8

6. Intr-o regiune montana se doreste instalarea unui lant de telecabine. Se considera ca in regiunea
montana considerata sunt N varfuri si ca statiile pentru telecabine pot fi montate in oricare din cele N
varfuri. Presupunem ca varfurile sunt date de la stanga la dreapta (exemplu: de la Vest la Est) si ca
sunt numerotate prin 1, 2, 3,..., N. Astfel, fiecare varf i este precizat prin coordonata X[i] (pe axa OX)
si inaltimea H[i] (pe axa OY). Se doreste infiintarea a exact K statii de telecabine. Deoarece se doreste
ca lantul de telecabine sa asigure conectarea varfurilor 1 si N, cu exceptia statiei 1 (amplasata
obligatoriu in varful 1) care este conectata doar cu statia 2 si a statiei K (amplasata obligatoriu in
varful N) care este conectata doar cu statia K-1, toate celelalte statii i (1 < i < K) sunt conectate atat cu
statia i-1 cat si cu statia i+1, iar lungimea totala a cablurilor folosite la conectare sa fie minima.
Lungimea cablului dintre doua statii este egal cu distanta dintre ele. In plus, un cablu care uneste doua
statii consecutive nu poate avea o lungime mai mare decat o lungime fixata L. De asemenea, formele
de relief influenteaza conectare. Mai precis: varfurile i si j (i < j) nu pot fi conectate direct daca exista
un varf v (i<v<j) astfel incat segmentul de dreapta care uneste varfurile i si j trece pe sub varful v.
Daca i, v si j sunt coliniare atunci toate trei se considera a fi statii.
Pentru a identifica amplasarea celor K statii astfel incat lungimea totala a cablurilor sa fie minima si sa
fie indeplinite restrictiile de mai sus ati elaborat un program C++/Java care implementeaza un algoritm
obtinut prin tehnica programarii dinamice. Programul afiseaza lungimea minima LM si lista varfurilor
in care se instaleaza statiile.

Pentru N = 7, K=5, L = 11 si amplasarea

X[i] H[i]
0 16
4 3
6 8
7 4
12 16
13 16
14 16

se cere sa verificati care dintre urmatoarele raspunsuri ale programului trebuie sa fie cel corect.
a. LM = 16, Statiile: 1, 5, 6, 7
b. LM = 22, Statiile: 1, 3, 5, 6, 7

7. O companie este alcatuita din N soldati. Se considera ca soldatii sunt identificati prin numerele 1, 2, ...,
N si se cunosc inaltimile H[i], pentru fiecare soldat avand codul i (i = 1, 2, ..., N).
La prima inspectie soldatii sunt asezati in sir in ordinea crescatoare a codului. Capitanul doreste ca din
sir sa iasa un numar minim de soldati, iar cei care raman, fara sa-si schimbe locurile, sa poata vedea cel
putin o extremitate a sirului (din stanga sau din dreapta). Un soldat vede o extremitate daca intre el si
extremitate nu se afla un soldat cu inaltimea mai mare sau egala cu inaltimea lui.
Ati scris un program C++/Java care accepta la intrare numarul N si inaltimile H[i], i=1, 2, ...,N si
determina, folosind strategia programarii dinamice, numarul minim de soldati x care trebuie sa
paraseasca sirul pentru a fi indeplinita conditia din enunt.

La testarea programului, dumneavoastra considerati urmatoarele date:


N=8
i = 1, H[1] = 1.86
i = 2, H[2] = 1.86
i = 3, H[3] = 1.31
i = 4, H[4] = 2.00
i = 5, H[5] = 1.40
i = 6, H[6] = 1.00
i = 7, H[7] = 1.97
i = 8, H[8] = 2.20

Ce valoare a lui x trebuie sa afiseze programul?

a. 3
b. 4
c. 2
d. 1

8. Se considera o matrice dreptunghiulara cu m linii si n coloane ce contine numere naturale in intervalul


[1,255]. Se doreste traversarea matricei din coltul stanga-sus in coltul dreapta-jos. O traversare este
compusa din deplasari. La o deplasare de executa un salt pe orizontala (se poate ajunge in oricare
celula de pe aceeasi linie, dar nu in acelasi loc) si un pas pe verticala (la celula aflata dedesubt).
Exceptia face ultima deplasare constituita doar din saltul de pe ultima linie in coltul dreapta-jos.
Rezulta ca in cadrul traversarii se viziteaza 2m celule.
Se doreste suma minima care se poate obtine prin astfel de traversari. Pentru aceasta ati elaborat un
program C++/Java care foloseste tehnica programarii dinamice pentru a determina suma minima.
Vi se cere sa considerati, in vederea testarii programului, setul de date:
Dimensiunea matricei:
m = 4, n = 5
Matricea:
3 4 5 7 9
6 6 3 4 4
6 3 3 9 6
6 5 3 8 2
si sa validati raspunsul corect (care reprezinta suma minima ce poate fi obtinuta printr-o traversare
salt-pas).
a. 25
b. 28
c. 24
d. 22