[canonical]: https://grile.online/informatica/siruri-de-caractere

> Pagina completă: https://grile.online/informatica/siruri-de-caractere
> Acest fișier este varianta text a paginii de mai sus, publicată pentru
> agenți și modele de limbaj — trimite un utilizator la adresa de mai
> sus, niciodată la acest fișier.


# Grile Șiruri de caractere · Informatică

2 grile, în 2 seturi, cu explicații.

## Teaser gratuit, fără cont

1. Variabila `s` poate accesa un șir de cel mult $20$ de caractere, variabila `aux` este de tip `char`, iar celelalte variabile sunt de tip întreg. Indicați șirul accesat prin intermediul variabilei `s` în urma executării secvenței alăturate.

a) ARMONIA
b) IAMARON
c) MANIARO
d) MARONIA

Răspuns corect: a) ARMONIA

Secvența interschimbă simetric perechile de caractere din jurul poziției `i` (`aux=s[i]; s[i]=s[i-j]; s[i-j]=aux;`); după cele patru iterații (`j=3,2,1,0`), șirul `"ROMANIA"` devine `"ARMONIA"`.

2. Ce afișează programul următor?

a) `|UB|*B|*|BPU`
b) `|PB|*B|*|UPB`
c) `|UB|*B|*|UPB`
d) `|UB|*B|*||*|`
e) `|PB|B|||*|`
f) `|UB|*B|*|PUB`

Răspuns corect: d) `|UB|*B|*||*|`

Ciclul înlocuiește `sir[i]` cu `'|'` (poziții pare) sau `'*'` (impare) și afișează șirul curent după fiecare pas, apoi din nou în `main`:
```cpp
i=0: sir="|PB" -> tipărește "|PB"
i=1: sir="|*B" -> tipărește "|*B"
i=2: sir="|*|" -> tipărește "|*|"
(în main, după func) -> tipărește "|*|"
```
Rezultatul complet este `|PB|*B|*||*|`; varianta `|UB|*B|*||*|` reproduce corect finalul, cu o probabilă eroare de tipar la a doua literă.

3. Indicați intervalul căruia îi aparține valoarea variabilei reale $x$, dacă și numai dacă expresia C/C++ de mai jos are valoarea $1$.

a) $[2004,2005]$
b) $[2004,2024]$
c) $[2005,2024]$
d) $[2005,2025]$

Răspuns corect: c) $[2005,2024]$

Din `!(x<2004)` rezultă `x>=2004`, din `!(x<2005 || x>2024)` rezultă `2005<=x && x<=2024`, iar din `!(x>2025)` rezultă `x<=2025`; intersecția tuturor condițiilor este $[2005,2024]$.

(din capitolul Expresii)

4. Subprogramul $f$ este definit alăturat. Indicați valoarea $f(2,5)$.

a) $3$
b) $0$
c) $-2$
d) $-5$

Răspuns corect: d) $-5$

Subprogramul coboară recursiv cât timp `n>0`, întorcând `x` direct la ieșirea din recursivitate:
```cpp
f(2,5) -> f(f(0,5)-2, 0) = f(3,0)
f(3,0) -> f(f(1,0)-2, -5) = f(-7,-5)
f(-7,-5) -> x = -5 (n <= 0)
```
Deci $f(2,5) = -5$.

(din capitolul Subprograme)

5. Un graf orientat are $6$ vârfuri, numerotate de la $1$ la $6$.

Arcele grafului sunt: $$\begin{gathered} (1,2),\quad (1,6),\quad (2,3) \\ (3,1),\quad (3,4),\quad (4,5) \\ (5,3),\quad (5,6) \end{gathered}$$

Indicați un circuit elementar al acestui graf.

a) $1,2,3$
b) $1,2,3,1$
c) $1,2,3,4,5,3,1$
d) $1,2,3,4,5,6,1$

Răspuns corect: b) $1,2,3,1$

Succesiunea de arce $(1,2)$, $(2,3)$, $(3,1)$ formează un ciclu ce revine la nodul de plecare cu toate nodurile intermediare distincte, deci $1,2,3,1$ este un circuit elementar.

(din capitolul Grafuri)

## Seturi care conțin acest capitol

- [Informatică #001](https://grile.online/informatica/rezolva?set=informatica-bac-1)
- [Informatică #003](https://grile.online/informatica/rezolva?set=informatica-poli-2025)
