Tap Complet

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Tap Complet as PDF for free.

More details

  • Words: 21,021
  • Pages: 67
2009 TEHNICI AVANSATE DE PROGRAMARE Exemple de subiecte – colectia 2008

1. a. q, r, p b. p, q, r

c. r, q, p d. p, q, r

2. a. Q, R, P b. R, Q, P

c. P, R, Q d. P, Q, R

3. a. b. c. d.

Q P P Q

-> -> -> ->

urm urm urm urm

-> == -> ==

urm == P Q urm == Q P -> urm -> urm

4. a. b. c. d.

P P Q Q

-> -> -> ->

urm urm urm urm

-> -> -> ->

urm urm urm urm

== == -> ==

Q -> urm Q urm == P -> urm P -> urm

-> -> -> ->

URM URM URM URM

= Q = P -> URM = P -> URM = Q

5. a. b. c. d.

P Q Q P

6. a.

c.

b.

7.

d.

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);

8.

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, 6, 9 d. 5, 3, 9, 6

9.

O lista liniara simplu inlantuita formata dintr-un numar impar de cel putin 5 noduri are adresa

primului nod memorata in variabila prim. In campul urm al fiecarui nod al listei se memoreaza adresa urmatorului element din lista. Adresa carui nod va fi memorata in variabila p, dupa executarea secventei de program: {p = prim; q = prim; while(q->urm) { q = q -> urm -> urm; p = p -> urm; } } a. penultimul nod al listei

b. nodul aflat in mijlocul listei c. ultimul nod al listei d. nodul al treilea din lista

10.

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;

11.

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. b. c. d.

Eliminarea nodului din mijlocul listei Eliminarea din lista a ultimului nod; Eliminarea din lista a penultimului nod Eliminarea celui de-al doilea nod al listei

12

.

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);

13

.

O lista liniara simplu inlantuita alocata dinamic, in care fiecare element memoreaza in

campul nr un numar intreg, iar in campul urm adresa elementului urmator din lista, contine exact trei elemente ale caror adrese sunt memorate in variabilele p, q si r. Stiind ca q -> nr == 3, p -> nr == 5, r -> nr == 8, q -> urm != NULL, p -> urm == NULL si r -> urm == q, care este ordinea numerelor din lista? a. 8, 3, 5 b. 5, 8, 3 c. 3, 8, 5 d. 5, 3, 8

14.

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);

15.

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);

16.

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; }

17.

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

18

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

19

.

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

20.

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

21.

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 b. 2

c. 3 d. 4

22

.

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);

23

.

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.

24

.

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

25

.

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 b. 3

c. 2 d. 4

26

.

Se considera lista dublu inlantuita cu noduri care contin in campul inf (ce retine un n umar

natural), in aceasta ordine, numerele: 3, 4, 5, 6, 7, 8. In campurile st si dr sunt retinute adresa nodului precedent, respectiv adresa nodului urmator din lista.Variabilele globale p si sf retin adresele primului si respectiv ultimului element din lista. O variabila ce retine adresa unui element este de tip nod. Care va fi continutul listei la o parcurgere de la st la dr dupa apelul functiei sub(), unde, functia sub este: void sub(){ nod *man = sf; while(man->inf > sf -> inf /2) man = man ->st; nod *q = man; man -> st -> dr = q -> dr; q -> dr -> st = man -> st; free(q); } a. 3, 5, 6, 7, 8 b. 4, 5, 6, 7, 8 c. 3, 4, 5, 6, 7, 8 d. 3, 4, 6, 7, 8

27

.

Se considera lista dublu inlantuita cu noduri care contin in campul inf (ce retine un n umar

natural), in aceasta ordine, numerele: 7, 5, 6, 2, 4, 6. In campurile st si dr sunt retinute adresa nodului precedent, respectiv adresa nodului urmator din lista.Variabilele globale p si sf retin adresele primului si respectiv ultimului element din lista. O variabila ce retine adresa unui element este de tip nod. Care va fi continutul listei la o parcurgere de la st la dr dupa apelul functiei sub(), unde, functia sub este: void sub(){ nod *man = sf; while(man->inf > sf -> inf ) man = man ->st; nod *q = man; man -> st -> dr = q -> dr; q -> dr -> st = man -> st; free(q); } a. 7, 5, 6, 2, 4, 6 b. 7, 5, 6, 2, 6 c. 7, 5, 6, 4, 6 d. 7, 5, 6, 2, 4

28

.

Se considera lista dublu inlantuita cu noduri care contin in campul inf (ce retine un n umar

natural), in aceasta ordine, numerele: 9, 7, 8, 3, 2, 4. In campurile st si dr sunt retinute adresa nodului precedent, respectiv adresa nodului urmator din lista.Variabilele globale p si sf retin adresele primului si respectiv ultimului element din lista. O variabila ce retine adresa unui element este de tip nod. Care va fi continutul listei la o parcurgere de la st la dr dupa apelul functiei sub(), unde, functia sub este: void sub(){ nod *man = sf; while(man->inf > sf -> inf ) man = man ->st; nod *q = man; man -> st -> dr = q -> dr; q -> dr -> st = man -> st; free(q); } a. 9, 7, 3, 2, 4 c. 9, 7, 8, 3, 2 b. 9, 7, 8, 2, 4 d. 9, 8, 3, 2, 7

29

.

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

30

.

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]

31

.

Intr-o lista circulara simplu inlantuita, cu cel putin un element, fiecare nod retine in campul

adr adresa elementului urmator din lista. Daca p este o variabila care retine adresa primului element din lista, iar q este o variabila care poate sa retina adresa unui element din lista, care dintre urmatoarele secvente de instructiuni calculeaza in variabila nr, de tip int, numarul de elemente al listei? a. nr = 0; q = p; while(q != p) {nr++; q = q -> adr;} b. nr = 0; q = p; do {nr ++; q = q -> adr;} while (q != p);

c. nr = 0; q = p; do {nr ++; q = p -> adr;} while (q != p); d. nr = 0; q = p; while (p != q){ nr ++; p = p -> adr;}

32

.

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

33

.

Se considera urmatoarea functie recursiva apelata numai pentru numere naturale nenule:

int f(int a, int b){ if (a
int f(int a, int b){return a*b;} int f(int a, int b){return a-b+1;} int f(int a, int b){return a%b;} int f(int a, int b){return a/b;}

34

.

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

35

.

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 valoasre returneaza apelul f(7).

a. 1 b. -3

c. -4 d. 4

36.

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 b. 1

c. 2 d. 4

37

.

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 b. 45

38

c. 40 d. 55

.

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. b. c. d.

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

39

.

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

40

.

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

41

.

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 b. 120

c. 021 d. 21

42.

Gasiti elementul f(20) din sirul definit prin relatia (f(n))2 = 8(f(n-1))2, unde f(0) = 2

a. 230 b. 220

c. 219 d. 231

43

.

Se considera relatia de recurenbta neomogena de ordinul intai f(n) - f(n-1) = 9n2, f(0) = 8,

n>0; Atunci f(n) = a.

c.

b.

d.

44

.

Se considera relatia de recurenta f(n) - 7f(n-1) = 9(5n), n > 0; f(0) = 3. Atunci f(n) =

a.

c.

b.

d.

45

.

a. (9n+3)7n b. (3n+9)7n

46

.

a. 3n-n3n-1 b. 3n-1-n3n

Solutia f(n) a relatiei de recurenta f(n) - 7f(n-1) = 9(7n), n>0, f(0) = 3, este c. (9n+9)7n d. (3n+3)7n

Solutia relatiei de recurenta f(n) = 6 f(n-1) - 9 f(n-2), n≥0, f(0) = 1, f(1) = 2 este f(n) = c. 3n+1-n3n d. 3n+1-n3n-1

47

.

Solutia relatiei de recurenta f(n) = 2f(n-1) - 4f(n-2), n>1, f(0)=1, f(1) = 3 este f(n) =

a.

c.

b.

d.

48

.

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

49

Un algoritm backtracking genereaza toate sirurile alcatuite din cate 5 cifre binare (0 si 1).

Numarul tuturor solutiilor generate va fi egal cu : a. 5 c. 10 b. 32 d. 31

50

.

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
51

.

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)

52

.

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}

