Variabila x memorează un tablou unidimensional cu 4 elemente, numerotate începând de la 0. Subprogramul f este definit mai jos.Indicați setul de elemente pe care le poate avea tabloul memorat în x, în ordinea în care apar în acesta, astfel încât, în urma apelului f(0,x);, să se afișeze pe ecran 2026.
void f(int i, int x[4])
{
if(i >= 3) x[i] = x[i] + 1;
else f(i + 1, x);
cout << x[i];
}
- −1, 1, 0, 5
- 1, −1, 0, 5
- 6, 2, 0, 1
- 6, 0, 1, 0
Apelul f(0,x) coboară până la f(3,x), care mărește x[3] cu 1 și îl afișează; la revenire se afișează x[2], x[1], x[0]. Se afișează deci x3+1, x2, x1, x0, lipite. Pentru 6,2,0,1: 2, 0, 2, 6, adică 2026. Celelalte dau 601-1, 60-11 și 1106.Indicați ce valoare se va afișa după execuția secvenței de program de mai jos.
int m=5, n=5, x=7, i, j, b, A[10][10] = {0}, k=0, y=0, z;
z = (m < n) ? m : n;
for (b = 0; b < z / 2; b++)
{
k++;
for (i = b; i < m - b; i++)
{
k--;
for (j = b; j < n - b; j++)
A[i][j] = b + x + k;
}
}
for (i = 1; i < n; i++)
for (j = 0; j < i; j++)
y += A[i][j];
cout << y;
- 34
- 21
- 14
- 86
z=5, deci b ia valorile 0 și 1. Pentru b=0: k devine 1, apoi scade la fiecare linie, deci liniile 0..4 primesc în întregime valorile 7,6,5,4,3 (cu k=0,−1,−2,−3,−4). Pentru b=1: k devine −3, iar liniile 1..3, coloanele 1..3, primesc 1+7+k cu k=−4,−5,−6, adică 4,3,2. Sub diagonala principală: linia 1: 6; linia 2: 5+3=8; linia 3: 4+2+2=8; linia 4: 3⋅4=12. Total y=6+8+8+12=34.Indicați ce va afișa la sfârșitul execuției secvenței de program de mai jos.
char s[]="Admitere2026AHC";
for (int i = 0; i < strlen(s); i++)
{
strncpy(s + i, s + strlen(s) - 1 - i, 1);
if (s[i] >= 'A' && s[i] <= 'Z')
s[i] += 32;
}
s[7] = '\0';
for (int i = 8; i < strlen(s); i++)
s[strlen(s) - 1 - i] = s[i / 2];
for (int i = 0; i < strlen(s) / 2; i++)
s[strlen(s) - 1 - i] = s[i];
cout << s;
chaAdmitere2026ahcahc2026CHA2026ACHcha6ahc
Șirul are 15 caractere. Primul for copiază pe poziția i caracterul de pe poziția 14-i, transformând majusculele în minuscule; după primele 7 pași începutul este cha6202, iar pașii următori copiază înapoi caractere deja modificate: rezultă cha6202e2026ahc. s[7]='\0' taie șirul la cha6202 (lungime 7), deci al doilea for (de la i=8) nu se execută. Al treilea for (i=0,1,2) copiază oglindit prima jumătate peste ultima: s[6]='c', s[5]='h', s[4]='a', deci se afișează cha6ahc.Se consideră subprogramul de mai jos. Considerând apelul f(987, 610), indicați câte dintre afirmațiile următoare sunt adevărate.I. Primul element afișat este 610.II. Ultimul element afișat este 0.III. Codul va afișa un șir de 15 numere distincte.IV. Codul va afișa șirul lui Fibonacci în ordine descrescătoare.
void f(int a, int b)
{
if (b == 0) return;
f(b, a - b);
cout << a - b << ' ';
}
- 1
- 0
- 2
- 3
Apelurile sunt f(987,610), f(610,377), …, f(2,1), f(1,1), f(1,0) (care se oprește). Afișarea se face după apelul recursiv, deci primul afișează cel mai adânc apel, f(1,1): se obține 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377. I este falsă (primul este 0), II este falsă (ultimul este 377), III este falsă (sunt 15 numere, dar 1 apare de două ori), IV este falsă (ordinea este crescătoare). Niciuna nu este adevărată.Folosind metoda backtracking, se generează, după o serie de reguli, secvențe de caractere z și u. O secvență este validă dacă respectă cumulativ următoarele cerințe:- este formată doar din caracterele z și u și are lungimea de 10 caractere;- nu conține 2 caractere consecutive de u;- conține numai grupuri de caractere de z de lungime impară.S-au generat primele patru secvențe valide în următoarea ordine: [zzzzzzzzzu], [zzzzzzzuzu], [zzzzzuzzzu], [zzzzzuzuzu].Indicați afirmația corectă referitoare la secvențele generate.
- există 3 secvențe valide care conțin exact 5 caractere de
u [zuzzzuzuzu] este a 7-a secvență validă- există 2 secvențe valide care conțin exact 5 caractere de
z - există secvențe valide care conțin exact 6 caractere de
u
Cu 5 de z și 5 de u, fără uu, literele trebuie să alterneze, iar fiecare grup de z are lungimea 1 (impară): doar zuzuzuzuzu și uzuzuzuzuz, deci există exact 2 secvențe cu 5 caractere z (și tot 2, nu 3, cu 5 caractere u). Cu 6 de u în 10 poziții, fără doi u alăturați, ar trebui cel puțin 5 de z între ei, deci 11 caractere: imposibil. În ordinea generării (z înaintea lui u), a 7-a secvență este zzzuzuzzzu, iar zuzzzuzuzu este a 12-a.