Sunteți pe pagina 1din 15

UNIVERSITATEA SPIRU HARET

Tehnici Avansate de Programare

Intrebari orientative pentru pregatirea testului de cunostinte (60% din nota finala)

Important!

Intrebarile care urmeaza sunt orientative si servesc drept exemplu de intrebari grila
Se recomanda parcurgerea bibliografiei recomandate pentru a putea raspunde la
intrebarile din timpul testului de tip grila.

Pentru studentii care nu au activitate de laborator (portofoliu = 5 programe C++/Java


conform anuntului de la inceputul semestrului), nota finala este constituita din:
N1 = 10 – puncte din oficiu
N2 = 60% din punctajul obtinut in urma testului Grila
Nota finala = N1+N2 (cu rotunjire)

Activitatea de laborator (portofoliu), notata N3, este cotata cu maximum 30 de puncte.


Deci, pentru studentii care au activitate de laborator (portofoliu = 5 programe
C++/Java conform anuntului de la inceputul semestrului), nota finala este constituita
din:
N1 = 10 – puncte din oficiu
N2 = 60% din punctajul obtinut in urma testului Grila
N3

Nota finala = N1+N2+N3 (cu rotunjire)

Se permite intrarea la testul grila a tuturor studentilor, indiferent de


prezenta/activitate in cadrul laboratorului (portofoliului)

Testul grila contine intrebari din Java (cunostinte de baza + fire de executare) si
metode de elaborarea algoritmilor (cele 5 metode+recursivitate)
Edited by Foxit Reader
Copyright(C) by Foxit Corporation,2005-2010
Java 1 - Fundamente For Evaluation Only.

1. Fie secventa Java:

int a = 3; if (a++ < 4) if (++a < 4)


System.out.println(a); else System.out.println(a);

Ce se poate despre aceasta?


C a. eroare la compilare
b. afiseaza 4
c. afiseaza 5
d. compileaza iar la executare nu afiseaza date

2. Fie urmatorul program Java:

public class Program3{


static void f(int k){
switch(k){
B default: System.out.print("i "); break;
case 1: System.out.print("1 "); break;
case 2: case 3: System.out.print("23 "); break;
case 4: case 5: System.out.print("45 ");
}
}
public static void main(String[] x){
for (int i = 0; i< 6; i++) f(i);
}
}
Ce se poate spune despre acesta?
a. eroare la compilare
b. afiseaza i 1 23 23 45 45
c. afiseaza i 1 23 45
d. afiseaza i 1 23 23 45 45 i

3. Fie secventa Java:


int i = 1, suma = 0;
for (; ; ){ suma += i++; if (i > 5) break;}
System.out.print(suma);
C Ce se poate spune despre aceasta?
a. afiseaza 0
b. afiseaza 10
c. afiseaza 15
d. eroare la compilare: lipsesc partile componente ale lui for!

4. Fie programul Java:


public class Program4 {
D public static void main(String [] x){
int v[] = {2, 4, -2, 8, -2}, i = 0, suma = 0;
for (i = 0; i<10; ++i) {
if(v[i] < 0) continue; suma += v[i];
Edited by Foxit Reader
Copyright(C) by Foxit Corporation,2005-2010
} For Evaluation Only.
System.out.println("suma = " + suma);
}
}
Ce se poate spune despre acesta?

a. afiseaza 0
b. afiseaza 14
c. afiseaza -4
d. eroare la compilare

5. Fie urmatorul program Java:


public class Program5{
A public static void main(String [] x){
float f = 4.50;
System.out.println(f);
}
}
Ce se poate spune despre acesta?
a. eroare la compilare: nu se poate converti implicit 4.50 la float
b. afiseaza 4.5
c. afiseaza 4.50
d. afiseaza 4.500000

6. Fie urmatoarea secventa Java:


String s1 = "anul" + 200 + 5, s2 = 200 + 5 + "anul";
System.out.println("s1 =" + s1 + ", s2 = " + s2);
Ce va afisa la executia sa?
A a. s1 = anul2005, s2 = 205anul
b. s1 = anul205, s2 = 2005anul
c. s1 = anul2005, s2 = 2005anul
d. s1 = anul205, s2 = 205anul

7. Fie urmatoarea secventa Java:


