Pregătire cu un profesor

Glisează →

Subiect și barem

PDF

Se deschide documentul PDF… Deschide PDF

Model de pregătire · Informatică · 2021

Facultatea de Automatică și Calculatoare · TUIASI

Înapoi la arhivă

Subiectul și baremul în format text

Text extras automat din documentul original. Pentru formule, tabele, imagini și așezarea răspunsurilor, verifică întotdeauna PDF-ul.

Subiect · 8 pagini

Subiect · pagina 1

Universitatea Tehnic "Gheorghe Asachi" din Ias, i
Facultatea de Automatic s, i Calculatoare *
Admitere sesiunea iulie 2021
Domeniile: Calculatoare s, i tehnologia informat, iei
Ingineria sistemelor (Automatic s, i informatic aplicat )
Subiecte la testul gril de Informatic
1. Ce se as, eaz pe monitor la rularea urm torului program:
#include <i o s t r e a m >
using namespace s t d ;
int main ( void )
{
int num , a =10;
int b = 0 ;
num = a&&b + −1&&a ;
c o u t << num << a << e n d l ;
return 0 ;
}
(a) 110 (b) 010 (c) La compilare vor ap rea erori (d) 00
2. Ce se va as, a la rularea secvent, ei urm toare?
int i , s = 0 ;
for ( i = 1 0 ; i > 0 ; i −−)
{
s = s + i ;
c o u t << i −− << " " ; // p r i n t f ("%d " , i −−);
s = s − i ;
}
c o u t << " s = " << s ; // p r i n t f (" s = %d " , s ) ;
(a) 10 8 6 4 2 s = 0
(b) 10 9 8 7 6 5 4 3 2 1 s = 45
(c) 10 8 6 4 2 s = 5
(d) 9 7 5 3 1 s = 5
3. Se consider secvent, a din pseudocodul de mai jos, în care n s, i s sunt variabile de tip întreg. Cu ce valoare trebuie
init, ializat variabila n, astfel încât rezultatul s e 26?
s ← 0
cât timp n mod 2 ! = 0 execut
s ← s + n
n ← n div 2
(a) 9 (b) 7 (c) 15 (d) 21
4. Programul de mai jos va as, a:
1

Subiect · pagina 2

void f ( )
{
s t a t i c int k = 4 ;
i f (−−k )
{
f ( ) ;
cou t << k << " " ;
}
}
int main ( )
{
f ( ) ;
return 0 ;
}
(a) 1 2 3 (b) 3 2 1 (c) 0 0 0 (d) 3 2 1 0
5. Ce se as, eaz pe monitor la rularea urm torului program:
#include <i o s t r e a m >
using namespace s t d ;
#define n 24
int main ( void )
{
int x ;
for ( x = 0 ; x < n ; x += 4 )
{
switch ( x )
{
case 0 : c out << x ;
case 8 : c out << x ;
default : break ;
case 4 : c out << x ;
}
}
return 0 ;
}
(a) 0048 (b) 048 (c) La compilare vor ap rea erori (d) 0084
6. Pentru a cripta textul din vectorul x, Ionel foloses, te funct, ia denit mai jos. De asemenea, hot r s, te s utilizeze litera
Q pentru a marca toate caracterele albe (spat, iul, enter, tab, etc), iar n reprezint num rul de caractere al vectorului
x. Care este formula utilizat pentru decriptare dac apelul pentru operat, ia de codicare a fost criptare(26)?
void c r i p t a r e ( int p )
{
for ( int i =0; i <n ; i ++)
x [ i ] = ( ( 'Z '−x [ i ])%p+ ' a ' ) ;
}
void d e c r i p t a r e ( int p )
{
for ( int i =0; i <n ; i ++)
. . . // i n s t r u c t i u n e f o r m u l a d e c r i p t a r e
}
2

Subiect · pagina 3

