
1.
Expresia C/C++ 22/20*20/2
se evaluează de la stânga la dreapta, ținând cont de prioritatea operatorilor (înmulțirea și împărțirea au aceeași prioritate).
22/20
dă rezultatul1
(împărțire între numere întregi).1*20
dă rezultat20
.20/2
dă rezultat10
.
Deci, răspunsul corect este c. 10.
2.
Analizând fiecare opțiune:
- a. x=(“apa minerala”,10,2.5); – Aceasta este incorectă. În C/C++, nu poți atribui direct o listă de valori unei structuri în acest mod. Trebuie să atribui valori fiecărui membru al structurii individual.
- b. x.produs.pret=2.5; – Aceasta este incorectă. Membrul
produs
nu există în structurax
. Membrul corect estepret
, direct înx
. - c. x.denumire[5]= “Borsec”; – Aceasta este incorectă. În C/C++, nu poți atribui un șir de caractere unui singur element al unui șir de caractere în acest mod. “Borsec” este un șir de caractere, nu un caracter individual.
- d. valoare=valoare=2*x.cantitate*x.pret;. – Aceasta este corectă. Această instrucțiune atribuie variabilei
valoare
rezultatul calculului, care implică accesarea corectă a membrilorcantitate
șipret
din structurax
.
Deci, răspunsul corect este d. valoare=2*x.cantitate*x.pret;.
3.
Pentru a determina soluția generată imediat după {fotbal, handbal}, trebuie să continuăm generarea soluțiilor în ordine lexicografică, ținând cont de restricțiile date.
- {fotbal, handbal} este soluția curentă.
- Următoarea soluție ar trebui să fie generată prin adăugarea unui al treilea sport, dacă este posibil. Singurul sport care poate fi adăugat fără a încălca restricția este volei. Deci, avem {fotbal, handbal, volei}.
- După aceea, se generează {fotbal, volei}.
- Apoi, {fotbal, volei, handbal}.
- După aceea, se generează {handbal, baschet}.
- Apoi, {volei, handbal}.
- Apoi, {volei, handbal, baschet}.
Deci, soluția generată imediat după {fotbal, handbal} este {fotbal, handbal, volei}. Dar această solutie nu se afla printre raspunsuri.
Analizand raspunsurile date: a. {volei, handbal} b. {fotbal, handbal, baschet} – solutie interzisa, contine fotbal si baschet. c. {handbal, baschet} d. {volei, handbal, baschet}
Solutia generata imediat dupa {fotbal, handbal} este {volei, handbal}. Raspunsul corect este a. {volei, handbal}.
4.
Pentru a determina numărul de componente conexe ale grafului, trebuie să identificăm grupurile de noduri care sunt conectate între ele prin muchii.
Muchiile date sunt:
- [1, 2]
- [1, 3]
- [2, 3]
- [4, 6]
Analizând muchiile, putem observa următoarele:
- Nodurile 1, 2 și 3 sunt conectate între ele, formând o componentă conexă.
- Nodurile 4 și 6 sunt conectate între ele, formând o altă componentă conexă.
- Nodul 5 nu este conectat cu nici un alt nod, deci formeaza o componenta conexa separata.
Prin urmare, graful are 3 componente conexe: {1, 2, 3}, {4, 6} si {5}.
Deci, răspunsul corect este b. 3.
5.
Pentru a rezolva această problemă, trebuie să construim arborele cu rădăcină folosind vectorul de „tați” dat și să analizăm nivelurile și frunzele.
Vectorul de „tați” este: (2, 4, 2, 0, 4, 4, x, 6, x, x, y, y).
- Nodul 4 este rădăcina (tatăl său este 0).
- Nodurile 1 și 3 au tatăl 2.
- Nodurile 2, 5 și 6 au tatăl 4.
- Nodurile 11 și 12 au tatăl y.
- Nodurile 7, 9 și 10 au tatăl x.
Pentru a avea 5 noduri frunză pe ultimul nivel, trebuie să determinăm valorile x și y astfel încât 5 noduri să nu aibă descendenți.
- Dacă x = 3, atunci nodul 7 are tatăl 3, nodul 9 are tatăl 3 și nodul 10 are tatăl 3.
- Dacă y = 8, atunci nodurile 11 și 12 au tatăl 8.
Construim arborele, pentru x = 3 si y = 8:
- Nodul 4 este rădăcina (nivelul 0).
- Nodul 2 este la nivelul 1.
- Nodurile 5, 6 sunt la nivelul 1.
- Nodurile 1, 3 sunt la nivelul 2.
- Nodul 8 este la nivelul 2.
- Nodurile 7, 9, 10, 11 si 12 sunt la nivelul 3.
Nodurile frunză sunt 1, 5, 6, 7, 9, 10, 11, 12, adica 8 noduri.
Insa, trebuie sa avem doar 5 noduri frunza, deci trebuie sa avem si noduri care au fii.
Daca x=3 si y=8:
- Nodul 1 este frunza
- Nodul 5 este frunza
- Nodul 6 este frunza
- Nodul 7 este frunza
- Nodul 9 este frunza
- Nodul 10 este frunza
- Nodul 11 este frunza
- Nodul 12 este frunza
Daca x=8 si y=3:
- Nodul 1 este frunza
- Nodul 5 este frunza
- Nodul 6 este frunza
- Nodul 3 este frunza
- Nodul 8 este frunza
Nodul 2 are 2 fii, 1 si 3. Nodul 4 are 3 fii, 2, 5, 6. Nodul 3 are 3 fii, 7, 9, 10. Nodul 8 are 2 fii, 11 si 12.
Nodul 3 are 3 fii frunze.
Deci, raspunsul corect este b. x=8 y=3.