53

.

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

54

.

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}

55

.

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}x{2, 3, 4}? a. 12 c. 81 b. 10 d. 6

56

.

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.

57

.

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

58

.

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

59

.

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

60

.

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 ={a, b}, C = {b, c, d}, atunci cel de-al patrulea element generat este: a. (a, b, c) b. (a, c, b)

61

.

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

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

62

.

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}, c = {x, y, z}, atunci cel de-al treilea element generat este: a. (x, x, y) c. (x, x, z) b. (x, y, x) d. (x, y, z)

63

.

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

64

.

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

65

.

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

66

.

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

67

.

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)

68

.

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

69

.

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 linia 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)

70

.

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.

71

.

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.

72

.

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

73

.

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

74

.

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)

75

.

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

76

.

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)

77

.

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 b. 130

c. 20 d. 70

78

.

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

79

.

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)

80

.

Pentru cautarea unei valori intre elementele unui tablou ordonat descrescator vom utiliza

utiliza un algoritm eficient de tip: a. interclasare b. quicksort

81

.

c. cautare binara d. backtracking

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)

82

.

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) b. O(n2) d. O(n ln n)

83

.

a. b. c. d. e.

Pentru rezolvarea problemei Turnurilor din Hanoi se poate utiliza:

numai metoda backtracking numai metoda Divide et Impera numai metoda Gready numai metoda eliminarii stivei Atat metoda Divide et Impera cat si metoda eliminarii stivei

84

.

Se considera algoritmul cautarii binare si 2k-1≤ n ≤ 2k. In cazul unei cautari cu succes se fac

a. k-1 comparatii b. exact k comparatii

85

.

c. cel mult k comparatii d. n comparatii

Fie S(n) numarul de comparatii necesar sortarii a n siruri de caractere prin metoda insertiei

binare, Atunci S(n) este a.

c.

b.

d.

86

.

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) b. O(n2)

87

.

c. O(n ln n) d. O(n log2n)

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

88

.

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

89

.

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.

Metoda backtracking (modele de subiecte)

1. [Cuvinte] Urmatorul enunt este comun pentru intrebarile i)- iv). “Utilizând metoda backtracking se generează în ordine lexicografică cuvintele de câte patru litere din mulţimea A={a,b,c,d,e}, cuvinte care nu conţin două vocale alăturate. Primele opt cuvinte generate sunt, în ordine: abab, abac, abad, abba, abbb, abbc, abbd, abbe. “ i) Câte dintre cuvintele generate încep cu litera b şi se termină cu litera e? a. 9 b. 15 c. 12 d. 20 ii) Care este ultimul cuvânt generat? a. edcb b. eeee c. edde d. eded iii) Care este penultimul cuvânt generat? a. edec b. eded c. edde d. edcb iv) Care este antepenultimul cuvânt generat? a. edde b. eddb c. edeb d. edcb v) Se generează, utilizând metoda bactracking, cuvintele cu exact 3 litere din mulţimea {a,x,c,f,g}. Dacă primele patru cuvinte generate sunt, în ordine, aaa, aax, aac, aaf, scrieţi ultimele trei cuvinte care încep cu litera a, în ordinea în care vor fi generate. agc,agf,agg vi) Se utilizează metoda backtracking pentru a genera toate cuvintele formate din două litere distincte din muţimea {w,x,z,y} astfel încât niciun cuvânt să nu înceapă cu litera x şi niciun cuvânt să nu conţină litera w lângă litera z. Cuvintele vor fi generate în ordinea wx, wy, zx, zy, yw, yx, yz. Folosind aceeaşi metodă se generează toate cuvintele de două litere distincte din mulţimea {w,x,z,y,t} astfel încât niciun cuvânt să nu înceapă cu litera x şi niciun cuvânt să nu conţină litera w lângă litera z. Care este a treia şi a patra soluţie generată? wt,zx 2. [Combinari] i) Folosind modelul combinărilor se generează numerele naturale cu câte trei cifre distincte din mulţimea {1, 2, 3, 7}, numere cu cifrele în ordine strict crescătoare, obţinându-se, în ordine: 123, 127, 137, 237. Dacă se utilizează exact aceeaşi tehnică pentru a genera numerele naturale cu patru cifre distincte din mulţimea {1,2,3,4,5,6,7,8}, câte dintre numerele generate au prima cifră 2 şi ultima cifră 7? a. 8 b. 3 c. 4 d. 6 ii) Utilizând metoda backtracking se generează toate submuţimile mulţimii {3,6,2,5}. Primele şase submulţimi generate sunt, în ordine: {3}, {3,6}, {3,6,2}, {3,6,2,5}, {3,6,5}, {3,2}. Care sunt, în ordinea obţinerii, ultimele trei submulţimi, generate după această regulă? {2};{2,5};{5}

iii) Folosind modelul combinărilor se generează numerele naturale cu câte trei cifre distincte din mulţimea {1,2,3,4}, numere cu cifrele în ordine strict crescătoare, obţinându-se, în ordine: 123, 124, 134, 234. Dacă se utilizează exact aceeaşi tehnică pentru a genera numerele naturale cu câte patru cifre distincte din mulţimea {1,2,3,4,5}, câte dintre numerele generate au prima cifră 1 şi ultima cifră 5? a. 4 b. 2 c. 6 d. 3 3. [Numere cu trei cifre] i) Utilizând metoda backtracking sunt generate numerele de 3 cifre, având toate cifrele distincte şi cu proprietatea că cifrele aflate pe poziţii consecutive sunt de paritate diferită. Ştiind că primele şase soluţii generate sunt, în această ordine, 103, 105, 107, 109, 123, 125, care este a zecea soluţie generată? a. 145 b. 147 c. 230 d. 149 ii) Utilizând metoda backtracking sunt generate numerele de 3 cifre care au cifrele în ordine crescătoare, iar cifrele aflate pe poziţii consecutive sunt de paritate diferită. Ştiind că primele cinci soluţii generate sunt, în această ordine, 123, 125, 127, 129, 145, care este cel de al 8-lea număr generat? a. 169 b. 149 c. 167 d. 147 iii) Utilizând metoda backtracking, sunt generate toate numerele de 3 cifre, astfel încât cifrele sunt în ordine crescătoare, iar cifrele aflate pe poziţii consecutive sunt de paritate diferită. Ştiind că primele trei soluţii generate sunt, în această ordine, 123, 125, 127, câte dintre toate numerele generate au suma cifrelor egală cu 6? 1 iv) Utilizând metoda backtracking se generează numerele formate din câte 3 cifre distincte din mulţimea {1, 3, 5, 7}. Dacă primele trei numere generate sunt, în acestă ordine: 135, 137, 153 care este cel de-al patrulea număr generat? a. 157 b. 173 c. 315 d. 357 v) Folosind cifrele {1,2,3} se generează, în ordinea crescătoare a valorii, toate numerele pare formate din trei cifre distincte. Astfel, se obţin în ordine, numerele: 132, 312. Folosind aceeaşi metodă, se generează numerele pare formate din patru cifre distincte din mulţimea {1,2,3,4}. Care va fi al 4-lea număr generat ? a. 2134 b. 1432 c. 2314 d. 1423 vi) Folosind cifrele {2,3,4} se generează, în ordinea crescătoare a valorii, toate numerele impare formate din trei cifre distincte. Astfel se obţin, în ordine, numerele: 243, 423. Folosind aceeaşi metodă, se generează numerele pare formate din patru cifre distincte din mulţimea {2,3,4,5}. Care va fi al 5-lea număr generat? a. 3452 b. 3524 c. 2534 d. 3542 vii) Folosind cifrele {1,2,3} se generează, în ordinea crescătoare a valorii, toate numerele formate din exact trei cifre, în care cifrele alăturate au valori consecutive. Astfel se obţin în ordine, numerele: 121, 123, 212, 232, 321 şi 323. Folosind aceeaşi metodă se generează numere de patru cifre din mulţimea {1, 2, 3, 4} care îndeplinesc aceeaşi condiţie. Care va fi al 5-lea număr generat? a. 2121 b. 2123 c. 3121 d. 2323

