Facultatea de Automatică şi Calculatoare Departamentul de Calculatoare Examen de licenţă, Sesiunea Iulie 2012 Specializarea: Tehnologia informaţiei T E S T G R I L Ă pentru evaluarea cunoştinţelor fundamentale şi de specialitate (subiecte cu o singură variantă de răspuns corectă) I. Elemente de programare 1. Care este rezultatul rulării următorului program? #include <stdio.h> int main(void) { char c=48; int i, mask=01; for(i=1; i<=5; ++i) { printf("%d ", c mask); mask = mask<<1; return 0; a) 48 49 52 56 49 b) 1 2 4 8 0 c) 49 50 52 56 48 d) 49 50 52 56 64 2. Ce se afişează la rularea următorului program? #include <stdio.h> #include <stdlib.h> int f(char*); int main(void){ char* s1, s2[]="albastru", *s3; s1 = (char*)calloc(8, sizeof(char)); s3 = s2 + 4; printf("%d %d %d", f(s1), f(s2), f(s3)); free(s1); return 0; int f(char *s) { register int n = 0; for ( ; *s++!= '\0'; n++); return n; a) 0 8 4 b) 8 8 4 c) 0 9 5 d) 8 9 5 3. Fie o structură time cu trei membri intregi: zi, luna şi an. Fie un vector de pointeri la această structură numit sample. Care este instrucţiunea care atribuie valoarea 12 membrului luna pentru al treilea element al vectorului? a) *(sample[2]->luna) = 12 b) sample[3].luna = 12 c) *sample[2]->luna = 12 d) sample[2]->luna = 12 4. Se dă următoarea secvenţă de program C++: #include <iostream> using namespace std; #include <conio.h> class A { protected: int a; public: A( ) { a = 0; A(int a) { this->a = a; void scrie() { cout << a << endl; ; 1
class B:public A { protected: int b; public: B( ) { b = 0; B(int a, int b): A(a) { this->b = b; virtual void scrie() { cout << a << " " << b << endl; ; class C: public B { public: int c; C() { c = 0; C(int a, int b, int c):b( a, b ){ this->c = c; void scrie() { cout << a << " " << b << " " << c << endl; ; int main() { A *p1 = new A(1); p1->scrie(); B *p2 = new B(2, 3); p2->scrie(); C *p3 = new C(4, 5, 6); p3->scrie(); _getch(); return 0; Ce se va afişa la executarea acestui program? a) 1 2 4 b) 1 2 3 4 5 c) 1 2 3 4 5 6 d) Programul nu se execută din cauza erorilor de sintaxă 5. Fie următoarea secvenţă de program C++: #include <iostream> using namespace std; #include <conio.h> class CTest { static int nr; int val; public: CTest() { val = 5; CTest(CTest &t) { val = t.val; nr++; CTest operator+(ctest t) { CTest r; r.val = val + t.val; return r; int Getnr() { return nr; int Getval() { return val; ; int CTest::nr = 0; int main() { CTest a; CTest b=a; CTest c; c = a+b; cout << a.getnr() << " " ; cout << b.getnr() << ' ' ; cout << c.getnr() << " " << endl; _getch(); return 0; Ce se va afişa la executarea acestui program? a) 5 5 5 b) 2 2 2 c) 3 3 3 d) Programul nu se execută din cauza erorilor de sintaxă II. Algoritmică. Căutare şi sortare 6. Nodurile unui arbore binar de căutare pot fi afişate în ordinea crescătoare a cheilor prin: a) parcurgere pe linie. b) parcurgere în inordine. c) parcurgere în preordine. d) parcurgere în postordine. 7. Care este complexitatea timp pentru căutarea nodului de cheie minimă într-un arbore binar de căutare? a) O(n 2 ) b) O(n) c) O(nlogn) d) O(logn) 2
8. Fie n chei numerice de sortare memorate într-un tablou A de dimensiune n. Se consideră următorul pseudocod pentru algoritmul Bubble_Sort: Bubble_Sort (A,n) flag 1 k n while (flag 0 and k >= 1) do k k-1 flag 0 for i 1 to k do if ( A[i] > A[i+1] ) then interschimba (A[i],A[i+1]) flag 1 end Care este complexitatea algoritmului în cazul în care secvenţa de chei este sortată crescător? a) O(logn) b) O(n) c) O(nlogn) d) O(n 2 ) 9. Care dintre următorii algoritmi de sortare are complexitatea timp O(nlogn)pentru cazul mediu? a) Quick_Sort b) Bubble_Sort c) Insertion_Sort d) Shell_Sort III. Elemente de arhitectura calculatoarelor 10. Fie un sistem de calcul cu microprocesorul 8086 care operează în modul maxim şi care are următoarele resurse mapate complet în spaţiul de adresare pentru memorie: SRAM 256KB, DRAM 32KB, ROM 16KB. Care dintre următoarele expresii pentru generarea semnalelor de selecţie a memoriilor poate fi o soluţie validă? a) b) c) d) 11. Pentru semnalele de selecţie a unor resurse de memorie mapate în spaţiul de adresare al microprocesorului 8086, care operează în modul minim, se consideră următoarele expresii: Care sunt spaţiile de adresă acoperite de semnalele de selecţie de mai sus? Limitele spaţiilor de adresă sunt exprimate în hexazecimal, iar maparea este completă. a) 9A000h 9BFFFh, 60000h 67FFFh, 30000h 3FFFFh b) 9B000h 9BFFFh, 70000h 7FFFFh, 38000h 3FFFFh c) 98000h 9BFFFh, 60000h 6FFFFh, 30000h 37FFFh d) 99000h 99FFFh, 70000h 7FFFFh, 38000h 3FFFFh 12. Fie următoarea zonă din stiva unei aplicaţii în care valorile cuvintelor şi ale deplasamentelor pe stivă sunt exprimate în hexazecimal. Adresă Cuvânt SS:000E 0000 SS:000C 0001 SS:000A 0002 SS:0008 0003 SS:0006 0004 SS:0004 0000 SS:0002 0000 SS:0000 0000 3
Valoarea registrului SP este 0008h. Care sunt valorile din registrele BX şi SP după executarea instrucţiunii de mai jos? pop bx a) BX = 0003h, SP = 000Ah b) BX = 0002h, SP = 000Ah c) BX = 0003h, SP = 0006h d) BX = 0002h, SP = 0006h 13. Se consideră că registrele microprocesorului 8086 au următoarele valori: AX = 0000h BX = 0001h CX = 0002h DX = 0003h SI = 0100h DI = 0010h SP = 0200h BP = 01F0h DS = 1000h ES = 2000h SS = 3000h CS = 4000h IP = 0100h La ce adresă fizică de memorie este copiată valoarea registrului AX prin executarea intrucţiunii următoare? mov [bx][si], ax a) 01010h b) 20101h c) 30101h d) 10101h IV. Elemente de sisteme de operare 14. Care din următoarele afirmaţii este corectă? a) Planificatorul pe termen scurt decide momentele în care se fac evaluări, procesele care se evacuează şi care se readuc în memorie pentru continuarea execuţiei. b) Planificatorul pe termen scurt realizează trecerea proceselor din starea ready în starea run şi invers. c) Planificatorul pe termen scurt realizează alegerea procesului ce va fi executat, alocarea resurselor necesare şi crearea proceselor. d) Niciuna din aceste variante nu descrie corect funcţiile planificatorului pe termen scurt. 15. Efectul executării unei primitive P(s)ce marchează intrarea într-o secţiune critică poate fi descris printr-o secvenţă de forma: val(s) = val(s)-1; if ( ) { // procesul este blocat şi adăugat în coada de aşteptare a semaforului s Care din următoarele expresii trebuie să înlocuiască caracterele... pentru ca această secvenţă să fie corectă? a) val(s) < 0 b) val(s) == 0 c) val(s) > 0 d) val(s)!= 0 16. Se consideră următoarele procese în starea ready la un moment dat. Proces Timp de execuţie P0 40 P1 20 P2 50 P3 30 În ce ordine vor fi terminate aceste procese dacă pentru planificarea executării se aplică algoritmul Round Robin (RR), cu parametrii q=20 şi c=0? a) P2, P3, P0, P1 b) P0, P1, P2, P3 c) P3, P2, P1, P0 d) P1, P0, P3, P2 4
V. Reţele de calculatoare 17. O companie are asignată de către Internet Service Provider (ISP) următoarea adresă de reţea 207.48.12.8/29. Care dintre următoarele soluţii poate asigura accesul simultan la Internet a unui număr de 300 de angajaţi? a) Folosirea tehnicii VLSM pentru împărţirea în subreţele. b) Împărţirea în subreţele de clasă C şi adrese de host. c) Folosirea tehnicilor NAT (Network Address Translation) şi PAT (Port Address Translation). d) Accesul la Internet este asigurat, numărul de adrese IP din reţea fiind suficient. 18. Care din următoarele soluţii duce la creşterea numărului de domenii de broadcast într-o reţea? a) Înlocuirea dispozitivelor de tip hub cu echipamente de tip switch. b) Segmentarea reţelei folosind un echipament de tip router. c) Adăugarea unori echipamente de tip hub. d) Înlocuirea echipamentelor de tip router cu echipamente de tip switch. 19. Care este rolul unui PROTOCOL DE RUTARE? a) Să ofere o metodă pentru segmentarea şi reasamblarea pachetelor de date. b) Să permită unui administrator să elaboreze o schemă de adresare pentru reţea. c) Să permită router-elor partajarea de informaţii despre reţelele cunoscute. d) Să asigure o procedură de codare şi decodare la transmiterea pachetelor de date. VI. Elemente de baze de date relaţionale Pentru următoarele trei probleme se dau următoarele relaţii: Stud = {ids, numes, an, media Prof = {idp, numep, graddid, idcurs Examen = {idp, ids, data, idcurs, nota 20. Folosind numai operatori AR standard se cere numele tuturor studenţilor din anii 2 şi 3 care au media în intervalul [8,10]. Care din următoarele variante este corectă? a) E = numes (( an=2 (Stud) an=3 (Stud)) ( media>=8 (Stud) media<=10 (Stud))) b) E = numes ( an=2 V an=3 (Stud) 8<=media<=10 (Stud)) c) E = numes ( an=2 V an=3 (Stud) media>=8 (Stud)) d) E = numes (( an=2 (Stud) an=3 (Stud)) ( 8<=media<=10 (Stud))) 21. Folosind calculul relaţional orientat pe domeniu, se cere numele studenţilor care dau examen pe data 16/07/2012. Care din următoarele variante este corectă? a) E = { NS / ( ids) ( a) ( m) ( idp) ( np) ( gd) ( idc) ( d) ( n) ( (<ids, ns, a, m> Stud ) (<idp, np, gd, idc> Prof ) (<idp, ids, d, idc, n> Examen) (Examen.d = 16/07/2012 ) (Examen.ids = Stud.ids) (Examen.idp = Prof.idp) ) b) E = { NS / ( (<ids, ns, a, m> Stud) (<idp, ids, d, idc, n> Examen) ( Examen.d = 16/07/2012 ) ( Stud.ids = Examen.ids ) ( <ns> Rez ) ) c) E = { NS / ( ids) ( a) ( m) ( idp) ( np) ( gd) ( idc) ( d) ( n) ( ( <ids, ns, a, m> Stud) (<idp, np, gd, idc> Prof) (<idp, ids, d, idc, n> Examen) (Examen.d = 16/07/2012 ) (Examen.ids = Stud.ids) (Examen.idp = Prof.idp) (<ns> Rez) ) d) E = { NS / ( (Examen.d = 16/07/2012 ) (Stud.ids =Examen.ids ) (<ns> Rez) ) 5
22. Folosind calculul relaţional orientat pe tuplu se cere numele profesorilor care dau examen pe data de 16/07/2012. Care din următoarele variante este corectă? a) E = { t / ( p) ( e) ( (p [ 1 ] = e [ 1 ]) (e [ 3 ] = 16/07/2012 ) (t [ 1 ] = p [ 2 ]) (Rez(t)) ) b) E = { t / ( p) ( e) ( (Prof(p)) (Examen(e)) (p [ 1 ] = e [ 1 ]) (e [ 3 ] = 16/07/2012 ) (t [ 1 ] = p [ 2 ]) ) c) E = { t / ( p) ( e) ( (Prof(p)) (Examen(e)) (p [ 1 ] = e [ 2 ]) (e [ 3 ] = 16/07/2012 ) (t [ 1 ] = p [ 2 ]) ) d) E = { t / ( p) ( e) ( (Prof(p)) (Examen(e)) (p [ 1 ] = e [ 1 ]) (e [ 3 ] = 16/07/2012 ) (t [ 1 ] = p [ 2 ]) (Rez(t)) ) 23. Când spunem că o relaţie este în forma normală 4? a) când nu există nici o dependenţă funcţională multivaloare între atributele relaţiei; b) când este în FNBC şi nu există nici o dependenţă funcţională multivaloare între atributele relaţiei; c) când este în FNBC şi nu există nici o dependenţă funcţională tranzitivă a atributelor necheie de atributele cheie ale relaţiei; d) când este în FN3 şi nu există nici o dependenţă funcţională noncheie între atributele relaţiei. VII. Tehnologii internet 24. Care din următoarele protocoale Internet foloseşte două porturi şi două canale între client şi server: unul pentru trimiterea comenzilor şi recepţionarea confirmărilor, iar altul pentru transferul efectiv al datelor? a) FTP = File Transfer Protocol b) HTTP = Hyper Text Transfer Protocol c) SMTP = Simple Mail Transfer Protocol d) RIP = Routing Information Protocol 25. Cum poate referenţia un URL o anumită poziţie din cadrul unui document HTML? Cum este marcată această poziţie în documentul ţintă? a) URL-ul se încheie cu?section=locatie, iar documentul.html ţintă are în cadrul <body> elementul <form name= locatie > b) Nu se poate referenţia o anumită poziţie din cadrul unui document HTML. c) Se poate doar dacă URL-ul iniţial referă un fişier.php d) Un URL se poate încheia cu #locatie, unde textul după # este numele locaţiei în document. Documentul ţintă poate conţine marcajul <a name= locatie > </a> pentru a denumi un loc particular în document. 26. Ce eveniment se generează atunci când un element al unei pagini web pierde focus-ul? a) onblur b) onfocus c) onselect d) onchange VIII. Ingineria programării 27. Ce se poate spune despre relaţia dintre clasele din figură? Shape DrawingContext a) Între clase există o relaţie de asociere b) Între clase există o relaţie de dependenţă c) Clasa Shape este derivată din clasa DrawingContext d) Clasa Shape implementează interfaţa DrawingContext 6
28. Subclasele trebuie să fie substituibile claselor lor de bază reprezintă: a) Principiul lui Liskov b) Principiul deschis-închis c) Principiul inversiunii dependenţei d) Principiul segregării interfeţei 29. Şablonul de proiectare care defineşte o interfaţă pentru crearea unui obiect, dar lasă subclasele să decidă ce clasă să instanţieze este: a) Comanda (Command) b) Fabrica Abstractă (Abstract Factory) c) Observatorul (Observer) d) Metoda Fabrică (Factory Method) 30. Proxy face parte din categoria şabloanelor de proiectare: a) Creaţionale b) Structurale c) Comportamentale d) Enterprise 7