Sunteți pe pagina 1din 6

Subiecte de antrenament pentru admitere

Fișa nr. 2

1. Fie x un tablou unidimensional ordonat ce conține n numere întregi. Un algoritm


determină dacă există 2 elemente din x a căror sumă este mai mică decât 100. Care este
complexitatea timp minimă pe care o poate avea acest algoritm?
a) O(n2) b) O(n) c) O(1) d) O(log n)
2. Se consideră un arbore cu n noduri (n > 1), nodurile fiind etichetate cu valori de la 1 la n.
Gradul unui nod reprezintă numărul de muchii incidente în acel nod. Dacă numerele
natural x1 >= x2 >= x3 ……. >= xn >=1 sunt gradele nodurilor arborelui, atunci suma s =
x1 + x2 + …… + xn este egală cu:
a) 2*n b) 2*(n-1) c) 2*(n+1) d) 2*n + x1 + xn

3. Se consideră funcția sub(a, n) unde n este


număr natural nenul (2 ≤ n ≤ 10000) și a este int b[101];
un vector cu n numere întregi (a[1], a[2], ..., int sub(int a[101], int n)
a[n], -100 ≤ a*i+ ≤ 100, pentru i = 1, 2, ..., n). {
Variabila globală b este vector. int i=2;
Precizați care dintre următoarele afirmații b[1]=a[1];
sunt adevărate: while(i<=n)
a) Algoritmul returnează suma tuturor {
elementelor din vectorul a; b[i]=a[i]+b[i-1];
b) Algoritmul returnează suma ultimelor 2 i++;
elemente din vectorul a; }
c) Algoritmul returnează ultimul element din return b[n];
vectorul a; }
d) Algoritmul returnează suma ultimelor n-1
elemente din vectorul a.

4. Care este valoarea returnată de int sub(int n)


funcția definită alăturat atunci când {
este apelată cu valoarea 20002021? int r=0;
do
a) 3 {
b) 4 r+=!(n%100);
c) 2 n/=10;
d) 1 }
while(n);
return r;
}

5. Se consideră toate șirurile de lungime l={1, 2, 3} formate din litere din mulțimea {e, f, g,
h, i}. Precizați câte dintre aceste șiruri au elemente ordonate strict crescător alfabetic și
un număr impar de vocale.
a) 7 b) 10 c) 28 d) 14
6. În urma apelului f(a, b), care sunt int a=10,b=24;
valorile variabilelor a și b, declarate void f(int &x, int &y)
global, după executarea secvenței de {
program de mai jos? a=a+x;
a) 24 10 y++;
b) 45 70 x=a+b;
c) 44 60 y=x+b;
d) 44 68 }
7. Ce se afișează pe monitor la rularea următorului program:

a) 0048
b) 048
c) 000488 #include <iostream>
using namespace std;
d) 0084
int main ()
{
int x, n=12;
for (x=0; x<n; x+=4)
{
switch (x)
{
case 0 :
cout<<x;
case 8 :
cout<<x;
break;
case 4 :
cout<<x;
default :
break ;
}
}
return 0 ;
}

8. Care dintre cele patru variante de mai jos nu poate reprezenta secvența gradelor vârfurilor
unui graf neorientat?
a) (1, 1, 1, 2, 2, 3) b) (1, 1, 3, 3, 3, 5) c) (1, 1, 2, 3, 4, 5) d) (1, 4, 4, 4, 4, 5)

9. Considerăm următoarea funcție d) 20


recursivă.
Ce valoare va furniza funcția în urma
apelului f(214354322, 10, -1) ?
int f(int n, int a, int b)
a) 19
{
b) 7 if(n == 0)
c) 15 return 0;
if(a > n % 10)
a = n % 10; return b - a + f(n/10, a, b);
if(b < n % 10) }
b = n % 10;
10. Se consideră un tablou bidimensional cu n linii și m coloane. În câte moduri ne putem
deplasa din colțul din stânga sus (de coordonate 1,1) în colțul din dreapta jos (de
coordonate n, m) astfel încât numărul de pași să fie minim? Se știe că n=6 și m=4 și
deplasarea se poate efectua, la fiecare pas, cu câte o poziție la stânga sau la dreapta (pe
orizontală) sau câte o poziție în sus sau în jos (pe verticală).
a) 35 b)21 c)56 d)158
11. Se dă mulțimea M={1, 2, 3, 4, A, B, C, D, E, F, G}. Câte submulţimi ale lui M conțin 2
cifre și 3 litere?
a) 2 15 b) 325 c) 100 d) 210
12. Precizați care este numărul de grafuri orientate distincte formate din 3 noduri și 4 arce.
Două grafuri sunt distincte dacă au matricea de adiacență diferită.
a)32 b) 15 c) 16 d) 30

13. Care este valoarea returnată de expresia de mai jos pentru variabila întreagă i cu valoarea
12345?
i % 1000 % 10 + i % 1000 / 100
a) 7 b) 9 c) 6 d) 8
14. Fie codul de mai jos:

int alg(int &a, int b)


{
for (int i=0; i<a; ++i)
{
int a=0;
a++;
b++;
cout<<a<<" "<<b<<" ";
}
return a=a+b ;
}
int main ()
{
int a=3, b=0;
cout<<alg(a,b)<<" "<<a<<" "<<b;
return 0 ;
}
Ce se va afișa după rularea acestuia?
a) 1 1 1 2 1 3 6 3 0 b) 1 1 1 2 1 3 6 6 0 c) 1 4 1 3 1 2 6 6 0 d) 1 1 1 2 2 3 6 3 0

15. Se consideră funcția alăturată.


Care este valoarea returnată de următorul
apel al funcției alg(675,3) ?
a) 1350 b) 2022 c) 2028 d) 2700
int alg ( int x, int y ) s += x + y ;
{ }
int s = 0 ; return s;
while ( x-- && y--) }
{
16. Considerând procedura de interclasare a doi vectori ordonați crescător, care conțin m,
respective n elemente, numărul total de operații pentru interclasare este m + n. Pentru a
interclasa un număr de k vectori, această procedură va fi apelată de k − 1 ori. Folosind
această procedură pentru a interclasa 3 vectori, care conțin 5, 3, respectiv 4 elemente,
care este numărul minim total de operații efectuate pentru a obține rezultatul final (un
vector ordonat crescător care conține toate elementele celor 3 vectori)?
a) 21 b) 19 c) 20 d) 12

17. Fie următorul program:

#include <iostream>
using namespace std;
int f(int x, int y, int v[10])
{
if(x==y)
if(v[x]-1==y)
return x;
else
return 0;
else
return f(x,(x+y)/2,v) + f(1+(x+y)/2,y,v);
}
int main()
{
int st=1,dr=4,v[10]= {0, 2, 3, 4, 5, 6};
cout<<f(st,dr,v);
return 0 ;
}
Ce se va afișa în urma rulării codului de mai sus?
a) 9 b) 14 c) 20 d) 10
18. Fie s un șir ce poate memora maxim 70 de caractere. Care este conținutul șirului s după
executarea secvenței de mai jos?

char s[71]="Politehnica", x[71]="", *p;


strcpy(x,strchr(s,'e'));
strncat(s+4,x,5);
cout<<strlen(s+10)<<" ";
p=strstr(s,"eh");
strcpy(p+2,p+6);
cout<<s;
a) 6 Politehnic b) 6 Politehehnic c) 4 Politehehn d) 5 Politehaehnic
19. Fie următoarele structuri:

struct candidat
{
char nume[20];
int nota;
};
struct examen
{
candidat c[20];
char sesiune[20];
} admitere2021;
Presupunând că î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;
20. 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
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