viii) Folosind cifrele {2,3,4} se generează, în ordinea crescătoare a valorii, toate numerele pare formate din trei cifre distincte. Astfel se obţin, în ordine, numerele: 234, 324, 342, 432. Folosind aceeaşi metodă, se generează numerele impare formate din patru cifre distincte din mulţimea {2,3,4,5}. Care va fi al 5-lea număr generat? a. 3425 b. 2543 c. 4235 d. 3245 ix) Folosind cifrele {1,2,3} se generează, în ordinea crescătoare a valorii, toate numerele impare formate din trei cifre distincte. Astfel se obţin, în ordine, numerele: 123, 213, 231, 321. Folosind aceeaşi metodă, se generează numerele impare formate din patru cifre distincte din mulţimea {1, 2, 3, 4}. Care va fi al 5-lea număr generat ? a. 2413 b. 1423 c. 2431 d. 3241 4. [Numere de orice lungime] i) Folosind tehnica backtracking, in timpul pregatirii examenului, ati scris un program care generează toate numerele de câte n cifre (0
40, 44, 48, 80, 84, 88. Dacă n=4 şi se utilizează acelaşi algoritm, care este numărul generat imediat după numărul 4008 ? a. 4040 b. 4004 c. 4080 d. 8004 viii) Un program generează, în ordine crescătoare, numerele naturale de exact 5 cifre din mulţimea {1, 2, 3, 4, 5}. Fiecare dintre numerele generate are cifrele distincte două câte două. Primele 3 numere astfel generate sunt: 12345, 12354, 12435. Care este numărul generat imediat după 12543? a. 15342 b. 12534 c. 13245 d. 13452 ix) Se generează în ordine crescătoare, toate numerele naturale de 5 cifre distincte, care se pot forma cu cifrele 2,3,4,5 şi 6. Să se precizeze numărul generat imediat înaintea şi numărul generat imediat după secvenţa următoare : 34256, 34265, 34526, 34562: a. 32645 şi 34625 b. 32654 şi 34655 c. 32654 şi 34625 d. 32645 şi 34655 x) Se generează în ordine crescătoare, toate numerele naturale de 5 cifre distincte, care se pot forma cu cifrele 5,6,7,8 şi 9. Să se precizeze numărul generat imediat înaintea şi numărul generat imediat după secvenţa următoare : 67589,67598,67859,67895. a. 65987 şi 67958 b. 65978 şi 67988 c. 65978 şi 67958 d. 65987 şi 67988 xi) Se generează în ordine crescătoare toate numerele de exact 4 cifre care se pot forma cu elementele mulţimii {0, 1, 2, 3, 4}. Primele 8 soluţii generate sunt, în ordine: 1000, 1001, 1002, 1003, 1004, 1010, 1011, 1012. Care sunt primele trei numere ce se vor genera imediat după numărul 3443? a. 4000, 4001, 4002 b. 3444, 4443, 4444 c. 3444, 4444, 4000 d. 3444, 4000, 4001 xii) Se generează în ordine crescătoare toate numerele de 4 cifre, cu cifre distincte, astfel încât diferenţa în valoare absolută dintre prima şi ultima, respectiv a doua şi a treia cifră este egală cu 2. Primele 11 soluţii generate sunt, în ordine: 1023, 1203, 1243, 1423, 1463, 1573, 1643, 1683, 1753, 1793, 1863. Care dintre următoarele numere se va genera imediat înaintea numărului 9317? a. 9247 b. 9357 c. 9207 d. 8976 xiii) Se generează în ordine crescătoare toate numerele de 4 cifre, cu cifre distincte, astfel încât diferenţa în valoare absolută dintre ultimele două cifre ale fiecărui număr generat este egală cu 2. Primele opt soluţii generate sunt, în ordine: 1024, 1035, 1042, 1046, 1053, 1057, 1064, 1068. Care dintre următoarele numere se va genera imediat după numărul 8975? a. 8979 b. 9013 c. 8957 d. 9024

xiv) Având la dispoziţie cifrele 0, 1 şi 2 se pot genera, în ordine crescătoare, numere care au suma cifrelor egală cu 2. Astfel, primele 6 soluţii sunt 2, 11, 20, 101, 110, 200. Folosind acelaşi algoritm, se generează numere cu cifrele 0, 1, 2 şi 3 care au suma cifrelor egală cu 4. Care va fi al 7-lea număr din această generare? a. 130 b. 301 c. 220 d. 103 5. [Siruri de biti] i) Un algoritm de tip backtracking generează, în ordine lexicografică, toate şirurile de 5 cifre 0 şi 1 cu proprietatea că nu există mai mult de două cifre 0 pe poziţii consecutive. Primele 7 soluţii generate sunt: 00100, 00101, 00110, 00111, 01001, 01010, 01011. Care este a 8-a soluţie generată de acest algoritm? a. 01110 b. 01100 c. 01011 d. 01101 ii) Un algoritm generează, în ordine lexicografică, toate şirurile alcătuite din câte n cifre binare (0 şi 1). Ştiind că pentru n=5, primele 4 soluţii generate sunt 00000, 00001, 00010, 00011, precizaţi care sunt ultimele 3 soluţii generate, în ordinea obţinerii lor. _____________________ 11101, 11110, 11111 iii) Un program citeşte o valoare naturală nenulă pentru n şi apoi generează şi afişează, în ordine crescătoare lexicografic, toate combinaţiile formate din n cifre care aparţin mulţimii {0,1}. Astfel, pentru n=2, combinaţiile sunt afişate în următoarea ordine: 00, 01, 10, 11. Dacă se rulează acest program şi se citeşte pentru n valoarea 9, imediat după combinaţia 011011011 va fi afişată combinaţia: a. 011100100 b. 011011100 c. 011011011 d. 011100000 iv) Un program citeşte o valoare naturală nenulă pentru n şi apoi generează şi afişează, în ordine descrescătoare lexicografic, toate combinaţiile de n cifre care aparţin mulţimii {0,1}. Astfel, pentru n=2, combinaţiile sunt afişate în următoarea ordine: 11, 10, 01, 00. Dacă se rulează acest program şi se citeşte pentru n valoarea 8, imediat după combinaţia 10101000 va fi afişată combinaţia: a. 01010111 b. 10100111 c. 01010100 d. 10100100 6. [Secvente de suma data]

2+2+2+3, 2+2+5, 2+7

i) Pentru a scrie valoarea 10 ca sumă de numere prime se foloseşte metoda backtracking şi se generează, în această ordine, sumele distincte: 2+2+2+2+2, 2+2+3+3, 2+3+5, 3+7, 5+5. Folosind exact aceeaşi metodă, se scrie valoarea 9 ca sumă de numere prime. Care sunt primele trei soluţii, în ordinea generării lor? ______ ii) Folosind un algoritm de generare putem obţine numere naturale de k cifre care au suma cifrelor egală cu un număr natural s. Astfel, pentru valorile k=2 şi s=6 se generează, în ordine, numerele: 15, 24, 33, 42, 51, 60. Care va fi al treilea număr generat pentru k=4 şi s=5? a. 1301 b. 1022 c. 2201 d. 1031 iii) Utilizăm metoda backtracking pentru generarea tuturor modalităţilor de a scrie numărul 9 ca sumă a cel puţin două numere naturale nenule distincte. Termenii descompunerii sunt în ordine strict crescătoare. Soluţiile se generează în ordinea:

2+3+7 , 2+4+6 , 2+10

1+2+6, 1+3+5, 1+8, 2+3+4, 2+7, 3+6 şi 4+5. Se aplică exact aceeaşi metodă pentru scrierea lui 12. Scrieţi, în ordinea generării, toate soluţiile de forma 2+...

