Model-3 Test Info Enunturi
Model-3 Test Info Enunturi
Model-3 Test Info Enunturi
(a) comparare egalitate (==) (b) asignare (=) (c) ambii operatori (d) nici unul
2. Care dintre relat, iile de mai jos indic apartenent, a variabilei x întregi la intervalul (−10, −2] ∩ [−7, 11].
(a) !(((x <= −10)&&(x > 11))||((x < −7)&&(x > −2)))
(b) !(((x <= −10)||(x > 11))&&((x < −7)||(x > −2)))
(c) !(((x <= −10)&&(x > 11))&&((x < −7)&&(x > −2)))
(d) !(((x <= −10)||(x > 11))||((x < −7)||(x > −2)))
for ( i = 0 ; i < 5 ; i = i + 2)
{
for ( j = 5 ; j > 3 ; j = i − 2)
{
s = s + 1;
}
}
c o u t << " s = " << s ;
(a) s = 1
(b) s = 2
(c) s = 3
(d) s = 4
5. Ce se as, eaz la rularea urm toarei secvent, e de cod (indexul primului element din vector este 0, astfel x[0] are valoarea
'a'):
1
{
int x [ ] = { 'a ' , ' b' , ' c', ' j '}, i ;
(a) AAD?
(b) AAC?
(c) ABCD?
(d) BCD?
6. Într-un magazin de produse alimentare, pret, ul produselor scade cu cât acestea se apropie de data de expirare, dup
urm torul algoritm: începând cu 5 zile înaintea datei expir rii, pret, ul scade cu câte 10 % pe zi fat de pret, ul init, ial,
ajungând în ziua expir rii s e redus cu 50%. Algoritmul de stabilire a pret, urilor se ruleaz în ecare dimineat,
înainte de deschiderea magazinului.
De exemplu, dac un produs cost 100 de lei s, i expir pe 20 decembrie 2019, pret, ul se va reduce pe 16 decembrie la
90 de lei s, i va ajunge pe 20 decembrie la 50 de lei.
Care este varianta corect a subrutinei calculPret pentru realizarea acestui algoritm? Se consider deja scris s, i
funct, ional o subrutin care calculeaz câte zile mai sunt pân la expirarea produsului.
(a)
void calculPret ()
{
if ( zilePanaLaExpirare < 5)
pretDeAfisat = p r e t I n i t i a l − p r e t I n i t i a l * ((5 − zilePanaLaExpirare ) / 1 0 . 0 ) ;
else
2
pretDeAfisat = p r e t I n i t i a l ;
}
(b)
void calculPret ()
{
if ( zilePanaLaExpirare < 5)
pretDeAfisat = p r e t I n i t i a l * ( (5 − zilePanaLaExpirare ) / 1 0 . 0 ) ;
else
pretDeAfisat = p r e t I n i t i a l ;
}
(c)
void calculPret ()
{
if ( zilePanaLaExpirare < 5)
pretDeAfisat = p r e t I n i t i a l − (5 − zilePanaLaExpirare ) / 1 0 . 0 ;
else
pretDeAfisat = p r e t I n i t i a l ;
}
(d)
void calculPret ()
{
if ( zilePanaLaExpirare < 5)
pretDeAfisat = p r e t I n i t i a l ;
else
pretDeAfisat = p r e t I n i t i a l − (5 − zilePanaLaExpirare ) / 1 0 . 0 ;
}
7. Care din urm toarele declarat, ii ale unui tablou bidimensional sunt corecte:
char m1 [ 2 ] [ 3 ] = { 'a ' , 'b' , 'c' , 'd' , 'e' , ' f ' };
char m2 [ ] [ ] = { 'a ' , 'b' , 'c' , 'd' , 'e' , ' f ' };
char m3 [ ] [ 2 ] = { 'a ' , 'b ' , 'c ' , 'd ' , 'e ' , ' f ' };
char m4 [ 2 ] [ ] = { 'a ' , 'b ' , 'c ' , 'd ' , 'e ' , ' f ' };
(a) Doar m1
(b) m3 s, i m1
(c) Toate
(d) m1, m2 s, i m4
8. Fie matricea m, care are elementul de pe prima linie s, i prima coloan cu indecs, ii 0, 0:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
Cum va ar ta matricea m dup rularea codul urm tor:
for ( i = 0 ; i < 5 ; i ++)
for ( j = i + 1 ; j < 5 ; j ++)
{
3
aux = mat [ i ] [ j ] ;
mat [ i ] [ j ] = mat [ j ] [ i ] ;
mat [ j ] [ i ] = aux ;
}
1 2 3 4 5 1 1 1 1 1 5 5 5 5 5 5 5 5 5 5
1 2 3 4 5 2 2 2 2 2 4 4 4 4 4 4 4 4 4 4
(a) 1 2 3 4 5 (b) 3 3 3 3 3 (c) 3 3 3 3 3 (d) 3 3 3 3 3
1 2 3 4 5 4 4 4 4 4 2 2 2 2 2 2 2 2 2 2
1 2 3 4 5 5 5 5 5 5 1 1 1 1 1 1 1 1 1 1
9. Fie un vector cu 100 de elemente de tipul char. Fiecare element reprezint o liter din alfabetul latin (de la A la Z).
Pentru ecare element de pe pozit, ia i din vector se calculeaz o valoare Si care reprezint câte dintre literele de pe
pozit, iile de la 0 la i − 1 sunt înainte în alfabet.
De exemplu, pentru vectorul S, C, A, U, N , valoarea S4 este 2 deoarece doar literele C s, i A sunt înaintea literei N în
alfabet.
Care dintre funct, iile de mai jos returneaz corect suma tuturor valorilor Si , cu i de la 0 la 99?
(a) (b)
int f ( int v [ 1 0 0 ] ) int f ( int v [ 1 0 0 ] )
{ {
int sum = 0 ; int sum = 0 ;
int i, j; int i, j;
for ( i = 1 ; i < 100; i = i + 1) for ( i = 0 ; i < 100; i = i + 1)
for ( j = 0 ; j < i ; j = j + 1 ) for ( j = 0 ; j < i ; j = j + 1 )
i f ( v [ j ] − 'A '>v [ i ] − 'A ' ) i f ( v [ j ]<v [ i ] )
sum = sum + 1 ; sum = sum + 1 ;
return sum ; return sum ;
} }
(c) (d)
int f ( int v [ 1 0 0 ] ) int f ( int v [ 1 0 0 ] )
{ {
int sum = 0 ; int sum = 0 ;
int i, j; int i, j;
for ( i = 1 ; i < 100; i = i + 1) for ( i = 1 ; i < 100; i = i + 1)
for ( j = i +1; j < 1 0 0 ; j = j + 1 ) for ( j = 0 ; j < i ; j = j + 1 )
i f ( v [ j ] − 'A '<v [ i ] − 'A ' ) i f ( v [ j ]<v [ i ] )
sum = sum + 1 ; sum = sum + v [ i ] − v [ j ] ;
return sum ; return sum ;
} }
10. Se consider o matrice M cu n linii ³i m coloane care se completeaz pe linii cu termenii s, irului lui Fibonacci. Pentru
o astfel de matrice cu m=n=3, care va valoarea variabilei suma din secvent, a de cod de mai jos?
int suma=0;
for ( i = 0 ; i <m; i ++)
{
suma += M[ 0 ] [ i ] ;
suma += M[ n − 1 ] [ i ] ;
}
for ( i = 1 ; i <n − 1 ; i ++)
{
suma += M[ i ] [ 0 ] ;
suma += M[ i ] [m − 1 ] ;
}
4
(a) 88
(b) 83
(c) 34
(d) 39
11. Fie urm toarea funct, ie ce are ca parametri de intrare un vector de numere întregi s, i un num r natural nenul:
functia f(v, n)
,
h←n
sum ← 0
cât timp h > 0 execut
pentru i ← 0 la n − 1 execut
sum ← sum + v[i]
h ← h/2
returneaz sum
Dac se apeleaz funct, ia cu un vector v de 1024 de elemente, toate având valoarea 1, care va valoarea returnat de
aceasta?
(a) 1024 (b) 1048576 (c) 10240 (d) 11264
12. Care este complexitatea din punctul de vedere al duratei de execut, ie (complexitatea timp) a funct, iei de mai jos?
int f ( int n ) {
int i , j , x = 0;
for ( i = 1 ; i <= n ; i = i + 1 )
{
for ( j = 1; j < n ; j = j + i )
{
x = x + 1;
}
}
return n;
}
(a) O(n2 ) (b) O(n · log 2 n) (c) O(n · log n) (d) O(2 · n)
13. Considerând c toate declarat, iile s, i init, ializ rile sunt corecte, care implementare a sort rii cresc toare a unui vector
a de dimensiune n nu este corect ?
5
V1 V2
do { m = n;
k = 0; while (m>0)
for ( i = 0 ; i < n − 1 ; i ++) {
{ for ( i = 0 ; i < m − 1 ; i ++)
if (a [ i ] > a [ i + 1]) if (a [ i ] > a [ i + 1])
{ {
k++; t = a [ i ] ; t = a[ i ];
a[ i ] = a[ i + 1]; a[ i ] = a[ i + 1];
a [ i + 1] = t ; a [ i + 1] = t ;
} }
} m−−;
} while ( k ) ; }
V3
for ( j = 0 ; j < n − 1 ; j ++)
for ( i = 0 ; i < n ; i ++)
if (a [ i ] > a [ i + 1])
{
t = a[ i ];
a [ i ] = a [ i + 1 ] ; a [ i + 1] = t ;
}
14. Secvent, a de pseudocod de mai jos ar trebui s implementeze algoritmul lui Euclid. A si B sunt numere naturale.
functia Euclid(A, B)
,
15. Un instructor de schi are 5 elevi cu în lt, imele de 1.80 m, 1.70 m, 1.64 m, 1.85 m ³i 1.89 m. Schiurile de care dispune
au lungimele urm toare: 1.70 m, 1.75 m, 1.80 m, 1.80 m ³i 1.90 m. Intructorul vrea s distribuie schiurile astfel încât
suma diferent, elor absolute (în modul) dintre în lt, imea ec rui elev ³i lungimea schiurilor atribuite s e minim .
Dup ce a analizat cu atent, ie problema, acesta a început distribut, ia schiurilor. Elevul cu în lµimea de 1.80 m a primit
schiurile de 1.80 m. Ce schiuri va primi elevul cu înalµimea de 1.70 m?
(a) 1.70 m (b) 1.75 m (c) 1.80 m (d) 1.90 m
16. Câte posibilit t, i exist pentru ca, prin permutarea literelor P ROGRAM , litera O s e pe penultima pozit, ie?
(a) 240 (b) 120 (c) 720 (d) 360
17. Fie G un graf neorientat cu n noduri. Dac G este complet, câte lant, uri hamiltoniene cont, ine?
(a) n2 (b) n! (c) n ∗ (n − 1)/2 (d) n
6
18. Fie urm torul graf neorientat.
Pentru câte dintre perechile de noduri (i, j), cu i < j , lant, ul minim de la nodul i la nodul j are lungimea 3?
(a) 5 (b) 4 (c) 0 (d) 6
19. Fie G un graf neorientat cu 10 noduri. Daca G este format din 3 componente conexe, care este num rul maxim de
muchii pe care îl poate cont, ine G?
(a) 28 (b) 12 (c) 32 (d) 40
20. Pe o plac de dezvoltare hardware trebuie s se fac n g uri. Se consider graful G = (V, E), unde V este mult, imea
celor n g uri ³i E este multimea tuturor perechilor de g uri. Se cunosc distant, ele dintre g uri. Care este traseul cel
mai potrivit pentru a minimiza suma tuturor deplas rilor burghiului de g urit?
(a) circuit eulerian (b) circuit hamiltonian de lungime minim (c) circuit elementar (d) problema nu are
solut, ie
21. Se consider un vector V ce cont, ine nodurile unui arbore binar cu urm toarele proprietati: V[1] cont, ine r d cina,
V[0] este neutilizat, vectorul nu cont, ine pozit, ii libere iar valoarea r d cinii ec rui subarbore este mai mare decât
valorile tuturor descendent, ilor. Dac p rintele este pe pozit, ia i, i s i pot pe pozit, iile 2*i si 2*i+1. Într-un astfel
de arbore cu N noduri se insereaz valoarea a cu urm torul algoritm descris în pseudocod, p strând propriet t, ile
enunt, ate.
f iu, parinte si aux sunt indecsi in V N ← N + 1;
V [N ] ← a;
f iu ← N ;
parinte ← N/2;
cât timp parinte >= 1 execut
dac V [parinte] < V [f iu] atunci
aux ← V [parinte];
V [parinte] ← V [f iu];
V [f iu] ← aux;
E1;
parinte ← parinte/2;
altfel
E2;
7
22. Fie urm toarele declarat, ii:
Fie variabila C1 asociat unui cerc din planul x0y. Cercul este de raz 2 s, i centrul cercului este în punctul de
coordonate (-1, -1). Denit, ia variabile C1 este:
struct CERC C1 ;
Care dintre urm toarele secvent, e de instruct, iuni trebuie folosit pentru a înc rca corect valorile pentru raz s, i centrul
cercului în variabila C1?
(a) C1.raza = 2; C1.centru.x = -1; C1.centru.y = -1;
(b) CERC.raza = 2; CERC.PUNCT.x = -1; CERC.PUNCT.y = -1;
(c) C1.CERC.raza = 2; C1.PUNCT.x = -1; C1.PUNCT.y = -1;
(d) C1.raza = 2; C1.x = -1; C1.y = -1;
Cu ce expresie trebuie înlocuite punctele de suspensie astfel încât, în urma apelului F(x,99), funct, ia s returneze cel
mai mare divizor de cel mult dou cifre al num rului natural transmis prin parametrul x.
(a) x%d < 100 (b) x%d==1 (c) x%d==0 (d) x/10==0 && d<100
Care dintre urm toarele expresii este egal cu x!, pentru orice x num r natural pozitiv?
(a) f 1(x) (b) f 1(x) · f 2(x) (c) f 2(x) (d) x · f 2(x)
25. S, tiind c înainte de apel variabila a are valoarea 1 s, i variabila b valoarea 0, ce valoare vor avea variabilele a s, i b dup
apelul functie(102304,a,b) ?
8
void f u n c t i e ( unsigned long n, unsigned long &a , unsigned long &b )
{
if ( n<10)
i f ( n%10==0)
a=n ;
else
b=n ;
else {
f u n c t i e (n/10 , a , b ) ;
i f ( n%10==0)
a=a *10+n%10;
else
b=b *10+n%10;
}
}
(a) a = 0, b = 102304; (b) a = 100, b = 1234; (c) a = 1, b=1234; (d) a =1234, b=102304.