Sunteți pe pagina 1din 8

Admitere 2022

1. În pseudocodul următor x și y sunt numere naturale:


subprogram f(x, y)
dacă x = 0 atunci
scrie y
sfârșitdacă
dacă x mod 3 > 0 atunci
apelează f(x div 3, y+1)
sfârșitdacă
sfârșitsubprogram
Pentru câte valori ale lui x din mulțimea {2019, 1321698, 78320103} subprogramul nu afișează
nimic la apelare:
a) 0 b) 1 c) 2 d) 3
2. În secvența de mai jos n, s, i, j sunt numere naturale:
s = 0;
i = 1;
while (i<n)
{
j = 1;
while (j<n)
{
s += i + j;
j *=2;
}
i = j;
}
Care este complexitatea secvenței de cod de mai sus?
a) O(n) b) O (log2 n) c) O(n2) d) O(n log2n)
3. Care este numărul de cicluri elementare (ce nu conțin același nod de mai multe ori) de
lungime impară ale grafului complet cu 11 noduri?
a) 1024 b) 4085 c) 1013 d) 2059
4. Care este numărul de grafuri neorientate care se pot construi cu n noduri, n număr natural,
n>=4, știind că orice graf construit are două noduri izolate?

5. Se consideră funcția recursivă F de mai jos. Ce valoare va returna apelul F(36)?


int F(int n)
{
int m = 1;
int i;
for (i = 2; i < n; ++i)
{
if (n % i == 0)
{
break;
}
}
while (n % i == 0)
{
n /= i;
m *= i;
}
if (n == 1)
{
return m * (i - 1) / i;
}
return F(n) * F(m);
}
a) 10 b)36 c)12 d)13
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. 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
8. Ce se va afișa pe ecran în urma executării secvenței de mai jos?
char s[51]="incorigibil", *p;
p=strstr(s,"co");
strcpy(s, p);
cout<<p;
a) corigibil b) inrigibil c)incorgibil d)rigibil
9. Un graf k-partit este un graf ale cărui vârfuri pot fi partiționate în k mulțimi disjuncte ,U1, ... , Uk}
astfel încât să nu existe nicio muchie cu ambele extremități în aceeași mulțime Ui, i = 1…..k. Care este
numărul maxim de muchii pe care îl poate avea un graf 4-partit, având proprietatea ∣Ui ∣ ≤ i + 1, i =
1….4?
a) 15 b) 46 c) 71 d) 120
10. Într-o sală de examen, scaunele sunt etichetate cu o literă urmată de o cifră . Se consideră că
literele sunt ,a, b, c, d, e- și cifrele sunt ,0, 1, 2, . . . , 9-. Scaunele trebuie să aibă etichete diferite
între ele. Care este numărul minim de scaune care trebuie să fie în sală pentru a folosi toate
combinațiile posibile?
a) 50 b) 15 c) 100 d) 45
11. Care dintre următoarele expresii au valoarea adevărat dacă și numai dacă x este număr impar și
negativ? Notăm cu |x| valoarea absolută a lui x (modulul lui x).
a) (|x| MOD 2 = 1) ȘI (x < 0) b) NOT ((|x| MOD 2 = 0) ȘI (x ≥ 0))
c) (|x| MOD 2 = 0) SAU (x ≥ 0) d) (|x| MOD 2 ≠ 0) SAU (x < 0)

12. Subprogramul sir(s, n) are ca parametri de intrare un șir s cu n caractere (s*1+, s*2+, …, s*n+) și numărul
întreg n (1 ≤ n ≤ 10000).
Subprogram sir (s, n):
i←1
f←1
câttimp i ≤ n div 2 execută
dacă s[i] ≠ s[n - i + 1] atunci
f←0
sfârșitdacă
i←i+1
sfîrșitcâttimp
returnează f
sfârșitsubprogram
Precizați care dintre următoarele afirmații sunt adevărate:
a) Subprogramul returnează 1 dacă s are un număr par de caractere.
b) Subprogramul returnează 1 dacă s are un număr impar de caractere.
c) Subprogramul returnează 1 dacă s este un palindrom.
d) Subprogramul returnează 1 dacă s conține doar caractere distincte.
13. Se consideră programul de mai jos:
#include <iostream>
using namespace std;
int a[5][5]={{0,1,0,1},{1,0,0,0},{1,0,0,1},{1,1,0,0}};
int main()
{
int i, j, p, nr;
for(i=0; i<4; i++)
{
nr=0; p=1;
for(j=3; j>=0; j--)
{
nr=nr+p*a[i][j];
p=p*2;
}
cout<<nr<<" ";
}
}
Care sunt valorile afișate pe ecran după executarea programului de mai sus?
a) 1 0 1 0 b) 2 4 8 12 c) 5 9 17 33 d) 5 8 9 12
14. Intr-o urnă se află 4 bile de culoare albă și 3 bile de culoare neagră. Se extrag bilele pe rând și se reține
secvența de 7 culori obținută. Câte astfel de secvențe distincte sunt?
a) 210 b) 35 c) 70 d) 840
15. O matrice cu 8 linii, formată doar din 0 și 1, are următoarele trei proprietăi:
(i) prima linie conține un singur element cu valoarea 1,
(ii) linia j conține de două ori mai multe elemente nenule decât linia j −1, pentru orice j ∈ {2, 3, . .
. , 8}
(iii) ultima linie conține un singur element cu valoarea 0.
Care este numărul total de elemente cu valoarea 0 din matrice?
a) 777 b) 769 c) 528 d) nu există o astfel de matrice