iv) Utilizăm metoda backtracking pentru generarea tuturor modalităţilor de a scrie numărul 9 ca sumă a cel puţin două numere naturale nenule distincte. Termenii fiecărei sume sunt în ordine strict crescătoare. Soluţiile se generează în ordinea: 1+2+6, 1+3+5, 1+8, 2+3+4, 2+7, 3+6 şi 4+5. Se aplică exact aceeaşi metodă pentru scrierea lui 8. Câte soluţii vor fi generate? a. 3 b. 4 c. 6 d. 5 v) Utilizăm metoda backtracking pentru generarea tuturor modalităţilor de a scrie numărul 6 ca sumă a cel puţin două numere naturale nenule. Termenii fiecărei sume sunt în ordine crescătoare. Soluţiile se generează în ordinea: 1+1+1+1+1+1, 1+1+1+1+2, 1+1+1+3, 1+1+4, 1+5, 2+2+2, 2+4 şi 3+3. Se aplică exact aceeaşi metodă pentru scrierea lui 9. Care este penultima soluţie? a. 3+3+3 b. 3+6 c. 4+5 d. 2+7 vi) Utilizăm metoda backtracking pentru generarea tuturor modalităţilor de a scrie numărul 6 ca sumă a cel puţin două numere naturale nenule. Termenii fiecărei sume sunt în ordine crescătoare. Soluţiile se generează în ordinea: 1+1+1+1+1+1, 1+1+1+1+2, 1+1+1+3, 1+1+4, 1+5, 2+2+2, 2+4 şi 3+3. Se aplică exact aceeaşi metodă pentru scrierea lui 9. Câte soluţii de forma 2+... vor fi generate? a. 2 b. 3 c. 4 d. 5 vii) Utilizând metoda backtracking, se generează numerele naturale formate din exact 3 cifre şi care au suma cifrelor egală cu 4, în această ordine: 103, 112, 121, 130, 202, 211, 220, 301, 310, 400. Dacă utilizăm acelaşi algoritm pentru a genera toate numerele de 4 cifre care au suma cifrelor egală cu 7, precizaţi care este numărul generat imediat după 1222. a. 1231 b. 1223 c. 1213 d. 1321 ix) Utilizând metoda backtracking pentru afişarea tuturor modalităţilor de descompunere a unui număr natural ca o sumă de numere naturale nenule, pentru n=3 se obţin, în ordine, soluţiile: 1+1+1; 1+2; 2+1; 3. Ordinea de scriere a termenilor dintr-o descompunere este semnificativă. Folosind aceeaşi metodă pentru n=10, care este soluţia generată imediat după 1+1+3+5? a. 1+1+4+1+1+1+1 b. 1+1+7+1 c. 1+2+7 d. 1+1+4+4 7. [Permutari] i) In timpul procesului de generare a permutărilor mulţimii {1,2,…,n} prin metoda backtracking, în tabloul unidimensional x este plasat un element x[k] (1≤k≤n). Acesta este considerat valid dacă este îndeplinită condiţia: a. x[k]∉{x[1], x[2], …, x[k-1]} b. x[k]≠x[k-1] c. x[k]∉{x[1], x[2], …, x[n]} d. x[k]≠x[k-1] şi x[k]≠x[k+1] ii) Se utilizează un algoritm pentru a genera în ordine lexicografică inversă toate permutările mulţimii {1,2,3,4,5}. Primele patru permutări generate sunt: 54321, 54312, 54231, 54213. A cincea permutare este: a. 53421 b. 54321 c. 54132 d. 54123

iii) Utilizând metoda backtracking se generează toate permutările mulţimii {1,2,3,4}. Dacă primele trei permutări generate sunt, în acestă ordine: 1234, 1243, 1324 precizaţi care este permutarea generată imediat după 3412. a. 3421 b. 3413 c. 4123 d. 3214 iv) Utilizând metoda backtracking se generează permutările cuvântului info. Dacă primele trei soluţii generate sunt: fino, fion, fnio care este cea de-a cincea soluţie? a. foin b. fnoi c. foni d. ifon v) Dacă se utilizează metoda backtracking pentru a genera toate permutările de 4 obiecte şi primele 5 permutări generate sunt, în această ordine, 4 3 2 1, 4 3 1 2, 4 2 3 1, 4 2 1 3, 4 1 3 2, atunci a 6-a permutare este: a. 3 2 1 4 b. 3 4 2 1 c. 1 4 3 2 d. 4 1 2 3 8. [Recunoasterea mecanismelor enumerative] i) Algoritmul de generare a tuturor numerelor de 5 cifre nenule, fiecare având cifrele ordonate strict crescător, este echivalent cu algoritmul de generare a: a. submulţimilor unei mulţimi cu 5 elemente b. produsului cartezian a unor mulţimi decifre c. aranjamentelor de 9 elemente luate câte 5 d. combinărilor de 9 elemente luate câte 5 ii) Generarea tuturor cuvintelor de trei litere mici, nu neapărat distincte, ale alfabetului englez, se poate realiza cu ajutorul unui algoritm echivalent cu cel de generare a: a. produsului cartezian b. combinărilor c. aranjamentelor d. permutărilor iii) Pentru generarea tuturor mulţimilor de câte 5 cifre, având la dispoziţie cifrele de la 1 la 9, se poate utilza un algoritm echivalent cu algoritmul de generare a: a. permutărilor de 5 elemente b. submulţimilor mulţimii {1,2,3,4,5,6,7,8,9} c. combinărilor de 9 elemente luate câte 5 d. aranjamentelor de 9 elemente luate câte 5 iv) Pentru a genera toate numerele naturale cu exact 4 cifre şi care au cifrele în ordine strict descrescătoare, se poate utiliza un algoritm echivalent cu cel pentru generarea: a. aranjamentelor de 4 obiecte luate câte 10 b. combinărilor de 10 obiecte luate câte 4 c. permutărilor a 10 obiecte d. permutărilor a 4 obiecte v) Generarea matricelor pătratice de ordinul n, cu elemente 0 şi 1, cu proprietatea că pe fiecare linie şi pe fiecare coloană există un singur element egal cu 1, se poate realiza utilizând metoda backtracking. Algoritmul utilizat este echivalent cu algoritmul de generare a: a. combinărilor

b. permutărilor c. aranjamentelor d. produsului cartezian vi) Pentru rezolvarea cărei probleme dintre cele enumerate mai jos se poate utiliza metoda backtracking ? a. determinarea reuniunii a 3 mulţimi b. determinarea tuturor divizorilor unui număr din 3 cifre c. determinarea tuturor elementelor mai mici decât 30000 din şirul lui Fibonacci d. având 3 culori (”roşu”, ”galben”, ”albastru”), determinarea tuturor variantelor în care se pot genera toate steagurile cu 3 culori având la mijloc culoarea ”galben” vii) La un concurs sportiv sunt 5 echipe, iar în fiecare echipă sunt câte 10 elevi. Problema determinării tuturor grupelor de câte 5 elevi, câte unul din fiecare echipă, este similară cu generarea tuturor: a. elementelor produsului cartezian AxAxAxAxA, unde A={1,2,…,10} b. submulţimilor cu 5 elemente ale mulţimii {1,2,…,10} c. permutărilor mulţimii {1,2,3,4,5} d. partiţiilor mulţimii {1,2,…,10} viii) Problema generării tuturor codurilor formate din exact 4 cifre nenule, cu toate cifrele distincte două câte două, este similară cu generarea tuturor: a. aranjamentelor de 9 elemente luate câte 4 b. permutărilor elementelor unei mulţimi cu 4 elemente c. elementelor produsului cartezian AxAxAxA unde A este o mulţime cu 9 elemente d. submulţimilor cu 4 elemente ale mulţimii {1,2,3,4,5,6,7,8,9} ix) Cu studentii unei grupe 28 de studenti se doreşte formarea unei echipă de 4 persoane. Ordinea studentilor în cadrul echipei nu are importanţă. Algoritmul de generare a tuturor posibilităţilor de a forma o asfel de echipă este similar cu algoritmul de generare a tuturor: a. aranjamentelor de 28 de elemente luate câte 4 b. combinărilor de 28 de elemente luate câte 4 c. partiţiilor unei mulţimi d. elementelor produsului cartezian AxAxAxA, A fiind o mulţime cu 28 de elemente x) La examenul de licenta, un absolvent primeşte un test format dintr-un subiect de tip I, unul de tip II şi unul de tip III. Stiind că pentru fiecare tip de subiect sunt elaborate exact 50 de variante, algoritmul de generare a tuturor posibilităţilor de a forma un test este similar cu algoritmul de generare a: a. elementelor produsului cartezian b. aranjamentelor c. permutărilor d. submulţimilor xi) Trei studenti vor să înfiinţeze o echipa pentru a participa la un concurs de informatica formată dintr-un programator PHP, un specialist multimedia şi un specialist in baze de date. Toţi trei ştiu să cânte atât la PHP, cât şi la multimedia, şi se pricep cu toţii şi la baze de date. Algoritmul de generare a tuturor posibilităţilor de a forma echipa este similar cu algoritmul de generare a:

