Sunteți pe pagina 1din 7

Subiecte de antrenament pentru admitere

Fișa nr. 3
1. Numărul de parcurgeri și numărul de interschimbări de elemente în urma execuției
algoritmului Bubble Sort pentru ordonarea descrescătoare a vectorului, v=(7, 6, 3, 18, 23,
2), este:
a) 10 7 b) 5 6 c) 5 7 d) 8 6
2. Fie G un graf neorientat format din 5 componente conexe cu 2, 3, 4, 5 și, respectiv, 6
noduri. Dacă cele 5 componente conexe reprezintă subgrafuri complete, care este
diferența dintre numărul maxim de muchii care pot fi adăugate în graf astfel încât
numărul de component conexe să fie 1 și numărul minim de muchii care pot fi adăugate
în graf astfel încât numărul de componente conexe să fie 1?
a) 190 b) 151 c) 116 d) 194
3. Se consideră o matrice M cu 7 linii care conține doar elemente de 0 și X. Matricea se
completează astfel: prima linie conține un singur element X; linia i conține de două ori
mai multe elemente X decât linia i-1, pentru i ∈ {2, 3, 4, 5, 6, 7}; ultima linie contine un
singur element 0. Câte elemente de 0 sunt în matrice?
a) 328 b) 117 c) 455 d) 256
4. Care este complexitatea de timp a următoarei secvențe de program?
int i, j, k ;
for(i = 0; i < n; i++)
{
k = n;
for(j = 0; j < k; j++)
k=k/2;
}
a) O(n * log n) b) O(log n) c) O(n) d) O(n2)
5. Pentru secvența de instrucțiuni de mai jos, ce valoare va fi afișată pe ecran?
int i, s;
for(i=1, s=0; i<3 && i%2!=0; s+=i, i++);
cout<<s;
a)0 b) 1 c) 4 d) 014
6. Se generează prin metoda backtracking, submulțimi nevide ale mulțimii {1,2,3}- astfel:
{1},{1,2}, {1,2,3}, {1,3}, {2}, {2,3}, {3}. Folosim aceeași metodă pentru a genera
submulțimile nevide ale mulțimii {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}. Numărul de
submulțimi generate care conțin elementul 6 pe prima poziție este:
a)127 b)32 c)128 d)64

7. Se consideră un graf neorientat cu 7 vârfuri astfel încât între oricare două vârfuri distincte
există muchie. Câte lanţuri elementare distincte, care au lungimea 3, extremitatea iniţială
vârful 1 şi extremitatea finală vârful 7, există? Două lanțuri elementare sunt distincte dacă
diferă prin cel puțin o muchie.
a) 10 b) 42 c) 21 d) 20
8. Precizați ce se afișează la execuția programului definit mai jos:
#include <iostream>
using namespace std;
int sub (int a, int e)
{
int v[10000], n = 0, k = 1, i;
while (e)
{
v[n++] = e % 2;
e = e/2;
}
for (i = 0; i < n; i++)
{
if (v[i] == 1)
k = a * k;
a=a*a;
}
return k;
}
int main ()
{
int rez;
rez = sub (2, 12);
cout<<rez<<' ';
}
a)256 b)12 c)4096 d)24
9. Înlocuiți instrucțiunile A și B astfel încât funcția recursivă de mai jos să calculeze suma
tuturor cifrelor unui număr.
int sumaCifre(int n)
{
if (A)
return n;
else
return B;
}
a) A: n < 10 și B: n%10 + sumaCifre(n/10)
b) A: n == 0 și B: n/10 + sumaCifre(n%10)
c) A: n <= 9 și B: n/10 + sumaCifre(n%10)
d) A: n < 10 și B: sumaCifre(n%10)

10. Utilizând metoda backtracking se generează toate permutările mulțimii ,1, 2, 3, 4, 5, 6- în