16.Se consideră subalgoritmul calcul(a, n), care primește ca parametru un șir a cu n numere naturale
(a*1+, a*2+, …, a*n+) și numărul întreg n (1 ≤ n ≤ 10000).
Subalgoritm calcul(a, n):
dacă n = 0 atunci
returnează 0
altfel
returnează a[n] * (a[n] MOD 2) + calcul(a, n - 1)
SfDacă
SfSubalgoritm
Pentru ce valori a numărului n și a șirului a funcția calcul(a,n) va returna valoarea 10?
a) n = 4, a = (2, 4, 7, 5)
b) n = 6, a = (3, 1, 2, 5, 8, 1)
c) n = 6, a = (2, 4, 5, 3, 8, 5)
d) n = 7, a = (1, 1, 2, 1, 1, 1, 3)

17. Se consideră subalgoritmul afis(n), unde n este un număr natural (0 ≤ n ≤ 10000).


Subalgoritm afis(n):
Scrie n
Dacă n > 0 atunci
afis (n - 1)
Scrie n
SfDacă
SfSubalgoritm
Ce se va afișa la apelul afis(4)?
a) 432100123 b) 123401234 c) 1234004321 d) 432101234
18. Se consideră programul de mai jos.
#include <iostream>
using namespace std;
void f(int x, int &y)
{
x=x*2;
y=y+x*2;
cout<<x<<' '<<y<<' ';
}
int main()
{
int x, y;
x=3;y=5;
f(y, x);
cout<<x<<' '<<y;
return 0;
}
Valorile afișate pe ecran după executarea programului de mai sus sunt:
a)3 5 10 23 b)10 5 23 3 c)10 23 23 5 d) 10 23 5 23

19. Ce se va afișa în urma execuției programului de mai jos?

#include <iostream>
using namespace std;
int a[3][3]={1,2,3,4,5,6};
void f(int a[3][3], int &b, int &c)
{
for(int i=0; i<3; i++)
for(int j=0; j<3; j++)
if(j>i && !(i%2))
c*=a[i][j];
else
if(i<j)
b+=a[i][j];
}
int main()
{
int b=1, c=0;
f(a,c,b);
cout<<b<<' '<<c;
return 0;
}
a)1 0 b) 6 5 c) 5 6 d) 6 6
20.Fie A, B şi C 3 stive iniţial vide. Se consideră că, în oricare dintre cele 3 stive, o valoare poate fi adăugată
doar dacă este strict mai mică decât valoarea aflată în vârf sau dacă stiva este vidă. Printr-o mutare a unei
valori înțelegem scoatere ei dintr-o stivă și adăugarea ei în altă stivă. Dacă în stiva A sunt introduse pe rând
numerele 5, 4, 3, 2, 1 în această ordine, care este numărul minim de mutări de valori folosind cele 3 stive în
urma cărora stiva B conține toate elementele care inițial erau în stiva A.
a) 5! b) 25 c) 25- 1 d) 10
21.În câte dintre permutările elementelor mulțimii ,B, I, N, A, R-, literele A și B apar pe poziții consecutive,
indiferent de ordinea acestora (AB) sau (BA)?
a)120 b)48 c)36 d)24

22. Ce conținut va avea șirul t1 după executarea programului de mai jos?