a. aranjamentelor b. permutărilor c. elementelor produsului cartezian d. submulţimilor 9. [Siruri de caractere] i) Generând şirurile de maximum 3 caractere distincte din mulţimea {A,B,C,D,E}, ordonate lexicografic, obţinem succesiv: A, AB, ABC, ABD,…. Ce şir va fi generat după BAE? a. BCA b. CAB c. BC d. BEA ii) Utilizând metoda backtracking se generează toate cuvintele de câte 3 litere din mulţimea {a,b,c}. Dacă primele patru cuvinte generate sunt, în acestă ordine: aaa, aab, aac, aba, care este cel de-al optulea cuvânt generat? a. acb b. acc c. aca d. bca iii) Se utilizează metoda backtracking pentru a genera toate cuvintele de câte patru litere distincte din mulţimea {d,a,n,s}. Ştiind că al doilea cuvânt generat este dans, iar al treilea este dsan, care va fi ultimul cuvânt obţinut? a. nsad b. snad c. snda d. dans iv) Se utilizează metoda backtracking pentru a genera toate cuvintele de câte trei litere distincte din mulţimea {i,n,f,o}. Ştiind că ultimele trei cuvinte generate sunt, în ordine, ion, inf şi ino, care este cel de-al doilea cuvânt obţinut? a. ofn b. ifo c. foi d. nif v) Se utilizează metoda backtracking pentru a genera toate cuvintele care conţin toate literele din mulţimea {i,n,f,o}, astfel încât fiecare literă să apară exact o dat într-un cuvânt. Ştiind că al doilea cuvânt generat este info iar al treilea este ionf, care este ultimul cuvânt obţinut? a. nifo b. ofni c. ofin d. foni vi) Se utilizează metoda backtracking pentru a genera toate cuvintele care conţin toate literele din mulţimea {i,n,f,o}, astfel încât fiecare literă să apară exact o dat într-un cuvânt şi literele n şi o să nu se afle pe poziţii vecine. Ştiind că primul cuvânt generat este info, iar al treilea este nifo care este cel de-al doilea cuvânt obţinut? a. iofn b. inof c. ionf d. niof 10 [Numarare …] i) Câte numere cu exact 3 cifre pot fi construite folosind doar cifre pare? a. 125 b. 100 c. 64 d. 128 ii) În câte dintre permutările elementelor mulţimii {‘I’,’N’,’F’,’O’} vocalele apar pe poziţii consecutive? a. 24 b. 6 c. 12 d. 4

iii) Se consideră un număr natural nenul x având exact 8 cifre, distincte două câte două; printer cifrele sale se găseşte şi cifra 0. Permutând cifrele lui x se obţin alte numere naturale. Câte dintre numerele obţinute, inclusiv x, au exact 8 cifre? 35280 ______ iv) Utilizând metoda backtracking, se generează în ordine lexicografică toate anagramele cuvântului caiet ( cuvinte formate din aceleaşi litere, eventual în altă ordine). Câte cuvinte vor fi generate? a. 60 b. 100 c. 200 d. 120 v) Se generează, prin metoda backtracking, toate partiţiile mulţimii A={1,2,3} obţinându-se următoarele soluţii: {1}{2}{3}; {1}{2,3}; {1,3}{2}; {1,2}{3}; {1,2,3}. Se observă că dintre acestea, prima soluţie e alcătuită din exact trei submulţimi. Dacă se foloseşte aceeaşi metodă pentru a genera partiţiile mulţimii {1,2,3,4} stabiliţi câte dintre soluţiile generate vor fi alcătuite din exact trei submulţimi. a. 3 b. 12 c. 6 d. 5 vi) Se utilizează metoda backtracking pentru a genera toate submulţimile cu p elemente ale unei mulţimi cu m elemente. Dacă m=7 şi p=4 atunci numărul de submulţimi generate este: a. 60 b. 35 c. 5 d. 15 vii) Prin metoda backtracking se generează toate anagramele (cuvintele obţinute prin permutarea literelor) unui cuvânt dat. Ştiind că se aplică această metodă pentru cuvântul pescar, precizaţi câte cuvinte se vor genera astfel încât prima şi ultima literă din fiecare cuvânt generat să fie vocală (sunt considerate vocale caracterele a, e, i , o, u)? a. 96 b. 24 c. 48 d. 12 viii) În câte dintre permutările elementelor mulţimii {‘I’,’N’,’F’,’O’} vocala ‘I’ apare pe prima poziţie? a. 1 b. 24 c. 6 d. 12 11. [Probleme diverse] i) Un program citeşte o valoare naturală nenulă impară pentru n şi apoi generează şi afişează în ordine crescătoare lexicografic toate combinaţiile formate din n cifre care îndeplinesc următoarele proprietăţi: - conţin doar valori pozitive sau nule; - încep şi se termină cu 0; - modulul diferenţei între oricare două cifre alăturate dintr-o combinaţie este 1. Astfel, pentru n=5, combinaţiile afişate sunt, în ordine, următoarele: 01010, 01210. Dacă se executa acest program şi se citeşte pentru n valoarea 7, imediat după combinaţia 0101210 va fi afişată combinaţia: a. 0121210 b. 0123210 c. 0111210 d. 0121010 ii) Pentru generarea numerelor cu n cifre formate cu elementele mulţimii {0, 2, 8} se utilizează un algoritm backtracking care, pentru n=2, generează, în ordine, numerele 20,22,28,80,82,88. Dacă n=4 şi se utilizează acelaşi algoritm, care este numărul generat imediat după numărul 2008 ? a. 2002 b. 2020 c. 2080 d. 8002

iii) Având la dispoziţie cifrele 0, 1 şi 2 putem genera, în ordine crescătoare, numere care au suma cifrelor egală cu 2 astfel încât primele 6 numere generate sunt, în această ordine: 2, 11, 20, 101, 110, 200. Folosind acelaşi algoritm se generează numere cu cifrele 0, 1, 2 şi 3 care au suma cifrelor egală cu 4. Care va fi al 7-lea număr din această generare ? a. 103 b. 301 c. 220 d. 130 iv) Completarea unui bilet de LOTO presupune colorarea a 6 numere dintre cele 49, înscrise pe bilet. O situaţie statistică pe o anumită perioadă de timp arată că cele mai frecvente numere care au fost extrase la LOTO sunt: 2, 20, 18, 38, 36, 42, 46, 48. Câte bilete de 6 numere se pot completa folosind doar aceste valori, ştiind că numărul 42 va fi colorat pe fiecare bilet? a. 21 b. 6! c. 42 d. 56 v) Se generează prin metoda backtracking mulţimile distincte ale căror elemente sunt numere naturale nenule şi care au proprietatea că suma elementelor fiecărei mulţimi este egală cu 7. Astfel, sunt generate, în această ordine, mulţimile: {1, 2, 4}, {1, 6}, {2, 5}, {3, 4}, {7}. Folosind aceeaşi metodă pentru a genera mulţimile distincte ale căror elemente sunt numere naturale nenule şi care au proprietatea că suma elementelor fiecărei mulţimi este egală cu 9, stabiliţi în ce ordine sunt generate următoarele mulţimi: M1={2, 3, 4}; M2={3, 6}; M3={2, 7}; M4={4, 5}.M1, M3, M2, M4 vi) Se generează în ordine strict crescătoare numerele de câte şase cifre care conţin: cifra 1 o singură dată, cifra 2 de două ori şi cifra 3 de trei ori. Se obţin, în această ordine, numerele: 122333, 123233, 123323, …, 333221. Câte numere generate prin această metodă au prima cifră 1 şi ultima cifră 2? ________________ 4 vii) Se generează în ordine strict crescătoare toate numerele de câte şase cifre care conţin: cifra 1 o singură dată, cifra 2 de două ori şi cifra 3 de trei ori. Se obţin, în această ordine, numerele: 122333, 123233, 123323, …, 333221. Ce număr se generează imediat după 332312? 332321 viii) Utilizând metoda backtracking se generează în ordine lexicografică toate anagramele cuvântului caiet ( cuvinte formate din aceleaşi litere, eventual în altă ordine). Care este a şasea soluţie? a. catei b. actie c. actei d. catie ix) Utilizând metoda backtracking se generează toate matricele pătratice de ordinul 4 ale căror elemente aparţin mulţimii {0,1}, cu proprietatea că pe fiecare linie şi pe fiecare coloană există o singură valoare 1. Primele 3 soluţii generate sunt, în această ordine: 1000 0100 0010 0001