ordine lexicografică. Primele 8 soluții generate sunt: 123456, 123465, 123546, 123564,
123645, 123654, 124356, 124365. Spunem că permutarea p a mulțimii (1, 2, 3, 4, 5, 6}
are numărul de ordine k dacă este a k-a permutare generată astfel. Permutarea 123465 are
numărul de ordine 2, iar permutarea 123645 are numărul de ordine 5. Care este numărul
de ordine al permutării 213645?
a)125 b)15 c)105 d)121
11. Fie funcția:
int f(int x)
{
if(x == 0)
return 0;
if(x % 2 == 0)
return f(x/2) + (x + 1) % 2;
else
return f(x/2) - x % 2;
}
Pentru câte numere naturale nenule mai mici strict decât 101 funcția returnează 0?
a)14 b) 15 c) 16 d) 17
12. Se consideră algoritmul f(nr), unde nr este un număr întreg (-104≤ nr ≤ 104).
int f(int nr)
{
if(nr<0)
return f(-nr);
if(nr==0 || nr==7)
return 1;
if(nr<10)
return 0;
return f(nr/10-2*(nr%10));
}
Pentru care dintre variantele de mai jos, algorimul returnează valoarea 1 pentru întregul
set de valori?
a)57 34 1023 b)308 -7 7098 c)43 54 65 d)2023 57 2022
13. Se dă un labirint sub forma unei matrice pătratice cu n linii și n coloane, indexate de la 1,
în care locațiile accesibile sunt notate cu 0 iar locațiile inaccesibile (zidurile labirintului)
cu 1. Coordonatele locațiilor la care se află recompensele sunt (3, 3), (1, 4) și (3, 1).
Dându-se harta labirintului de mai jos, să se determine lungimea minimă a unui drum
care pleacă din poziția (1, 1), trece obligatoriu prin locațiile la care se află recompensele
(nu contează în ce ordine) și apoi ajunge în poziția (n, n). Un pas din drum constă din
deplasarea dintr-un punct (i, j) într-unul din cele patru învecinate pe linie și coloană adică
într-unul din punctele (i − 1, j), (i, j − 1), (i + 1, j), (i, j + 1). Deplasarea se face doar prin
locațiile accesibile (notate cu 0).
0000
1011
0001
1000
a) 15 b) 11 c) 10 d) 12
14. Ce se va afișa pe ecran după executarea secvenței de program de mai jos:
void f(int n, int &m)
{
if(n!=0)
{
if(n%10>m)
{
m=n%10;
cout<<m<<' ';
}
f(n/10,m);
cout<<m<<' ';
}
}
int main ( )
{
int m=1,n=12321;
f(n,m);
return 0 ;
}
a) 1 2 3 2 1 b) 1 2 3 2 1 1 2 3 2 1 c) 2 3 3 3 3 3 3 d) 2 3 1 2 3 2 1
15. Se consideră o stivă şi o coadă iniţial vide. Se introduc pe rând în stivă numerele prime
mai mici decât 25, în ordine crescătoare. Se introduc pe rând aceleaşi numere, în aceeaşi
ordine, în coadă. Se repetă următoarea operaţie: se extrag simultan un element din stivă şi
un element din coadă, până când cele două elemente extrase simultan sunt egale sau stiva
devine vidă. Care este elementul din vârful stivei după executarea acestor operaţii?
a)13 b)11 c)7 d)stiva este vidă
16. Se cunosc următoarele informaţii despre matricea de adiacenţă a unui graf neorientat: are
10 linii, are exact 24 de valori nenule şi suma elementelor pe fiecare coloană este mai
mare sau egală cu 2. Care este valoarea maximă pe care o poate avea gradul unui nod
într-un astfel de graf?
a)6 b)nu există astfel de graf c)9 d)8
17. De câte ori va apărea pe ecran semnul # după apelul functie(4) ?
void functie(int n)
{
cout<<"#";
if(n!=0)
{
cout<<n<<" " ;
for(int j=0; j<n; j++)
cout<<j;
cout<<endl;
functie(n-1);
cout<<"#";
}
else
cout<<"#";
}
a) De 3 ori; b) De 14 ori; c) De 10 ori; d) De 12 ori.
18. Care dintre relațiile de mai jos indică apartenenț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)))

19. Fie funcția F definită mai jos.


int F(int m, int n)
{
if(m>0)
{
if(n==0)
return F(m-1, 1);
if(n>0)
return F(m-1, F(m, n-1));
}
return n+1;
}
Pentru care apel de mai jos funcția returnează valoarea 5?
a)F(2,3) b)F(1,2) c)F(2,1) d)F(3,2)
20. O casă are n * m camere (n, m ∈ N , n, m ≥ 2) și este reprezentată ca o matrice cu n linii
(numerotate de la 0 la n-1) și m coloane (numerotate de la 0 la m-1). Camera de la linia i
(0≤ i ≤ n −1) și coloana j (0 ≤ j ≤ m − 1) este identificată prin perechea de numere (i, j).
Toate camerele, cu excepția celor situate pe prima linie (i=0) și a celor situate pe prima
coloană (j=0) au câte un comutator. Acționarea comutatorului din camera (i, j) (unde 1 ≤ i
≤ n − 1,i ≤ j ≤ m − 1) conduce la următorul rezultat: în fiecare dintre camerele (i, j), (i-1,
j), (i, j-1), (i-1, j-1) (camera cu comutatorul, cea de deasupra, cea de la stânga și cea de
deasupra și la stânga), dacă lumina era aprinsă, ea se stinge, iar dacă era stinsă, se
aprinde. Matricea de mai jos reprezintă starea luminilor din fiecare cameră dintr-o casă cu
n=5 linii și m=4 coloane. Pozițiile (0, 1), (0, 2), (1, 1), (1, 3), (2, 2), (2, 3) conțin valoarea
1, reprezentând faptul că luminile sunt aprinse în camerele respective, iar celelalte poziții
conțin valoarea 0, reprezentând faptul că luminile sunt stinse.
0110
0101
0011
0000
0000
Comutatoarele din care camere trebuie acționate pentru a stinge luminile din toate
camerele?
a)(1, 2) și (2, 1) b)(2, 1) și (2, 3) c)(0, 1) și (1, 2) d)(2, 3) și (1, 2)
Soluții

a b c d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

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