(a) x[i]=(('z'-x[i])%p+'A'); (b) x[i]=('z'-x[i]+'A'); (c) x[i]=(('z'-x[i])*p+'A'); (d) x[i]=('Z'-x[i]+'A')%p.
7. Fie v un vector s, i poz una din pozit, iile vectorului corect init, ializat . Ce operat, ie efectuat asupra vectorului v necesit
utilizarea urm torului cod?
for ( i = poz ; i <= N − 1 ; i ++)
v [ i ] = v [ i + 1 ] ;
N = N − 1 ;
(a) Calcularea sumei elementelor vectorului aate intre pozitia poz si sfârs, itul vectorului
(b) Eliminarea unui element din vector
(c) Introducerea unui element în vector
(d) Interschimbarea elementului v[i] cu v[i+1] incepând de la pozitia poz si pân la sfârs, itul vectorului
8. Ce se va as, a la consol în urma apelului f (”Anaaremere”);, unde funct, ia f este denit mai jos? Funct, iile strlen,
strcmp s, i strcat sunt din biblioteca string (sau din cstring).
void f ( char a [ 1 0 0 ] )
{
char b [ 1 0 0 ] , c [ 1 0 0 ] ;
int n = s t r l e n ( a ) ;
int i , j ;
i = n−1;
b [ 0 ] = ' \0 ' ;
c [ 3 ] = ' \0 ' ;
while ( i >1)
{
for ( j = i ; j >= i −2; j = j − 1 )
c [ i −j ] = a [ j ] ;
i f ( strcmp ( c , " i n f " ) < 0 )
s t r c a t ( b , c ) ;
// s t r c a t ( b , c ) ;
i = i − 3 ;
}
cout<<b ; // p r i n t f ("% s " , b ) ;
}
(a) ereeremeraanaan (b) ereaan (c) Anaaremere (d) eremeraan
9. Fie A o matrice p tratic de dimensiune n x n. Ce reprezint Output din secvent, a de pseudocod de mai jos?
C ← 100
pentru i ← 1 la n execut
pentru j ← 1 la n execut
temp ← A[i][j] + C
A[i][j] ← A[j][i]
A[j][i] ← temp − C
pentru i ← 1 la n execut
pentru j ← 1 la n execut
Output(A[i][j])
(a) O matrice obt, inut din matricea A la care s-a adaugat 100 la elementele de deasupra diagonalei principale
s, i s-a sc zut 100 din elementele de sub diagonala principal
3

Subiect · pagina 4