1000 0100 0001 0010 1000 0010 0100 0001 Care este penultima soluţie? a. 0001 0010 1000 0100 b. 0100 1000 0010 0001 c. 0001 0100 0010 1000 d. 0010 1000 0100 0001 x) Se generează, prin metoda backtracking, toate modalităţile de aşezare a numerelor naturale de la 1 la 5, astfel încât oricare 2 numere consecutive să nu se afle pe poziţii alăturate. Dacă primele două soluţii sunt: (1,3,5,2,4) şi (1,4,2,5,3), care este prima soluţie generată în care primul număr este 4? a. (4, 1, 3, 2, 5) b. (4, 2, 5, 1, 3) c. (4, 3, 5, 3, 1) d. (4, 1, 3, 5, 2) xi) Se generează, prin metoda backtracking, toate modalităţile de aşezare a numerelor naturale de la 1 la 5 astfel încât oricare două numere consecutive să nu se afle pe poziţii alăturate. Dacă primele două soluţii sunt: (1,3,5,2,4) şi (1,4,2,5,3), care este prima soluţie generată care începe cu 2? a. (2, 4, 1, 3, 5) b. (2, 5, 4, 3, 1) c. (2, 4, 1, 3, 1) d. (2, 3, 5, 4, 1) xii) Construim anagramele unui cuvânt c1c2c3c4 prin generarea în ordine lexicografică a permutărilor indicilor literelor cuvântului şi obţinem c1c2c3c4 c1c2c4c3 c1c3c2c4 … c4c3c1c2 c4c3c2c1. Pentru anagramele cuvântului rateu, după şirul raetu, raeut, raute cuvintele imediat următoare sunt: a. rauet şi rtaeu b. rtaeu şi rtaue

c. rauet şi rtaue d. rtaeu şi ratue xiii) Trei baieti, Alin, Bogdan şi Ciprian, şi trei fete, Delia, Elena şi Felicia, trebuie să formeze o echipă de 3 studenti, care să participe la un concurs de prezentare software. Echipa trebuie să fie mixtă (adică să conţină cel puţin o fată şi cel puţin un băiat). Ordinea copiilor în echipă este importantă deoarece aceasta va fi ordinea de intrare a studentilor în concurs (de exemplu echipa Alin, Bogdan, Delia este diferită de echipa Bogdan, Alin, Delia). Câte echipe se pot forma, astfel încât din ele să facă parte simultan Alin şi Bogdan? _______________ 18 xiv) În vederea participării la un concurs de programare, studentii din anii 2 si 3 au dat o probă de selecţie, în urma căreia primii 6 au obţinut punctaje egale. În câte moduri poate fi formată echipa selecţionată ştiind că poate avea doar 4 membri, aleşi dintre cei 6, şi că ordinea acestora în cadrul echipei nu contează? a. 24 b. 30 c. 15 d. 4 xv) Un program construieşte şi afişează elementele produsului cartezian AxBxC pentru mulţimile A={1,2,3,4}, B={1,2,3}, C={1,2}. Care dintre următoarele triplete NU va fi afişat? a. (3,2,1) b. (1,3,2) c. (1,2,3) d. (2,2,2)

Probleme diverse (recursivitate, greedy, divide et impera, programare dinamica) 1. [Permutari] Sa se genereze permutarile multimii {1, 2, …, n}, cu n fixat. Se vor considera algoritmi iterative si recursive. 2. [Recursivitate] Se considera o fotografie specificata printr-o matrice patratica care contine ‘0’ si ‘1’ (0 – pentru puncte albe si 1 – pentru puncte negre). Se considera fondul alb, obiectele negre, iar daca punctele negre sint vecine pe linie, coloana sau diagonala atunci apartin aceluiasi obiect. Sa se numere cite obiecte distincte apar in fotografie. 3. Sa se plaseze pe o tabla de sah (cu n randuri si n coloane) n dame astfel incit san u se atace reciproc. Sa se genereze toate solutiile. 4. Sa se genereze toate partitiile multimii {1, 2, …, n} cu n fixat. 5. Se dau n tipuri de monezi. Sa se plateasca o suma data s, folosind un numar minim de monezi din tipurile date. Se considera ca exista un numar sufficient de monezi din fiecare tip. 6. Se considera trei tije, pe prima dintre ele fiind asezate n discuri de dimensiuni diferite, astfel incit cel mai mare este jos, si, peste el, in ordine descrescatoare a dimensiunii, celelalte discuri. Discurile pot fi mutate de pe o tija pe alta, luind intotdeauna un disc care nu are deasupra sa alte discuri si avind grija ca niciodata sa nu fie asezat un disc mai mare peste unul mai mic. Sa se scrie un program care genereaza o secventa de mutari prin care discurile sint mutate de pe tija 1 pe tija 2. 7. Se considera un numar natural n (3
etichetata cu 0. Se cunosc distantele de la centrala la blocuri precum si distantele dintre blocuri. Sa se determine perechile de numere desemnand punctele de distribuire intre care trebuie sa se monteze conducte astfel incat fiecare bloc sa fie alimentat cu apa calda (nu neaparat direct de la centrala) si lungimea totala a conductelor necesare sa fie minima. 14. Un student doreste sa calatoreasca din localitatea X in localitatea Y. Daca in tara exista n localitati si timpul necesar pentru a ajunge dintr-o localitate in alta (in cazul in care se poate ajunge direct) se cere sa se determine timpul minim in care studentul poate sa ajunga din X in Y. 15. Fiind date n orase si costurile tuturor drumurilor directe care exista intre orase, sa se afle costul minim pentru a ajunge dint-un oras in oricare altul. 16. Fie un arbore cu n varfuri. In fiecare nod al arborelui se afla cate un bec. Prin atingerea unui bec acesta isi schimba starea (din stins in aprins si invers), la fel si vecinii lui directi. Considerand ca initial toate becurile sunt stinse, sa se scrie un program care genereaza o secventa de “atingeri” prin care pomul este aprins complet. Datele de intrare se citesc din fisierul craciun.in cu formatul: pe prima linie numarul de noduri, sip e urmatoarele n-1 linii se afla muchiile arborelui. 17. Sa presupunem, ca un graf neorientat este format din n varfuri si m arce. Se stie ca sunt folosite toate muchiile pentru a lega varfuri si ca doua varfuri pot fi legate direct prin cel mult o muchie. Sa se determine valoarea maxima a expresiei S = suma patratelor gradelor varfurilor, unde gradul unui varf este reprezentat de numarul de muchii legate de acesta. 18. Un om doreste sa urce o scara cu N trepte (N dat initial). El poate urca una sau doua trepte la un moment. Fiind o fire curioasa, acest om isi pune problema in cate moduri poate urca aceasta scara. 19. Se da un sir de numere a[0], a[1], …, a[n-1], cu n dat initial. Sa se afle un cel mai lung subsir crescator. 20. Se dau doua siruri a[0], a[1], …, a[n-1] si b[0], b[1], …, b[m-1]. Sa se gaseasca un cel mai lung subsir comun al acestora. 21. Se considera o tabla de sah, de dimensiune standard 8x8, pe care se afla diverse piese de sah. Un cal se afla pe pozitia (i,j). Se doreste mutarea calului in pozitia (k,l) – daca acest lucru este posibil – folosind oricare dintre cele 8 mutari posibile ale calului in orice succesiune, astfel incat numarul de mutari sa fie minim. 22. Se considera o pereche de numere de forma (a, b) asupra careia se pot efectua urmatoarele operatii: (a, b) -> (a-b, b); (a, b) -> (a+b, b), (a, b) -> (b, a). Fiind date valorile (a, b) sa se determine numarul minim de operatii pe care trebuie sa le facem astfel incat sa se ajunga la perechea (c, d), daca acest lucru este posibil. 23. Se considera o bara de lungime n (n >0, n<40001). Se doreste taierea acesteia in bucati de dimensiuni prestabilite. Se dau m astfel de dimensiuni in care putem taia bara. Problema consta in ataia asemenea bucati din bara, de dimensiuni date, astfel incat sa ramana cat mai putin material care nu mai poate fi folosit (nu corespunde nici unei dimensiuni). 24. Inmultirea optimala a matricelor si rezolvarea recurentei f(n)=7f(n/2)+18(n/2)2 [1, pag. 216] 25. Problema colorarii hartilor [1, pag. 219]. 26. Problema comis-voiajorului [1, pag. 220] 27. Generarea obiectelor combinatoriale [1, pag. 221] 28. Problema rucsacului [1, pag. 225] 29. Executarea lucrarilor cu termen final [1, pag. 226] 30. Prelucrarea expresiilor cu ajutorul structurilor arborescente [1, 190]

2007 Name: ________________________ Class: ___________________ Date: __________

wshgtr Multiple Choice Identify the letter of the choice that best completes the statement or answers the question. ____ a

____ b

____ a

____ d

1. Se consideră declaraŃiile:

var f:file of char; c:char; Ce conŃine fişierul f după execuŃia secvenŃei următoare: rewrite(f); for c: =’z’ downto ‘a’ do write(f,c); a. zyxwvutsrqponmlkjihgfedcba; b. za; c. nimic d. abcdefghijklmnopqrstuvwxyz. 2. FuncŃia de mai jos determină termenul Fibonacci de rang n. E corectă? function fib(n:integer):integer; begin fib=fib(n-1)+fib(n-2) end; a. da, pentru că respectă formula de calcul a şirului lui Fibonacci; b. nu, pentru ca se autoapelează la nesfârşit. 3. FuncŃia de mai jos implementează recursiv calculul sumei S(n)=1+2+...+n. E corectă? int S(int n){ if(n<=0) return 0; else return (S(n+1)-(n+1)); } a. nu, pentru că, deşi are condiŃie de ieşire din autoapelare, nu se ajunge la ea; b. da, pentru că respectă matematic relaŃia şi are condiŃie de oprire din autoapelare. 4. Dacă există declaraŃia FILE f; şi se apelează funcŃia fopen() astfel: f=fopen(“fisier.txt”,”w”); care afirmaŃie e adevărată? a. fişierul fisier.txt a fost deschis pentru scriere; conŃinutul său se păstrează; b. fişierul fisier.txt a fost deschis pentru scriere, dar numai dacă exista pe disc; c. fisierul fisier.txt a fost deschis pentru scriere/citire; d. fisierul fisier.txt a fost deschis pentru scriere; dacă exista, conŃinutul lui se pierde, iar dacă nu exista, fisierul va fi creat în momentul executării instrucŃiunii de mai sus.

1

ID: A

Name: ________________________

ID: A

____ c

5. Se consideră problema căutării unui element într-un vector ordonat cu n elemente (căutare binară).

____ c

O(n), pentru că verificăm fiecare element; O(1), căutarea efectuându-se in timp constant; O(log2n), la fiecare pas înjumătăŃindu-se intervalul de căutare. 6. În fişierul numere.txt, aflat pe disc, sunt scrise, pe linie, numerele: 1 2 3 4 5 6 Ce se afişează în urma execuŃiei programului următor: #include<stdio.h> #include<stdlib.h>

Care este complexitatea algoritmului (câŃi paşi se execută) în cazul cel mai defavorabil, adică atunci când elementul nu este în vector? a) b) c) a. b. c.