#include <iostream>
#include <cstring>
using namespace std;
void f(char s1[21], char s2[21])
{
int i=0, l1=strlen(s1), l2=strlen(s2);
while(i<l1 && i<l2)
{ a)B2D4F b) b2d4f c)a2c4e d)1c3e5
if(s1[i]==s2[i] && s1[i]>='0' && s2[i]<='9')
s1[i]='a'+s1[i]-'0';
i++;
}
}
int main()
{
char t1[21]="12345", t2[21]="103056";
f(t1,t2);
cout<<t1;
return 0;
}
23. În declararea de mai jos, variabila c memorează pentru fiecare din cei 200 de candidați de la examenul de
Bacalaureat: numele elevului, denumirea probei E_d alese și nota obținută la această probă. Secvența de
program care afișează numele elevilor care au luat peste 9 la proba de informatică este:
struct candidat
{
char nume[30], probaE_d[30];
int nota;
};
candidat c[200];
a) for(i=0; i<200; i++) c) for(i=0; i<200; i++)
if(strcmp(probaE_d,"Informatica")==0) if(strcmp(probaE_d.c[i],"Informatica")==0)
if(nota>9) if(nota.c[i]>9)
cout<<nume; cout<<nume;

b) for(i=0; i<200; i++) d) for(i=0; i<200; i++)


if(strcmp(c[i].probaE_d,"Informatica")==0) if(strcmp(c[i].probaE_d,"Informatica"))
if(c[i].nota>9) if(c[i].nota>9)
cout<<c[i].nume; cout<<c[i].nume;
24.Fie programul:
#include <iostream>
using namespace std;
int f ( int n )
{
if ( n > 0 )
{
cout << --n << ' ' ;
return f (n-1)+1;
cout << n++ << ' ' ;
}
return 0 ;
}
int main ( )
{
int x = 5 ;
cout << f ( x ) ;
return 0 ;
}
Ce se va afișa pe ecran?
a) 5 3 1 5 b) 5 3 1 0 0 1 3 5 0 c) 4 2 0 0 2 4 d) 4 2 0 3
25. Un polițist trebuie să facă rondul de noapte în cartier. Acesta dorește să-și minimizeze efortul: nu vrea să
treacă de două ori pe aceeași stradă . Fiecare intersecție este formată dintr-un număr par de străzi. Care
este traseul cel mai potrivit?
a) circuit hamiltonian b) circuit elementar c) circuit eulerian d) problema nu are soluție

26. Fie G un graf neorientat. Care este numărul minim de noduri din care este format graful G astfel încât
acesta să conțină simultan:
 ˆ cel puțin un nod cu un vecin
 ˆ cel puțin un nod cu doi vecini
 ˆ cel puțin un nod cu trei vecini
 ˆ cel puțin un nod cu patru vecini
 ˆ cel puțin un nod cu cinci vecini
a) 6 b) 7 c) 8 d) 10
27.Ce se va afișa după execuția programului de mai jos?
#include <iostream>
using namespace std;
int f ( int &x, int y )
{
if ( x == y )
return 1 ;
else if ( x > y )
{
x=++x/y+++3;
return x+f ( x, y+1);
}
else
return 0 ;
}
int main ( )
{
int x=15, y=3, z ;
z = f ( x, y ) ;
cout<<x<<" "<<y<<" "<<z ;
return 0 ;
}
a) 15 3 1 b) 4 6 0 c) 4 3 12 d) eroare de sintaxă
28. Care dintre următoarele expresii calculează valoarea cifrei sutelor a variabilei întregi x?
a) x / 1000 % 100 b) x % 1000 / 100 c) x % 100 / 10 d) x % 100 % 10
29.Fie următoarele structuri:
struct candidat
{
char nume [20];
int nota;
};
struct examen
{
candidat c[20];
char sesiune [20];
} admitere 2021;
Presupunând ca în variabila admitere2021 candidații au fost sortați în ordinea descrescătoare a notelor, cum
se afișează numele candidatului cu nota cea mai mare?
a) cout<<admitere2021.c[0].nume; b) cout<<admitere2021[0].c.nume;
c) cout<<admitere2021.c.nume[0]; d) cout<<admitere2021.candidat[0].nume;
30.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
Admitere 2022 – Răspunsuri

1.d 2.b 3. c 4.c 5.c 6.d 7.a 8.d 9.c 10.a 11.a 12.c 13. d 14.b 15.a
16.b 17.d 18.c 19.d 20.c 21.b 22.b 23.b 24.d 25.c 26.a 27.c 28.b 29.a 30.d

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