(b) O matrice obt, inut din matricea A la care s-a adaugat 100 la elementele de deasupra diagonalei principale
s, i s-a scazut 100 din diagonalei matricei date
(c) Matricea A
(d) Transpusa matricei A
10. Fie urm torul program ce implementeaz un algoritm care caut într-un tablou unidimensional init, ializat cu elemente
în ordine strict cresc toare dou numere a c ror diferent, a este d.
#define N 10
const int d = 1 8 ;
int v [N] = { 1 1 , 3 0 , 5 4 , 5 9 , 6 1 , 6 9 , 7 3 , 8 7 , 9 1 , 9 7 } ;
int main ( )
{
int i = 0 ;
int j = 1 ;
while ( j < N)
{
i f (E)
j ++;
e l s e i f ( v [ j ] − v [ i ] == d )
break ;
e l s e
i ++;
}
i f ( j < N)
cou t << " E x i s t a : ( " << v [ j ] << " − " << v [ i ] << " ) == " <<d ;
e l s e
cou t << "Nu e x i s t a " ;
return 0 ;
}
Care este expresia E:
(a) v[i] - v[j] < d
(b) v[j] - v[i] > d
(c) v[j] - v[i] < d
(d) v[i] - v[j] > d
11. Urm torul program determin maximul elementelor unui tablou unidimensional v.
#define N 10
int Maxim( int v [ ] , int n ) ;
int main ( )
{
int v [N] = { 1 3 , 1 1 3 , 9 7 , 6 , −1, 6 9 , 7 4 , 3 1 , 1 1 1 , 9 7 } ;
cou t << Maxim( v , N ) ; // p r i n t f ("%d " , Maxim( v , N) ) ;
return 0 ;
}
int Maxim( int v [ ] , int n )
{
int i = 0 ;
int j = n − 1 ;
while ( E )
{
i f ( v [ i ] <= v [ j ] )
4

Subiect · pagina 5

i = i + 1 ;
e l s e
j = j − 1 ;
}
return v [ i ] ;
}
Care este expresia E:
(a) j == i
(b) j >= i
(c) j != i
(d) i < j - 1
12. Un melc cade într-o fântân adânc de N metri. Care dintre secvent, ele de mai jos calculeaz corect în câte zile (Z)
va sc pa melcul din fântân , s, tiind c într-o zi întâi urc X metri s, i apoi alunec Y metri? O dat ce melcul a ies, it
din fântân , nu mai poate s cad înapoi. Variabilele N , X, Y , Z sunt de tipul long int, iar N > X > Y .
(a) Z = N/(X − Y );
(b) Z = (N − Y )/(X − Y );
(c) Z = (N %X == 0)?(N/(X − Y )) : (N/(X − Y ) − 1);
(d) Z = (X%Y == 0)?(N/(X − Y )) : (N/(X − Y ) − 1);
13. Fie urm torul pseudocod:
funct, ia f(x)
y ← 1
z ← 1
cât timp x > y execut
y ← y + 1
z ← z ∗ y
returneaz z
Care dintre urm toarele instruct, iuni dau ca rezultat valoarea 719?
(a) f(6) (b) f(6) − 1 (c) f(7) (d) f(7) − 1
14. Se consider 6 secvenμe de numere sortate cresc tor. Dimensiunile secvenμelor sunt 10, 5, 35, 40, 5, 30. Pentru
interclasarea a doua secvenμe de dimensiuni n respectiv m, sunt necesare n + m operaμii. Care este num rul minim
de operaμii pentru interclasarea celor 6 secvenμe?
(a) 270 (b) 280 (c) 250 (d) 125
15. Tat l lui Cristian dore³te s cumpere cât mai multe bomboane pentru bradul de Cr ciun, dar nu are la el decât 20
lei. Bomboanele sunt în 5 cutii. Tabelul de mai jos cont, ine pret, ul ec rei cutii ³i num rul de bomboane aate în
aceasta. Nu exist dou cutii din aceea³i categorie.
Cutia 1 2 3 4 5
Pret, ul 5 8 3 6 10
Num rul de bomboanedin cutie 10 8 15 18 40
Vânz torul spune c este dispus s deschid doar o cutie, pentru a completa cu bomboane din ea pân la suma de
20 lei.
Care este cutia pe care o alege tat l lui Cristian pentru a  deschis ?
(a) 2 (b) 1 (c) 3 (d) 5
5

Subiect · pagina 6

