Elemente de programare s, i gândire algoritmică
Model de Examen de admitere UPT 2024; Setul 3
8 iulie 2024
l3
• Pentru fiecare item este considerat corect un singur raspuns; Veti marca raspunsul considerat corect pe foaia de raspunsuri;
• In rezolvarea cerintelor se va considera limbajul C standard si programa scolara de liceu;
1. (3 p.) Ce valoarea are variabila a după executaea următoarei
secvent, e de cod? A. 103050700
1 int a=1011; B. 123456789
2 if((a&(1<<1))==0) C. 214365879
3 a=10; D. 103355770
4 else E. 978563412
e
5 a=11; F. 103055700
A. 16 5. (3 p.) Fiecare dintre variabilele întregi x şi y memorează câte
B. 160 un număr natural. Care dintre expresiile C/C++ de mai jos are
C. 80 valoarea 1 dacă şi numai dacă numărul memorat în x este strict
D. 40 mai mare decât 0 şi numărul memorat în y este strict mai mare
od
decât 5?
E. 10
A. x⁎(y+5)>=0
F. 11
B. x⁎(y-25)<=0
2. (3 p.) Ce se va afisa ca urmare a executarii secventei de mai
jos? C. x⁎(y-5)<=0
D. x⁎(y-5)>=0
1 for (int i = 0; i < 3; i++){
E. x⁎(y-5)!=0
2 for (int j = i-1; j < 3; j++){
F. x⁎y-5!=0
3 printf("⁎");
4 } 6. (3 p.) Care este numarul maxim de valori egale care pot sa
5 printf("/"); apara intr-un vector de lagaturi de tip "tata" asociat unui arbore
6 } cu radacina care contine 10 noduri?
A. 10
M
A. ****/***/**/
B. 9
B. ****/****/***/
C. 0
C. *********///
D. 8
D. ****/***/**//
E. 1
E. ****/****/**/
F. 11
F. ***/***/***/
7. (3 p.) Considerand valorile de tip unsigned reprezentate pe
3. (3 p.) Într-un graf orientat G cu 6 vârfuri numerotate cu nu-
32 de biti, ce se va afisa ca urmare a executarii urmatoarei
mere distincte de la 1 la 6, există arc de la vârful i la vârful j
secvente de cod?
dacă şi numai dacă i<j şi j-i>1. Care sunt vârfurile din graf ce
au gradul interior mai mare decât gradul exterior? 1 unsigned int x = 0xA5;
A. 1, 2, 3 2 unsigned int y = 0x3C;
B. 2, 3, 4 3 unsigned int result = (x & y) | ((~x) &
(~y));
C. 4, 5, 6
4 printf("%x\n", result);
D. 3, 4, 5
E. 1, 4, 5 A. 66ffffff
B. 0xf6
F. 2, 3, 6
4. (3 p.) Ce valoare va avea variabila r după execut, ia urmă- C. 66
toarei secvent, e de cod: D. ffffff66
E. 0x66
1 int v[] = { 12, 34, 56, 78, 9 };
F. f6
2 int r = 0;
3 for (int i = 0; i < 5; i++){ 8. (3 p.) Ce valori se vor regăsi în vectorul v, după executarea
4 while (v[i]){ următoarei secvent, e de cod?
5 r = r ⁎ 10 + v[i] / 10; 1 int v[] = {1,2,3,4,5,6};
6 v[i] =v[i] / 10; 2 while (v[0]<15){
7 } 3 for(int i=1;i<=5;i++){
8 } 4 v[i]=1+v[i-1];
5 } C. -4
6 v[0]=v[5]; D. bucla infinita
7 } E. 0
A. 11 7 8 9 10 11 F. -1
B. 22 18 19 20 21 22 13. (3 p.) Se consideră funct, ia de mai jos. Câte caractere ⁎ se
C. 6 2 3 4 5 6 afisează la apelul f(20, 2024)
D. 21 17 18 19 20 21 1 int f(int x, int y) {
E. 16 12 13 14 15 16 2 printf("⁎");
F. 17 13 14 15 16 17 3 if(x<=1 || y<=1)
9. (3 p.) Se consideră un graf neorientat cu nodurile: 4 return 0;
1,2,3,4,5,6,7,8 şi muchiile: [1,3], [1,7], [2,6], 5 if(x>y)
[3,7], [5,2], [5,6], [8,4]. Câte componente conexe 6 return 1+f(f(y/x,y),y);
are graful? 7 return 1+f(x,f(x,y/x));
8 }
A. 3
B. 5 A. 8
C. 7 B. 10
D. 1 C. recursivitate infinită
E. 4 D. 9
F. 0 E. 0
10. (3 p.) Care este valoarea variabilei k, după execut, ia urmă- F. 7
toarei secvent, e de cod C? 14. (3 p.) Pentru a verifica dacă într-un tablou unidimensional
1 int n=100, k=0; există elementul cu valoarea x=0, se aplică metoda căutării
2 int i=n; binare, iar succesiunea de elemente ale tabloului a căror val-
3 do{ oare se compară cu valoarea lui x pe parcursul aplicării metodei
4 for (int j=i+1; j<n; j++){ indicate este: 20, 2, 0. Indicat, i succesiunea de valori care pot fi,
5 k++; în această ordine, elementele tabloului.
6 } A. 0,2,20,0,4,40,0,8,80
7 i--; B. 0,401,2,32,4,20,30
8 }while (i>=0); C. 0,1,2,4,20,40,64
A. 100 D. 0,2,4,8,16,20,32
B. 4950 E. 0,2,4,20,30,32,401
C. 9900 F. 0,2,4,30,20,32,401
D. 5000 15. (3 p.) Ce valoare va avea variabila r, după executarea ur-
E. 9000 mătoarei secvent, e de cod C?
F. 10000 1 int i = 1 ;
11. (3 p.) Se consideră funct, ia de mai jos. Ce se afiseaza la 2 while (i <= 8)
apelul f(2024)? 3 {
4 printf("%d",i);
1 void f(int n){
5 i=i+2;
2 if (n!=0){
6 if (i>= 6)
3 printf("%d", n);
7 i=i-1;
4 while (n){
8 }
5 f(n/10);
6 n=n/100; A. 13567
7 } B. 135678
8 } C. 135679
9 }
D. buclă infinită
A. 20242022002 E. 1356798
B. 20242022022 F. 1356789
C. 20242022042 16. (3 p.) Se consideră funct, ia C de mai jos. Ce se afisează dacă,
D. 2024202202 după apel, se citesc, în această ordine, numerele 212 57 3254
E. 20242022024 91 6310 0?
F. 20242022222 1 void f(){
12. (3 p.) Ce valoare va avea variabila întreagă x după execuţia 2 unsigned x;
următoarelor instrucţiuni: 3 scanf("%u", &x);
unsigned y=0;
unsigned x = 13;
4
1
while (x!=0){
do {
5
2
while(x>9){
if (x / 2) x = x - 7 ;
6
3
x=x/10;
else x = x + 2 ;
7
4
}
} while (x >= 0) ;
8
5
9 y=y⁎10+x;
A. -2 10 scanf("%u", &x);
B. -3 11 }
Pagina 2 din 4
12 printf("%u", y); 4 if (y == 0)
13 } 5 return g(x-1,1);
A. 69351 6 if (y > 0)
7 return g(x-1, g(x-1, y-1));
B. 69352
8 }
C. 65936
9 return y+1;
D. 25396 10 }
E. 65935
A. recursivitate infinită
F. 15211
B. returneaza 3 ; 3 caractere ’-’
17. (3 p.) Utilizând metoda backtracking, se generează toate nu-
merele impare de cel mult trei cifre din mulţimea 5, 6, 7, 8. C. returneaza 3 ; afiseaza 8 caractere ’-’
Primele 8 soluţii generate sunt, în această ordine: 5, 55, 555, D. returneaza 3 ; afiseaza 7 caractere ’-’
557, 565, 567, 57, 575. Cea de a 12-a soluţie generată este: E. returneaza 7 ; afiseaza 7 caractere ’-’
A. 67 F. returneaza 7 ; afiseaza 3 caractere ’-’
B. 55 22. (3 p.) Pentru algoritmul afisare a intersectiei a doua mul-
C. 65 timi, reprezentate sub forma de tablouri unidimensionale, fiecare
D. 655 avand un numar de n elemente, iar elementele sunt valori natu-
rale mai mici decat 100, se poate proiecta un algoritm optim de
E. 587
rezolvare, avand numarul de pasi egal cu:
F. 658
A. O (2n )
18. (3 p.) În expresia C/C++ alăturată variabila x este de tip
B. O (n2 )
întreg. Expresia x%2+(x+1)%2:
C. O (3n )
A. are valoarea 0 pentru orice număr natural x.
D. O (n3 )
B. are valoarea 1 dacă şi numai dacă x este un număr par.
E. O (n · log2 n)
C. are valoarea 1 pentru orice număr natural x.
F. O (n)
D. are valoarea 2 pentru orice număr natural x.
23. (3 p.) Numărul de elemente nenule ale matricei de
E. are o valoare strict mai mare decât 2 pentru orice număr
adiacent, ă asociată unui arbore cu n noduri este:
natural x.
A. n2 + 1
F. are valoarea 1 dacă şi numai dacă x este un număr im-
par. B. n2 − (n − 1)
19. (3 p.) Ce efect are executia secventei de cod C de mai jos? C. 2n−1
D. n2
1 unsigned s=0;
E. n(n − 1) + n
2 for (unsigned i=100; i>=1; i=i-3){
F. 2 · (n − 1)
3 if (i%3==0)
4 s=s+i; 24. (3 p.) Ce se afiseaza in urma executarii urmatoarei secvente
5 } C, daca toate datele se considera pe 32 de biti, fara semn?
6 printf("%u", s); 1 unsigned int a = 0x5A;
A. afiseaza suma numerelor divizibile cu 3 intre 1 si 100; 2 unsigned int b = 0xC3;
3 unsigned int result;
B. bucla infinita/nu afiseaza nimic datorata overflow in
4 result = (a ^ b) & (~a | b);
variabila b;
5 printf("%x\n", result);
C. afiseaza -1
D. afiseaza 99 A. 80
E. bucla infinita/nu afiseaza nimic datorata undeflow in B. 128
variabila b; C. 81
F. afiseaza 0 D. 99
20. (3 p.) Pentru rezolvarea careia dintre problemele de mai jos, E. 129
metoda backtracking obtine solutia in numar minim de pasi? F. ff
A. determinarea reuniunii a trei multimi; 25. (3 p.) Se utilizează metoda backtracking pentru a genera
B. determinarea tuturor elementelor din sirul lui Fib- toate anagramele (permutări ale caracterelor) distincte ale cu-
bonaci, mai mici decat o valoare X, data; vantului scarp. Câte dintre solut, ii vor avea primul s, i ultimul car-
C. determinarea tuturor factorilor primi ai unui numar nat- acter o consoan. Se consideră consoane caracterele din mult, imea
ural literelor alfabetului englez standard din care se elemina ele-
D. determinarea tuturor modurilor in care se pot alege X mentele din multimea (a,e,i,o,u).
elemente dintr-o multime astfel incat suma acestora sa A. 96
fie mai mare decat o valoare S B. 24
E. determinarea tuturor divizorilor unui numar de 3 cifre; C. 48
F. determinarea tuturor elementelor ce constituie intersec- D. 18
tia a doua multimi de elemente, reprezentate sub forma E. 72
de tablouri unidimensionale; F. 36
21. (3 p.) Se consideră funct, ia de mai jos. Ce valoare se re- 26. (3 p.) Se consideră un arbore binar complet cu 63 de noduri.
turneaza la apelul g(1,1) si cate caractere ’-’ se afiseaza? Care este înălt, imea acestui arbore?
1 int g(int x, int y){ A. 4
2 putchar('-'); B. 62
3 if (x >= 0){ C. 64
Pagina 3 din 4
D. 5 1 unsigned int result = 0;
E. 6 2 unsigned int x = 0xF0;
F. 1 3 unsigned int y = 0x0F;
27. (3 p.) Precizati complexitatea timp pentru urmatorul algo- 4 for (int i = 0; i < 4; i++) {
ritm 5 result = result | (x & (1 << i)) << 4;
6 result = result | (y & (1 << i)) << i;
1 void F(int n){ 7 }
2 if (n<=1){ 8 printf("%x\n", result);
3 putchar('1');
4 } A. ff
5 else{ B. 50
6 int m=n/2; C. 55
7 F(m);
D. 0
8 F(m);
E. fff
9 }
10 }
F. 0x55
30. (3 p.) Ce se afiseaza ca urmare a executarii secventei de cod
A. O (n) C de mai jos?
B. O (2n )
1 int count = 0;
C. O (nlog2 n)
2 int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
D. O (1) 3 for (int i = 0; i < 10; i++) {
E. O (n2 ) 4 if (array[i] % 2 == 0) {
F. O (n · 2n ) 5 for (int j = 0; j < array[i]; j++) {
28. (3 p.) Tablourile unidimensionale A s, i B au valorile 6 if (j % 3 == 0) {
A=(18,15,9,5,1) s, i B=(40,15,13,4,1). Pentru a determina 7 count++;
al 5-lea element obt, inut în urma interclasării tablourilor în or- 8 }
dine crescătoare, se compară elementul cu valoarea xa din A cu 9 }
elementul cu valoarea xb din B. Indicat, i valorile lui xa s, i xb. 10 }
A. xa=9 s, i xb=13 11 }
B. xa=9 s, i xb=5 12 printf("%d\n", count);
C. xa=9 s, i xb=4
A. 15
D. xa=5 s, i xb=4
B. 18
E. xa=5 s, i xb=13
C. 10
F. xa=4 s, i xb=13
D. 16
29. (3 p.) Ce se afiseaza, in urma executarii secventei de mai
E. 14
jos, daca toate datele se considera pe 32 de biti, fara semn?
F. 12
Pagina 4 din 4