FILE f; int n,i;

____ b

void main(){ f=fopen(”numere.txt”,”r”); for(i=1;i<4;i++) {fscanf(”%d”,&n);printf(”%d”,n);} rewind(f); for(i=1;i<4;i++) {fscanf(”%d”,&n);printf(”%d”,n);} FCLOSE f } a. 123456 b. 123 c. 123123 d. 123456123 7. Streamurile standard (adică streamurile care sunt deschise automat când un program C îşi începe execuŃia) sunt: a. stdin,stdout; b. stdin,stdout,stderr; c. nu există strem-uri standard.

2

Name: ________________________ ____ a

ID: A

8. Se consideră următorul arbore binar, reprezentat mai jos:

4 1

6

3

____ b

9

7

2

10

11

8

5

Este arborele binar complet? a. da b. nu 9. Se consideră următorul arbore binar, reprezentat mai jos:

4 1

6

3

9

7

10

2

11

Care este înălŃimea arborelui binar? a. 1 b. 3 c. 4 d. 5 e. 11

3

8

5

Name: ________________________

ID: A

____ a 10. Se consideră următorul arbore binar, reprezentat mai jos:

4 1

6

3

9

7

2

10

11

8

5

Este arborele binar strict? a. da b. nu ____ c 11. Se consideră următorul arbore binar, reprezentat mai jos:

4 1

6

3

9

7

10

2

11

Parcurgerea in inordine este: a. 4,1,9,6,7,2,8,3,10,11,5 b. 3,6,1,4,9,8,10,7,2,5,11 c. 3,6,10,1,7,4,11,2,5,9,8

4

8

5

Name: ________________________

ID: A

____ c 12. Se consideră următorul arbore binar, reprezentat mai jos:

4 1

6

3

9

7

2

10

11

8

5

Parcurgerea in preordine este: a. 4,1,9,6,7,2,8,3,10,11,5 b. 4,3,6,1,9,8,10,7,2,5,11 c. 4,1,6,3,10,7,9,2,11,5,8 ____ b 13. Se consideră următorul arbore binar, reprezentat mai jos:

4 1

6

3

9

7

10

2

11

8

5

Parcurgerea in postordine este: a. 4,1,9,6,7,2,8,3,10,11,5 b. 3,10,6,7,1,11,5,2,8,9,4 c. 3,6,8,10,7,4,1,11,2,5,9 ____ b 14. Un arbore binar cu n vârfuri este plin. PrecizaŃi ce valoare poate avea n, dintre cele de mai jos: a. 5 b. 7 c. 8 d. 9

5

Name: ________________________

ID: A

____ b 15. Pentru implementarea unei stive, se folosesc funcŃiile:

init(): iniŃializarea stivei (vârful stivei devine -1) empty(): returnează 1 daca stiva e goală şi 0 în caz contrar push(val): adauga item-ul val în stivă pop(): returnează (ştergându-l din stivă) elementul din vârful stivei top(): returnează elementul din vârful stivei, fără a-l şterge însă Ce apare la ieşire, dacă asupra stivei se execută prelucrările de mai jos (presupunem ca functia scrie afişează pe ecran parametrul ei, urmat de un spatiu): init(); push(100); push(54); scrie(top()); pop(); scrie(top()); push(60); push(630); scrie(top()); pop(); scrie(top()); pop(); scrie(top()); a. 54 100 60 630 60 b. 54 100 630 60 100 c. 54 60 100 630 100 ____ c 16. Care este timpul în cazul cel mai defavorabil pentru algoritmul lui Kruskal, aplicat unui graf complet cu n vârfuri? a. O(n2) b. O(nlog2n) c. O(n2log2n)

6

Name: ________________________

ID: A

____ b 17. Fie graful de mai jos:

3

2

1

1 4

3 1

3 2

5

4

3

Din câte muchii e format arborele parŃial de cost minim? a. 3 b. 4 c. 5 d. 7 ____ b 18. Fie graful de mai jos:

3

2

1

1 4

3 1

3 2

5

3

4

PrecizaŃi ordinea muchiilor care se adaugă pentru determinarea arborelui parŃial de cost minim, folosind algoritmul lui Kruskal: a. (2,3),(3,5),(3,4),(1,2),(1,4),(4,5),(2,5) b. (2,3),(3,5),(3,4),(1,2) c. (2,3),(3,5),(2,5),(3,4)

