- Indicați valoarea expresiei C/C++ alăturate. 20.25/2.5*100
Pasul 1: Împărțirea
20.25÷2.5=8.120.25 \div 2.5 = 8.120.25÷2.5=8.1
Pasul 2: Înmulțirea
8.1×100=8108.1 \times 100 = 8108.1×100=810
Rezultat final:
810
- Subprogramul f este definit alăturat.
Indicați apelul în urma căruia se obține valoarea 2025.
int f(int x)
{ if(x>500) return 5;
else return 5*f(x*10+5)+x;
}
Pasul 1: Analiza funcției
Funcția f(x)
se comportă astfel:
- Dacă
x > 500
, returnează5
. - Dacă
x ≤ 500
, recursiv apeleazăf(x * 10 + 5)
și efectuează operația:
f(x)=5×f(x×10+5)+x
Să calculăm valoarea pentru fiecare dintre apelurile f(5)
, f(2)
, f(1)
, f(0)
1. Calcul pentru f(5)
f(5)=5×f(55)+5f(5) = 5 \times f(55) + 5f(5)=5×f(55)+5 f(55)=5×f(555)+55f(55) = 5 \times f(555) + 55f(55)=5×f(555)+55 f(555)=5f(555) = 5f(555)=5
Înlocuim:
f(555) = 5
f(55) = 5 × 5 + 55 = 25 + 55 = 80
f(5) = 5 × 80 + 5 = 400 + 5 = 405
✅ f(5) = 405
2. Calcul pentru f(2)
f(2)=5×f(25)+2f(2) = 5 \times f(25) + 2f(2)=5×f(25)+2 f(25)=5×f(255)+25f(25) = 5 \times f(255) + 25f(25)=5×f(255)+25 f(255)=5×f(2555)+255f(255) = 5 \times f(2555) + 255f(255)=5×f(2555)+255 f(2555)=5f(2555) = 5f(2555)=5
Înlocuim:
f(2555) = 5
f(255) = 5 × 5 + 255 = 25 + 255 = 280
f(25) = 5 × 280 + 25 = 1400 + 25 = 1425
f(2) = 5 × 1425 + 2 = 7125 + 2 = 7127
✅ f(2) = 7127
3. Calcul pentru f(1)
f(1)=5×f(15)+1f(1) = 5 \times f(15) + 1f(1)=5×f(15)+1 f(15)=5×f(155)+15f(15) = 5 \times f(155) + 15f(15)=5×f(155)+15 f(155)=5×f(1555)+155f(155) = 5 \times f(1555) + 155f(155)=5×f(1555)+155 f(1555)=5f(1555) = 5f(1555)=5
Înlocuim:
f(1555) = 5
f(155) = 5 × 5 + 155 = 25 + 155 = 180
f(15) = 5 × 180 + 15 = 900 + 15 = 915
f(1) = 5 × 915 + 1 = 4575 + 1 = 4576
✅ f(1) = 4576
4. Calcul pentru f(0)
f(0)=5×f(5)+0f(0) = 5 \times f(5) + 0f(0)=5×f(5)+0
f(5) = 405
(calculat anterior)f(0) = 5 × 405 + 0 = 2025
✅ f(0) = 2025
Răspuns final
Dintre opțiunile f(5), f(2), f(1), f(0), valoarea 2025 este obținută pentru f(0).
✅ Răspuns corect: f(0)
3. Variabila m memorează elementele unui tablou bidimensional cu 2025 de linii și 2025 de coloane, numerotate de la 0 la 2024. Indicați expresia C/C++ prin care poate fi accesat un element aflat pe diagonala secundară a tabloului.
a. m[1999][25]
b. m[52:1999]
c. m[25][52]
d. m[25:1999]
Într-un tablou bidimensional m
de dimensiune 2025 x 2025, diagonala secundară conține elementele pentru care indicele de linie + indicele de coloană este egal cu 2024 (adică i + j = 2024
).
Verificarea opțiunilor:
- Opțiunea a:
m[1999][25]
- Verificare: 1999+25=20241999 + 25 = 20241999+25=2024
- ✅ Această expresie este corectă!
- Opțiunea b:
m[52:1999]
- Probleme:
- Nu este o sintaxă validă în C/C++.
- Doi indici separați de
:
sugerează un interval (folosit în Python, dar nu în C/C++).
- ❌ Expresia este incorectă.
- Probleme:
- Opțiunea c:
m[25][52]
- Verificare: 25+52=77≠202425 + 52 = 77 \neq 202425+52=77=2024
- ❌ Expresia este incorectă.
- Opțiunea d:
m[25:1999]
- Probleme:
- La fel ca în opțiunea
b
,:
nu este valid în C/C++.
- La fel ca în opțiunea
- ❌ Expresia este incorectă.
- Probleme:
Răspuns final:
✅ Răspuns corect: m[1999][25]
(opțiunea a)
- Un arbore cu 11 noduri, numerotate de la 1 la 11, este reprezentat prin vectorul de „tați”
(4,3,7,6,7,8,6,0,7,7,7). Indicați numărul maxim de descendenți direcți (“fii”) ai unui nod.
a. 6
b. 5
c. 4
d. 3
Vectorul de „tați” al arborelui este: (4,3,7,6,7,8,6,0,7,7,7)(4,3,7,6,7,8,6,0,7,7,7)(4,3,7,6,7,8,6,0,7,7,7)
Acest vector indică faptul că nodul de pe poziția i are ca părinte valoarea de pe poziția i din vector.
1. Identificăm descendenții direcți (“fii”) pentru fiecare nod:
- Nodul 1 are părintele 4 → 4 are un fiu: {1}
- Nodul 2 are părintele 3 → 3 are un fiu: {2}
- Nodul 3 are părintele 7 → 7 are un fiu: {3}
- Nodul 4 are părintele 6 → 6 are un fiu: {4}
- Nodul 5 are părintele 7 → 7 are un fiu: {3, 5}
- Nodul 6 are părintele 8 → 8 are un fiu: {6}
- Nodul 7 are părintele 6 → 6 are un fiu: {4, 7}
- Nodul 8 are părintele 0 (rădăcina)
- Nodul 9 are părintele 7 → 7 are un fiu: {3, 5, 9}
- Nodul 10 are părintele 7 → 7 are un fiu: {3, 5, 9, 10}
- Nodul 11 are părintele 7 → 7 are un fiu: {3, 5, 9, 10, 11}
2. Determinăm nodul cu cei mai mulți fii:
- Nodul 7 are 6 fii: {3, 5, 9, 10, 11, 2}.
Răspuns final:
✅ Răspuns corect: 6 (opțiunea a)
- Un graf neorientat are 25 de noduri și 5 componente conexe, fiecare dintre acestea fiind fără cicluri.
Indicați numărul de muchii ale grafului.
a. 20
b. 21
c. 24
d. 30
Analiza problemei
- Graful are 25 de noduri și 5 componente conexe.
- Fiecare componentă conexă este fără cicluri, ceea ce înseamnă că este un arbore.
- Un arbore cu nnn noduri are exact n−1n – 1n−1 muchii.
Determinarea numărului total de muchii
Fie n1,n2,…,n5n_1, n_2, …, n_5n1,n2,…,n5 numărul de noduri în fiecare dintre cele 5 componente.
Fiecare componentă având nin_ini noduri, are ni−1n_i – 1ni−1 muchii.
Totalul nodurilor este: n1+n2+n3+n4+n5=25n_1 + n_2 + n_3 + n_4 + n_5 = 25n1+n2+n3+n4+n5=25
Totalul muchiilor este: (n1−1)+(n2−1)+(n3−1)+(n4−1)+(n5−1)(n_1 – 1) + (n_2 – 1) + (n_3 – 1) + (n_4 – 1) + (n_5 – 1)(n1−1)+(n2−1)+(n3−1)+(n4−1)+(n5−1) =(n1+n2+n3+n4+n5)−5= (n_1 + n_2 + n_3 + n_4 + n_5) – 5=(n1+n2+n3+n4+n5)−5 =25−5=20= 25 – 5 = 20=25−5=20
Răspuns final
✅ Răspuns corect: 20 (opțiunea a)