int as = 3, bs = 2, cs = 4;
System.out.print(((as<bs++) & (cs++ < bs)) + " ");
C System.out.println(as + " " + bs + " " + cs);
System.out.print(((as < bs++) && (cs++ < bs++)) + " ");
System.out.println(as + " " + bs + " " + cs);
Ce se poate spune despre aceasta?
a. Eroare la compilare: nu se poate aduna o valoare booleana cu un String
b. Se afiseaza false 3 3 5 \n false 3 4 4
c. Se afiseaza false 3 3 5 \n false 3 4 5
d. Se afiseaza false 3 3 5 \n false 3 5 6

8. Fie urmatorul program Java:


public class Test1{
public static void main(String x[]){
A int a = 3;
int b = (a = 2) * a;
int c = b * (b = 5);
Edited by Foxit Reader
Copyright(C) by Foxit Corporation,2005-2010
System.out.println("a = " + a + For",
Evaluation
b = " +Only.
b + ", c = " +c);
}
}
Ce va afisa acesta le executare?
a. a = 2, b = 4, c = 20
b. a = 2, b = 5, c = 20
c. a = 2, b = 5, c = 25
d. a = 3, b = 6, c = 30

9. Fie urmatoarea secventa Java:


System.out.println((1<2)?5:(3<4))+" ");
B Ce se poate spune despre aceasta?
a. Eroare la compilare: nu se poate converti o valoare booleana la un int
b. afiseaza 5
c. afiseaza 37
d. afiseaza true

10. Fie urmatoarea secventa Java:


double d = 2.95; int i = 4; System.out.println(++d>i?d:i);
D Ce se poate spune despre aceasta?
a. Eroare la compilare: nu putem converti double la int
b. afiseaza 3.95
c. afiseaza 4
d. afiseaza 4.0

11. Fie secventa:


System.out.println(1 < 2 < 3);
A Ce se poate spune despre aceasta?
a. Eroare la compilare
b. Eroare la executare
c. Afiseaza true
d. Afiseaza false

12. Este limbajul Java independent de platforma?


a. Da, deoarece se va crea o masina virtuala Java care are drept scop traducerea
A instructiunilor unui byte cod in instructiuni masina pentru sistemul de operare curent.
b. Nu, deoarece este imposibil ca acelasi program Java sa fie executat pe diferite sisteme de
operare fara a fi modificat.

13. Cum putem initializa pointeri in Java?


C a. folosind operatorul de adresa &
b. folosind operatorul de dereferentiere *
c. nu exista pointeri in Java

14. Cu ce comanda putem dezasambla un cod binar Java?


C a. java -p c. javap
b. javac d. rmic

15. Ce puteti spune despre urmatorul program Java?


Edited by Foxit Reader
Copyright(C) by Foxit Corporation,2005-2010
class C1 { For Evaluation Only.
int x = 1;
void f(int x) {this.x = x;}
int getX_C1() {return x;}
}
A/D class C2 extends C1{ float x = 5.0f;
int f(int x){super.f((int)x);}
float getX_C2(){return x;}
}
public class SuprascriereSiAscundere{
public static void main(String args[]){
C2 obiect = new C2();
obiect.f(4);
System.out.print(obiect.getX_C2() + " ");
System.out.println(obiect.getX_C1());
}}

a. Programul este corect si va afisa 5.0 4


b. Afiseaza 5 4
c. Afiseaza 4.0 4
d. Eroare le compilare, din cauza suprascrierii lui x din C2.
e. Eroare la compilare din cauza metodei f() care este suprascrisa in mod diferit.

16. Ce puteti afirma despre urmatorul program Java?


class C1{
static String f() {return "Mesajul Unu din C1";}
String g() {return "Mesajul Doi din C1";}
}
B class C2 extends C1 {
static String f() {return "Mesajul Unu din C2";}
String g() {return "Mesajul Doi din C2";}
}
public class Test {
public static void main(String[] args){
C1 obiect = new C2();
System.out.println(obiect.f() + ", " + obiect.g());
}
}

a. Corect. Afiseaza: Mesajul Unu din C1, Mesajul Doi din C1


b. Corect. Afiseaza Mesajul Unu din C1, Mesajul Doi din C2
c. Corect. Afiseaza Mesajul Unu din C2, Mesajul Doi din C1
d. Corect. Afiseaza Mesajul Unu din C2, Mesajul Doi din C2
e. Eroare la variabila obiect din clasa Test