16. Sa presupunem ca dorim sa înmulμim doua numere întregi, x ³i y, formate din n cifre. Presupunem ca x si y
sunt pozitive (de exemplu x = 61438521 ³i y = 94736407). Spargem acum x în jumataμile xs ³i xd (xs = 6143,
xd = 8521). Spargem apoi y în doua jumataμi ys ³i yd (ys = 9473 ³i yd = 6407). Vom avea x = xs10n/2 + xd
³i y = ys10n/2 + yd ³i xy = xsys10n + xsyd10n/2 + xdys10n/2 + xdyd (x = xs104 + xd ³i y = ys104 + yd ³i xy =
xsys108 + xsyd104 + xdys104 + xdyd). xy se obt, ine în acest fel cu 4 înmulμiri de numere formate din n/2 cifre.
Înmult, irea cu 10 se face prin adaugarea unui 0 la dreapta num rului. Nu este considerat operat, ie de inmult, ire. Cum
putem efectua înmult, irea xy cu 3 înmulμiri de numere formate din n/2 cifre?
(a) xy = xs(ys10n/2 + yd)10n/2 + xdys10n/2 + xdyd
(b) xy = xsys10n + xsyd10n/2 + xd(ys10n/2 + yd).
(c) xy = ys(xs10n/2 + xd)10n/2 + xsyd10n/2 + xdyd
(d) xy = xsys10n + xdyd + [(xs − xd)(yd − ys) + xsys + xdyd]10n/2
17. Fie G un graf neorientat cu n noduri s, i m muchii. Câte muchii cont, ine complementul lui G? Graful G' este
complementul unui graf G dac oricare dou noduri adiacente în G nu sunt adiacente în G' ³i invers.
(a) (n − 1)2 − m (b) n2 − m/2 (c) n ∗ (n − 1)/2 − m (d) n!/m!
18. Fie un arbore binar oarecare cu N niveluri în care r d cina se consider a  pe nivelul 1. Care din urm toarele
armat, ii este adevarat ?
(a) Arborele poate avea maxim 512 noduri pe al 10-lea nivel
(b) Numarul maxim de frunze cand N = 10 este 1024
(c) Arborele poate avea maxim 1024 noduri când N = 10
(d) Dac arborele este strict (are doar noduri de grad 0 sau 2), atunci num rul de frunze este cu 1 mai mic
decat numarul de noduri de grad 2
19. Se dores, te utilizarea unei structuri de date de tip graf pentru reprezentarea h rt, ii de teren într-un joc 3D de tip
RTS (Real Time Strategy), de ex. Warcraft I, II. Harta de teren este descris de o ret, ea de triunghiuri (ca o plas ).
Fiecare nod din graf reprezint un triunghi din aceast ret, ea. Între dou noduri din graf exist o muchie dac cele
dou noduri corespund unor triunghiuri adiacente (au o latur comun ). Graful este construit în timpul execut, iei
jocului (`on-the-y') pe masur ce juc torul exploreaz mediul virtual s, i interact, ioneaz cu acesta. Ce structur de
date at, i folosi pentru reprezentarea grafului?
(a) Lista de adiacent, deoarece permite actualizarea mai rapid grafului (ad ugarea/s, tergerea de noduri/mu-
chii)
(b) Lista de adiacent, deoarece ecare nod din graf va avea foarte multe muchii
(c) Matrice de adiacent, deoarece ecare nod din graf va avea foarte multe muchii
(d) Matrice de adiacent, deoarece permite actualizarea mai rapid a grafului (ad ugarea/s, tergerea de noduri-
/muchii)
20. În lt, imea unui arbore se denes, te ca ind num rul de muchii din cea mai lung cale din arbore. Funct, ia de mai
jos descris în pseudocod calculeaz s, i returneaz în lt, imea unui arbore binar pentru care se cunoas, te r d cina
acestuia notat cu rad. Subarborelui stâng al rad cinii se noteaz u_stâng(rad) iar subarborele drept se noteaz
u_drept(rad). Un subarbore vid are r d cina nul s, i în lt, imea 0.
6

Subiect · pagina 7

funct, ia f(rad)
dac rad = 0 atunci
returneaz -1;
dac f iu_stang(rad) = 0 atunci
dac f iu_drept(rad) = 0 atunci
returneaz 0;
altfel
returneaz B1;
altfel
h1=f(f iu_stang(rad));
dac f iu_drept(rad) = 0 atunci
returneaz h1 + 1;
altfel
h2=f(u_drept(rad));
returneaz B2;
Expresiile corecte pentru secventele B1 s, i B2 sunt:
(a) B1 : 1 + f (f iu_drept(rad)), B2 : 1 + max(h1, h2)
(b) B1 : f (f iu_drept(rad)), B2 : 1 + max(h1, h2)
(c) B1 : f (f iu_drept(rad)), B2 : max(h1, h2)
(d) B1 : 1 + f (f iu_drept(rad)), B2 : max(h1, h2)
21. Dac un graf complet neorientat are 15 noduri, care este num rul minim de muchii ce trebuie eliminate pentru a
obt, ine un arbore binar cu exact 3 niveluri în afar de nivelul r d cin (se consider r d cina pe nivelul 0).
(a) 91 (b) 105 (c) 13 (d) 99
22. Ce tip res, te urm toarea funct, ie pentru n=25?
void fun ( int n )
{
i f ( n != 0 )
{
cout<<n%2; // p r i n t f ("%d " , n%2);
fun ( n / 2 ) ;
}
}
(a) 11001 (b) 10011 (c) 11111 (d) 10110
23. Se consider o stiv de capacitate n implementat static cu un vector de n elemente. Operat, iile de inserare s, i stergere
se realizeaz utilizând indexul VÂRF (indic pozit, ia ultimei valorii inserate în stiv ). Dac stiva este goal , valoarea
se va insera pe pozitia 0 (indexul VÂRF=0). Condit, iile necesare pentru a detecta stiva plin s, i stiva goal sunt:
(a) Plin : V ARF = n, Goal : V ARF = 0
(b) Plin : V ARF = n, Goal : V ARF = −1
(c) Plin : V ARF = n − 1, Goal : V ARF = −1
(d) Plin : V ARF = n − 1, Goal : V ARF = 0
7

Subiect · pagina 8

24. Fie urm toarea matrice cu 5 linii s, i 5 coloane cu elementul de pe prima linie s, i prima coloan aat pe pozit, ia 0, 0:
1 1 1 0 0
1 0 0 1 0
1 0 0 0 1
1 1 1 0 0
0 1 1 0 0
Ce va as, a funct, ia urm toare dac se apeleaz functie(2, 2)?
void f u n c t i e ( int x , int y )
{
cou t << "x = " << x << " y = " << y << e n d l ;
i f ( m a t r i c e [ x ] [ y ] != 1 && x > 0 && y > 0 )
f u n c t i e ( x − 1 , y − 1 ) ;
}
(a)
x = 2 y = 2
x = 1 y = 1
x = 0 y = 0
(b)
x = 1 y = 1
x = 0 y = 0
(c)
x = 2 y = 2
x = 1 y = 1
(d)
x = 2 y = 2
25. Antrenorul de karate de la clubul K'Kids scrie un program cu ajutorul c ruia s p streze informat, iile necesare despre
ecare copil înscris în club. El foloses, te un tablou de N elemente în care stocheaz informat, ii despre numele s, i vârsta
ec rui copil, astfel încat s -i e us, or s -i ordoneze pe copii atât alfabetic cât t, i dup vârst . Fiecare element din
tablou este reprezentat printr-o structur cu trei câmpuri: nume, varsta, idxN ext.
Informat, iile despre copii sunt stocate în tablou în ordine alfabetic . Câmpul idxN ext este folosit pentru a indica
ordinea în care trebuie parcurse elementele tabloului pentru a-i obt, ine pe copii în ordinea crescatoare a vârstei. Dac
mai mult, i copii au aceeas, i vârst , aces, tia sunt ordonat, i s, i dupa nume. Pentru a indica ultimul element din ordonarea
dup vârst se foloses, te valoarea −1 pentru campul idxN ext. Indexul în tabel al copilului cu vârsta cea mai mic este
stocat în variabila celM aiM ic. Care din urmatoarele variante de pseudocod corespund unei funct, ii care îl poate ajuta
pe antrenor s as, eze copiii în ordinea descrescatoare a vârstei? Funct, ia primeste ca parametri tabloul de elemente
s, i un index în tablou. La apelul funct, iei în programul principal, parametrul idx va lua valoarea celM aiM ic.
(a)
funct, ia f(V , N , idx)
pentru crt ← N − 1 la 0 execut
print(nume(V [crt]), varsta(V [crt]))
(b)
funct, ia f(V , idx)
dac idx 6 = −1 atunci
f(V , idxN ext(V [idx]))
print(nume(V [idx]), varsta(V [idx]))
(c)
funct, ia f(V , idx)
crt ← idx
cât timp crt 6 = −1 execut
print(nume(V [crt]), varsta(V [crt]))
crt ← idxN ext(V [crt])
(d)
funct, ia f(V , idx)
dac idx 6 = −1 atunci
print(nume(V [idx]), varsta(V [idx]))
f(V , idxN ext(V [idx]))
8
Deschide documentul original
Barem · 4 pagini

Barem · pagina 1

R spunsurile corecte cu explicat, ii
1. a
În C/C++ orice valoare nenul este asimilat cu valoarea logic ADEV€RAT (TRUE) care are ca valoare numeric
valoarea 1 s, i orice valoare nul este asimilat cu valoarea logic FALS (FALSE) care are ca valoare numeric valoarea 0.
2. c
Pentru primul pas al instruct, iunii for, variabila i va avea valoarea 10, deci cele trei instruct, iuni vor avea urm torul efect:
ˆ s va lua valoarea 10
ˆ se va as, a valoarea 10, dup care i va  decrementat, deci va lua valoarea 9
ˆ s va  egal cu 10 - 9, deci va avea valoarea 1
Aces, ti trei pas, i vor  reluat, i pentru valorile lui i: 8 6 4 2. La ecare trecere prin for, variabila s va  incrementat .
3. c
Pentru a rezolva aceast problem , trebuie vericat pseudocodul pentru toate variantele de r spuns.
4. c
Având în vedere c variabila k este static , la revenirea din ecare apelul se va as, a valoarea acesteia care este 0 (zero).
5. a
Instruct, iunea switch veric valoarea lui x s, i face saltul la instruct, iunile cu eticheta respectiv . Dup execut, ia instruct, iunilor
corespunz toare etichetei la care s-a f cut saltul, execut, ia programului se continu cu instruct, iunile imediat urm toare
(dac nu exist break s, i iese din switch la întâlnirea instruct, iunii break.
6. b
#include <i o s t r e a m >
#include <c s t r i n g >
using namespace s t d ;
char x [ ] = { 'A ' , 'N ' , 'A ' , 'L ' , ' I ' , 'Z ' , 'A ' , 'Q ' , 'R ' , 'E ' , 'Z ' , 'U ' , 'L ' , 'T ' , 'A ' , 'T ' , 'Q ' } ;
int n ;
void c r i p t a r e ( int p )
{
for ( int i =0; i <n ; i ++)
x [ i ] = ( ( 'Z '−x [ i ])%p+ ' a ' ) ;
}
void d e c r i p t a r e ( int p )
{
for ( int i =0; i <n ; i ++)
x [ i ] = ( ( ' z '−x [ i ])+ 'A ' ) ;
}
void a f i s ( )
{
for ( int i =0; i <17; i ++)
cout<<x [ i ] ;
cout<<e n d l ;
}
int main ( )
{
n=s t r l e n ( x ) ;
9

Barem · pagina 2

a f i s ( ) ;
c r i p t a r e ( 2 6 ) ;
a f i s ( ) ;
d e c r i p t a r e ( 2 6 ) ;
a f i s ( ) ;
return 0 ;
}
7. b
Prin parcurgerea codului se identic urm toarele aspecte: vectorul este parcurs începând cu o anumit pozit, ie pân la
ultimul element (inclusiv). De la aceast pozit, ie pân la nalul vectorului se mut elementele de pe pozitia i+1 pe pozit, ia
i. La nal, num rul de elemente ale vectorului se decrementeaz . Toate aceste operat, ii elimin din vector elementul de
pe pozit, ia de start a instruct, iunii f or.
8. b
S, irul de caractere este procesat de la nal la început în grupuri de trei caractere. Caracterele din ecare grup sunt puse
într-un s, ir temporar în ordine invers , iar s, irul temporar este as, at doar dac este înaintea s, irului inf din punct de vedere
lexicograc. Ultima grupare de trei caractere ar  fost format doar din caracterul A, dar aceasta nu este procesat
pentru c i ajunge 0 s, i se iese din bucla while.
9. c
Raspuns c) Matricea A Orice element A[l][m] va  interschimbat de dou ori, odata pentru i = l si j = m si apoi pentru
i = m si j = l. Swap de dou ori înseamn ca matricea nu se schimb .
10. c
Algoritmul de c utare a existent, ei a cel putin unei perechi de numere din tabloul v a c ror diferent, a este d, utilizeaza
dou variabile index init, ializate cu 0 respectiv 1. Aceste variabile vor  incrementate funct, ie de valoarea de adev r a
expresiei E. Dac diferent, a dintre elementele indicate este strict mai mic decât d este incrementat indexul j altfel indexul
i (daca nu cumva diferent, a este d). A nu se uita faptul elementele tabloului sunt în ordine strict cresc toare.
11. c
Algoritmul de c utare utilizeaz dou variabile de tip index init, ializate cu 0 s, i n-1 (elementele de cap t ale tabloului).
Sunt comparate elementele de index i s, i j s, i corespunz tor se incrementeaza i sau j în funct, ie de valoarea de adev r a
expresiei (v[i] <= v[j]. Algoritmul se opreste atunci când i == j. Elementul maxim este cel de pe pozit, ia i (sau j).
12. b
Deoarece, o dat ce melcul a ies, it din fântân , nu mai poate s cad înapoi, se poate considera c fântâna are (N − Y )
metri, iar melcul urc zilnic (X − Y ) metri.
13. b
Pseudocodul calculeaz factorialul num rului x. Acest lucru se poate observa calculând f (2) s, i f (3). Deoarece 6! = 720,
valoarea 719 se poate obt, ine prin instruct, iunea f (6) − 1.
14. b
1. Secvenμele sunt asezate în ordinea cresc toare a dimensiunilor lor.
2. Se aleg pentru interclasare primele dou secvenμe. Secvenμa rezultat inlocuie³te cele dou secvenμe interclasate.
3. Se repet pa³ii 1 si 2 pân se obμine o singura secvenμ .
15. b
Tat l lui Cristian a³eaz cutiile în ordinea 3,5,4,1,2 (15/3>40/10>18/6>10/5>8/8). Alege cutiile 3,5,4 ³i cere desfacerea
cutiei 1.
Observat, ie. Nu cred c trebuie s explic metoda greedy. Cei care cunosc metoda, vor rezolva problema mai rapid. Ceilalt, i
vor încerca toate variantele posibile.
10

Barem · pagina 3

16. d
((ys10n/2 + yd) ³i ((xs10n/2 + xd) sunt numere formate din n cifre. În varianta (d), (xs − xd) ³i (yd − ys) sunt numere
formate din n/2 cifre. Înmulμirile xsys ³i xdyd pot  efectuate o singur dat .
17. c
Complementul unui graf G cu n noduri s, i m muchii: din graful complet (care cont, ine acelas, i noduri ca G), s, i care
are n ∗ (n − 1)/2 muchii, se elimin cele m muchii din G. Prim urmare, num rul de muchii din complementul lui
G = n ∗ (n − 1)/2 − m.
18. a
(a) corect, nr max de noduri pe nivelul level =2level−1; (b) gres, it, nr max de frunze = 210−1 = 512; (c) gres, it, nr max
noduri din arbore = 2level − 1 = 1023; (d) gres, it, n0 = n2 + 1 pt un arbore strict
19. a
Nodurile nu vor avea multe muchii - acestea se denesc doar între un triunghi s, i triunghiurile vecine din ret, ea. Lista de
adiacent, este mai potrivit , deoarece este mai ecient pentru stocarea grafurilor rare s, i se evit re-alocarea matricei în
cazul ad ug rii/s, tergerii de noduri/muchii (graful este construit 'on-the'y', pe masur ce se exploreaz scena).
20. a
Raspuns a) B1 : (1 + height(n->right)), B2 : (1 + max(h1,h2))
typedef int Tip_cheie ;
struct Nod
{
Tip_cheie c h e i e ; // c h e i a e s t e c h i a r v a l o a r e a
Nod * s t g , * d r t ;
} ;
int Height ( Nod *n )
{
int h1 , h2 ;
i f ( n == NULL) return −1;
i f ( n−>s t g == NULL)
i f ( n−>d r t == NULL) return 0 ;
e l s e return ( 1 + Height ( n−>d r t ) ) ; // a i c i e s t e B1
e l s e {
h1 = Height ( n−>s t g ) ;
i f ( n−>d r t == NULL) return ( 1 + h1 ) ;
e l s e
{
h2 = Height ( n−>d r t ) ;
i f ( h1>=h2 ) // a i c i e s t e B2 d i n pseudocod
return ( 1 + h1 ) ;
e l s e return (1+ h2 ) ;
}
}
}
void I n s e r t N ( Nod *&r , Tip_cheie k ) // p e n t r u c r e a r e BST
{
i f ( r==0) r=MakeNod ( k ) ;
e l s e
{
Nod *p , *p1 ; p=r ;
while ( p !=0)
{
p1=p ;
11

Barem · pagina 4

i f ( p−>c h e i e > k ) p=p−>s t g ;
e l s e
i f ( p−>c h e i e < k ) p=p−>d r t ;
e l s e // n o d u l e x i s t a
{ p r i n t f ( " nodul e x i s t a \n" ) ; return ; }
} // s e i e s e cu p=0 s i p1 i n d i c a n o d u l dupa c a r e s e i n s e r e a z a
i f ( k < p1−>c h e i e ) p1−>s t g=MakeNod ( k ) ;
e l s e p1−>d r t=MakeNod ( k ) ;
}
}
21. a
n(n-1)/2 muchii in total in graf => 15*14/2=105 muchii arbore binar cu 3 niveluri=> 14 muchii 105-14=91
22. b
Se printeaz reprezentarea binar in ordine inversa 10011
23. a
Plin : VÂRF = = n-1, Goal : VÂRF = = -1
Pentru push: stiva[++varf]=val Pentru pop: return stiva[- -varf]
24. a
Funct, ia dat este o funct, ie recursiv care se va opri când se va ajunge pe un element al matricii cu valoarea 1 sau când
x sau y va lua o valoare mai mic sau egal cu 0. Funct, ia este apelat cu valorile 2, 2. Elementul din matrice de pe
aceast pozit, ie are valoarea 0. Se va as, a x = 2, y = 2 s, i se va apela funct, ia recursiv cu valorile x - 1, y - 1, respectiv
1, 1. Elementul de pe aceast pozit, ie are tot valoarea 0, deci se va asa x = 1, y = 1 s, i se va apela funct, ia recursiv cu
valorile x - 1, y - 1, respectiv 0, 0. Acest element are valoarea 1, deci se va as, a x = 0, y = 0, dar nu se va mai apela
funct, ia din nou, deoarece oricare dintre cele trei condit, ii din if va avea valoarea fals.
25. b
Pentru as, area în ordinea descrescatoare a vârstei, lista liniar simplu înlant, uit trebuie parcurs în ordinea de la ultimul
la primul element. (a) gres, it - parcurge tabloul în ordine invers alfabetic; (b) corect - parcurge recursiv lista - as, area
se face la revenirea din recursie, deci în ordine invers a elementelor; (c) gres, it - parcurge lista de la primul la ultimul
element, deci în ordinea crescatoare a vârstei; (d) gres, it - parcurge lista recursiv, cu as, area înainte de intrarea în recursie,
deci de la primul la ultimul element.
12
Deschide documentul original

Răspunsuri directe

Ce trebuie să știi despre acest subiect?

Ce document de admitere este acesta?

Pagina prezintă model de pregătire din 2021 pentru Informatică, la Facultatea de Automatică și Calculatoare. Documentul este etichetat după instituție, facultate, program și tipul probei folosind inventarul public verificat. Consultă metodologia actuală a instituției pentru condițiile examenului viitor.

Există și barem sau răspunsuri pentru acest subiect?

Da. Pagina include baremul sau răspunsurile publice asociate acestui subiect, afișate separat ori în același document atunci când sursa le publică împreună. Verifică fiecare rezolvare după ce ai terminat varianta și urmărește exact criteriile de punctare indicate de instituție.

Cum folosesc acest subiect în pregătirea pentru admitere?

Rezolvă documentul fără ajutor și respectă timpul prevăzut de metodologia examenului. Corectează cu baremul disponibil, marchează capitolele unde ai pierdut puncte și repetă exerciții similare. Compară apoi cu alte probe din aceeași facultate și confirmă programa curentă pe site-ul oficial al instituției.