7

Name: ________________________

ID: A

____ c 19. Fie graful de mai jos:

3

2

1

1 4

3

3

1

2

5

4

3

Care este distanŃa minimă de la 1 la 5, conform algoritmului lui Dijkstra? a. b. c. d.

3 4 5 6

____ c 20. Se consideră arborele de căutare de mai jos:

12

5

2

18

9

15

19

17 Valoarea 13 va fi inserată în arbore: a. ca fiu drept al lui 2 b. ca fiu drept al lui 9 c. ca fiu stâng al lui 15 d. ca fiu stâng al lui 19 e. ca fiu stâng al lui 17

8

Name: ________________________

ID: A

____ d 21. Se consideră arborele de căutare de mai jos:

12

5

2

18

9

15

19

17 Dacă ştergem rădăcina (12), ce nod va ajunge în locul ei ? a. b. c. d. e.

5 18 9 15 17

____ a 22. Metoda de sortare rapidă (Quicksort) găseşte pivotul (printr-un algoritm de partiŃie) şi se

autoapelează pentru cele două porŃiuni din vectorul iniŃial. Algoritmul de partiŃie de mai jos e corect? Presupunem că a este un tablou de întregi, i şi j sunt indicele de start, respectiv de sfârşit ale elementelor pe care le sortează. De asemenea, funcŃia swap(x,y) interschimbă x şi y. FuncŃia întoarce poziŃia (finală) a lui a[i]. int partitie(a,i,j){int val,h,k; val=a[i]; h=i; for(k=i+1;i<=j;i++) if(a[k]<=val){ h=h+1; swap(a[h],a[k]); } swap(a[i],a[h]); return h; } a. b.

da nu

9

Name: ________________________

ID: A

____ a 23. Se consideră implementarea unei liste simplu înlănŃuite sub forma: typedef struct nod{ int info; struct nod *adr; }lista; lista *c /*capul listei*/ ,*p,*q;

Pentru inserarea unui elementului 3 în capul unei liste înlănŃuite (dat de c), se fac următorii paşi: a. p=(lista*)malloc(sizeof(lista)); p->info=3;p->adr=c;c=p; b. p=(lista*)malloc(sizeof(lista)); p->info=3; c=p;p->adr=c; ____ b 24. Se consideră implementarea unei liste simplu înlănŃuite sub forma: typedef struct nod{ int info; struct nod *adr; }lista; lista *c /*capul listei*/ ,*p,*q;

Dacă vrem să ştergem capul listei, se fac paşii: a. free(c); b. p=c;c=c->adr;free(p); ____ b 25. Se consideră implementarea unei liste simplu înlănŃuite sub forma: typedef struct nod{ int info; struct nod *adr; }lista; lista *c /*capul listei*/ ,*p,*q;

Presupunând că vrem să ştergem elementul imediat următor celui pe care punctează p, se fac paşii: a. q=p->adr;free(q);p->adr=q->adr; b. q=p->adr;p->adr=q->adr;free(q); ____ b 26. Se consideră implementarea unei liste simplu înlănŃuite sub forma: typedef struct nod{ int info; struct nod *adr; }lista; lista *c /*capul listei*/ ,*p,*q;

Presupunând că vrem să inserăm un element după cel punctat de p, se fac paşii: a. q=(lista*)malloc(sizeof(lista));p->adr=q;q->adr=p->adr; b. q=(lista*)malloc(sizeof(lista));q->adr=p->adr; p->adr=q; 10

Name: ________________________

ID: A

____ b 27. Se consideră implementarea unei liste simplu înlănŃuite sub forma: typedef struct nod{ int info; struct nod *adr; }lista; lista *c /*capul listei*/ ,*p,*q;

Ce efect are următoarea funcŃie, dacă se apelează scriu(c)? void scriu(lista* p) { if(p) {scriu(p->adr);printf(“%d “,p->info);} } a. afişează lista de la primul la ultimul element b. afişează lista de la ultimul element la primul ____ a 28. Coada de priorităŃi este: a. o structură de date care conŃine o mulŃime S de elemente, fiecare având asociată o valoare numită cheie; inserarea adaugă un element, iar extragerea unui element returnează elementul cu prioritatea maximă b. o structură de date care conŃine o mulŃime S de elemente, în care intrările se fac la un capăt al ei, iar ieşirile la celălalt capăt c. o structură de date care conŃine o mulŃime S de elemente,în care intrările şi ieşirile se fac la un singur capăt.

11

LICENTA 2009 Tehnici avansate de programare _ Probleme propuse 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: 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 b. R, Q, P

c. P, R, Q d. P, Q, R

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: 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 b. p, q, r

c. r, q, p d. p, r, q

3. 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. b. c. d.

P -> urm -> urm == Q -> urm P -> urm -> urm == Q Q -> urm -> urm -> urm == P -> urm Q -> urm -> urm == P -> urm

4. 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);

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. b. c. d.

P -> URM = Q Q -> URM = P Q -> URM -> URM = P 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. 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 8. 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. b. c. d.

Q -> urm -> urm == P P -> urm == Q P -> urm -> urm == Q Q -> urm == P -> urm -> urm

9. 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 10. 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; 11. 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. 12. 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. b. c. d.

Eliminarea nodului din mijlocul listei Eliminarea din lista a ultimului nod; Eliminarea din lista a penultimului nod Eliminarea celui de-al doilea nod al listei

13. 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); 14. 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);

15. 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; } 16. 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 17. 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 18. 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 19. 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 b. 2

c. 3 d. 4

20. 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); 21. 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 22. 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 23. 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 24. 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] 25. 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 26. Se considera urmatoarea functie recursiva apelata numai pentru numere naturale nenule: int f(int a, int b){ if (a
int f(int a, int b){return a*b;} int f(int a, int b){return a-b+1;} int f(int a, int b){return a%b;} int f(int a, int b){return a/b;}

27. 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

28. 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 b. -3

c. -4 d. 4

29. 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 b. 1

c. 2 d. 4

30. 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 b. 45

c. 40 d. 55

31. 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. b. c. d.

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

32. 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 b. a = 1, b = 3, c = 9

c. a = 1, b = 9, c = 3 d. a = 1, b = 9, c = 2

33. 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 b. 120

c. 021 d. 21

34. 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) 35. 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 36. 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) 37. 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( ) 38. 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

39. Fie relatia de recurenta f(n) = n f(n-1), n>0 f(0)=1. Atunci f(5) = a. 120 b. 60

c. 20 d. 0

40. Fie relatia de recurenta f(n) = n f(n-1), n>1 f(1)=0. Atunci f(5) = a. 120 b. 60

c. 20 d. 0

41. 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. 42. 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( ) 43. 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.

44. 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.

45. 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 46. 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) 47. 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

48. 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 49. 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
55. 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. 56. 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 57. 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 58. 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 59. 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) b. (a, a, c)

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

60. 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 61. 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)

62. 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 63. 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 64. 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 65. 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 66. 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) 67. 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 68. 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) 69. 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. 70. 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. 71. 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 72. 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 73. 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) 74. 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 75. 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) 76. 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 b. 130

c. 20 d. 70

77. 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 78. 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) 79. 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 80. 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)

81. 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) b. O(n2) d. O(n ln n) 82. 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 83. 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) 2 b. O(n ) d. O(n log2n) 84. 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 85. 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 86. 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. 87. 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 88. Se considera arborele

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

x = 10, y = 11 x = 7, y = 17 x = 5, y = 9 x = 12, y = 19

89. 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 90. 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 91. 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 92. 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 93. 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 94. 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 95. Se considera arborele binar

Care dintre urmatoarele afirmatii este falsa: a. Arborele este echilibrat b. Arborele este complet

c. Arborele are 4 nivele d. Frunzele arborelui sunt: 4, 6, 9, 14

Related Documents

Tap Complet
May 2020 17
Passage ( Complet )
November 2019 33
Complet 1
June 2020 16
Tap
April 2020 20
Complet Recepteur
June 2020 4
Dossier Complet
April 2020 9