17. Fie urmatorul program Java:


class C1 { int x = 1; C1(){ System.out.print("x =" + x); }}
class C2 extends C1 { int y = 3; C2(int y) {this.y = y;}}
A public class Test26{ public static void main(String[] a){
C2 obiect = new C2();
System.out.println(" y = " + obiect.y);
}
Edited by Foxit Reader
Copyright(C) by Foxit Corporation,2005-2010
} For Evaluation Only.
Ce puteti spune despre aceasta?
a. Eroare la compilare: nu exista constructor fara argumente
b. Programul este corect si la executare afiseaza y = 3
c. Programul este corect si la executare afiseaza x = 1 y = 3

18. Fie urmatorul program Java:


class x {
private int x = 1;
D void x(){System.out.print(x+ " "); }
}
class y extends x {
private int x = 2;
void x(){super.x(); System.out.print(x);}
}
public class TestAtribute{
public static void main (String [] a){
y ob = new y(); ob.x();
}
}
Ce puteti spune despre acesta?

a. Eroare la compilare: nu se pot defini un atribut si o metoda cu acelasi nume (x)


b. Eroare la compilare: nu se poate defini un atribut cu numele clasei (x)
c. Eroare la compilare: nu se poate defini un atribut cu acelasi nume intr-o clasa derivata (x)
d. Programul este corect si la executare va afisa 1 2

19. Ce va afisa, la executare, urmatorul program:


public class TestStatic{
public static void main(String [] a){
A Exemplu a = new Exemplu();
Exemplu b = new Exemplu();
System.out.print(" a.x = " + a.x);
a.x = 100; b.x = 200;
System.out.print(" a.x = " + a.x);
}}
class Exemplu{ static int x = 0;
Exemplu() {x++;}
}

a. a.x = 2 a.x = 200


b. a.x = 0 a.x = 100
c. a.x = 1 a.x = 100
d. a.x = 1 a.x = 101
e. a.x = 2 a.x = 100

20. Ce puteti afirma despre urmatorul program?


interface I1 {float x = 2.3f;}
A public class Test implements I1 {
public static void main(String[] a){ System.out.print(x
+ " "); x = 6.7f; System.out.println(x); }
}
Edited by Foxit Reader
Copyright(C) by Foxit Corporation,2005-2010
For Evaluation Only.
a. Eroare de compilare: valoarea variabilei x nu se mai poate modifica
b. La executare va afisa 2.3f 6.7f
c. La executare va afisa 2.3f 2.3f
d. La executare va afisa 2.3 6.7
e. La executare va afisa 2.3 2.3

21. Ce puteti spune despre urmatorul program Java?


interface I1 {int x = 2;}
A interface I2 extends I1 {int y = 3;}
class C1 {int y = 4;}
public class C2 extends C1 implements I2 {
public static void main(String [] a){
System.out.println("x = " + x + ", y = " + y);}}

a. Va aparea eroare la compilare, y este ambiguu pentru C1 si I2


b. La executare va afisa x = 2, y = 3
c. La executare va afisa x = 2, y = 4

22. Ce puteti afirma despre urmatorul program Java?


class C1 { public String f(){
return this.getClass().getName();}
A }
abstract class C2 extends C1{ int x = 2; public abstract
Stringf();
}
class C3 extends C2{ int y = 3; public String f(){
return super.f()+", x = " + x + ", y = " + y;}}
public class TestAbstract{
public static void main(String [] a){ C3 ob = new C3();
System.out.println(ob.f());}
}

a. La executare va afisa C3, x = 2, y = 3


b. La executare va afisa C1, x = 2, y = 3
c. Eroare la compilare, clasa C2, metoda f()
d. Eroare la compilare, clasa C3, super.f()
e. Eroare la executare: ciclare in metoda f() din C3

23. Ce modificare trebuie facuta urmatorului program Java


pentru a fi corect?

abstract class C1{


int x = 2;
public final abstract String f();
A }
final class C2 extends C1 {
int y = 3; public String f(){
return "x = " + x + ", y = " + y;
}
}
public class TestFinal{
Edited by Foxit Reader
Copyright(C) by Foxit Corporation,2005-2010
public static void main(String For []Evaluation
a){ Only.
C2 ob = new C2();
System.out.println(ob.f());
}
}
a. Trebuie sters final din definitia f() in clasa C1
b. Trebuie sters final din clasa C2
c. Trebuie sters abstract din C1
d. Trebuie stearsa initializarea int x = 2; din C1
e. Este corect, iar la executare va afisa x = 2, y = 3.

24. Ce puteti spune despre urmatorul program?


public class Test{
int i = 3, j = 4;
C public static void main(String[] a){
System.out.println(i ++ + ++ j);
}
}

a. Va aparea eroare la compilare, deoarece parametrul metodei main() nu e corect specificat


b. Va aparea eroare la compilare deoarece nu s-au inserat paranteze intre ++, adica (i++) si
(++j)
c. Va aparea eroare la compilare, deoarece din functia statica main() nu putem accesa
variabilele nestatice i si j
d. La executare se va afisa 8
e. La executare se va afisa 9

25. Fie urmatorul program Java:


class C0 {int x = 1;}
A class C1 {int y = 2;}
class C2 extends C0, C1 { int z = 3;}
public class TestDoi {public static void main(String[] a){
C2 obiect = new C2();
System.out.println(obiect.x+obiect.y+obiect.z);
}}
Ce puteti spune despre acesta?
a. Eroare la compilare. Clasa C2 nu poate fi derivata direct din doua clase
b. Eroare la compilare. Clasa C2 nu are constructor fara argumente
c. Programul este corect si la executare va afisa 6
Edited by Foxit Reader
Copyright(C) by Foxit Corporation,2005-2010
Java 2 - Fire de executare For Evaluation Only.

1. Care din urmatoarele afirmatii este falsa?


D a. Firele de executare pot partaja aceleasi resurse, iar accesul la acestea poate fi concurent
sau secvential.
b. Un fir de executare este un obiect al unei clase care extinde clasa Thread
c. Un fir de executare este un obiect al unei clase care implementeaza interfata Runnable
d. Cand se executa un thread, metoda apelata este exec();

2. Care din urmatoarele expresii nu descriu o stare a unui fir de executare?


E a. in executare (running)
b. in asteptare (waiting)
c. pregatit pentru executare (ready)
d. terminat (dead)
e. de serviciu (daemon)

3. Masina virtuala Java ramane pornita atata vreme cat exista activ un fir care nu este de tipul Daemon.
A a. Adevarat
b. Fals

4. Care din situatiile urmatoare nu determina trecerea unui fir din starea de executare (running) in starea
D terminat (dead)?
a. Terminarea normala a metodei run()
b. Apelarea metodei stop()
c. oprirea masinii virtuale in urma unui apel exit()
d. folosirea functiei yield()

5. In care din situatiile urmatoare un fir Java trece din starea in executare (running) intr-o stare de blocare
A temporara?
a. apelul suspend() c. apelul destroy()
b. apelul stop() d. apelul exit()

6. In Java exista K metode pentru crearea unui thread. K =?


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

7. Pentru a lucra cu grupuri de fire se utilizeaza clasa:


C a. Thread
b. Runnable
c. ThreadGroup

8. Pornirea firelor de executare se realizeaza prin apelul start().


A a. Adevarat
b. Fals

9. Metoda destroy() distruge un thred


Edited by Foxit Reader
Copyright(C) by Foxit Corporation,2005-2010
B a. si elibereaza resursele folosite. For Evaluation Only.
b. fara sa elibereze resursele folosite.

A 10. Apelul metodei sleep() cere oprirea rularii firului de executare curent pentru un interval de timp
specificat.
a. Adevarat
b. Fals

B 11. Un fir de executare nu poate crea un alt fir de executare.


a. Adevarat
b. Fals

12. O aplicatie poate crea cel mult 16 fire de executare.


B a. Adevarat
b. Fals

13. Pentru fiecare fir de executare trebuie sa definim o clasa.


A a. Adevarat
b. Fals

14. Metoda Join permite sincronizarea a doua fire de executare: firul curent se blocheaza in asteptarea
A terminarii firului asupra caruia se executa metoda.

a. Adevarat
b. Fals

15. De cate ori se apeleaza metoda start() in viata unui fir de executare?
A a. o singura data
b. de cate ori este nevoie

16. De cate ori se apeleaza metoda destroy() in viata unui fir de executare?
B a. de cate ori este nevoie
b. o singura data

17. Care din urmatoarele caracterizari nu se refera la fire demon?


E a. Sunt fire speciale similare cu procesele demoni.
b. Realizeaza anumite activitati in fundal (background)
c. Se distrug automat la terminarea celorlaltor fire de executare.
d. Au prioritate de executie redusa, fiind planificate la CPU cand acesta nu ruleaza alte fire.
e. Sunt procese care gestioneaza rularea firelor de executare..

18. Un fir de executare poate fi transformat in fir demon folosind apelul


A a. setDaemon()
b. sleep()
c. interrupt()

B 19. Prioritatea maxima a unui fir de executare este


Edited by Foxit Reader
Copyright(C) by Foxit Corporation,2005-2010
a. 1 For Evaluation Only.
b. 5
c. 10

A 20. Prin intermediul firelor de executare se pot executa simultan mai multe secvente de cod.
a. Adevarati
b. Fals
Edited by Foxit Reader
Copyright(C) by Foxit Corporation,2005-2010
Metode de elaborarea algoritmilor For Evaluation Only.

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

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

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

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

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

4. Se considera multimea {1, 7, 5, 16, 12}. Se genereaza prin metoda backtracking toate submultimile
B 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} c. {7, 5, 16}
b. {5, 16, 12} d. {7, 5, 12}

5. 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},
A {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} c. {1,2,3}
b. {4} d. {1,4}
Edited by Foxit Reader
Copyright(C) by Foxit Corporation,2005-2010
Forlitera
6. Generarea tuturor cuvintelor de 4 litere, fiecare Evaluation
putand fiOnly.
orice element din multimea {a, c, e, m,
B 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

7. Pentru a determina toate modalitatile de a scrie numarul 8 ca suma de numere naturale nenule distincte
c (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

8. Generarea tuturor sirurilor formate din trei elemente, fiecare element putand fi oricare numar din
C 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

9. 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
B 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

10. 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)

11. 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
A spectacol i-a fost anuntat intervalul in care se va desfasura:
1: [10, 16)
2: [2, 4)
3: [7, 9)
4: [21, 25)
5: [10, 12)
Edited by Foxit Reader
Copyright(C) by Foxit Corporation,2005-2010
6: [12, 15) For Evaluation Only.
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 c. 2, 4, 5, 6, 7
b. 1, 8 d. 2, 3, 1, 8

12. 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.
B 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)

13. 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
D nu se pot executa doua lucrari in acelasi timp.
Se considera datele de intrare:
i t[i] p[i]
1 4 50
2 3 40
3 2 60
4 3 20
5 4 70
6 2 10
7 1 130
Care este penalizarea totala minima ce se poate obtine?

a. 10 c. 20
b. 130 d. 70

14. 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
C 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

15. Se considera doua tablouri unidimensionale A si B: A = (1, 3, 5, 9, 10), respectiv B = (2, 4, 6, 7). In
B urma interclasarii lor in ordine crescatoare se obtine tabloul cu elementele:
a. (1, 2, 3, 4, 5, 6, 9, 7, 10)
b. (1, 2, 3, 4, 5, 6, 7, 9, 10)
c. Nu se poate realiza interclasarea
d. (1, 3, 5, 9, 10, 2, 4, 6, 7)

16. Fie secventele de numere:


D i) 1, 4, 6, 8, 9
ii) 8, 5, 4, 3, 2, 1
Edited by Foxit Reader
Copyright(C) by Foxit Corporation,2005-2010
iii) 2, 3, 8, 5, 9 For Evaluation Only.
Algoritmul de cautare binara se poate aplica direct, fara alte prelucrari prealabile
a. numai secventei i)
b. numai secventei iii)
c. numai secventei ii)
d. atat secventei i) cat si secventei ii)

17. 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
C cerut de algoritm este:
a. O(n)
b. O(n2)
c. O(n log2n)
d. O(n ln n)

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

19. Se considera arborele binar a carui reprezentare standard (ST[i] - descendent stang, DR[i] - descendent
C 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
b. 1, 2, 8, 3, 5, 9, 4, 6, 7
c. 4, 3, 2, 6, 5, 7, 1, 8, 9
d. 4, 3, 6, 7, 5, 2, 9, 8, 1

S-ar putea să vă placă și