Sunteți pe pagina 1din 2

Testare tip Bacalaureat la clasa a XII-a A

ianuarie, 2022
Se acordă din oficiu 10p
Timp de lucru 2h

SUBIECTUL I (20 puncte)


Pentru fiecare dintre itemii de la 1 la 5, scrieţi pe foaia de test litera corespunzătoare răspunsului corect.
1. Indicați valoarea expresiei C/C++ alăturate. 3+5.0/2+5/2
a. 2 b. 5 c. 8 d. 7.5 (4p.)
2. Condiţia ca două variabile a şi b întregi, pozitive, să aibă simultan valoarea zero este: (4p.)
a. !(a && b) b. a*b==0 c. a+b==0 d. a==0||b==0

3. Indicați numerele pe care le pot memora variabilele întregi x şi y, astfel încât valoarea expresiei x/2+x%y-x/y==0
să fie 1. (4p.)
a. x=4 şi y=2 b. x=6 şi y=3 c. x=8 şi y=4 d. x=10 şi y=0

4. Expresia:(x>-2)&&(!(x>2))||(x>=5) este echivalentă cu :

a. xє (-2,2] ∩ [5,∞) b. xє (-2,2) U [5,∞) c. xє (-2,2) ∩ (5,∞) d. xє (-2,2] U [5,∞)


(4p.)

5. Variabila x este de tip char şi memorează o literă mică a alfabetului englez. Indicați expresia C++
care are valoare nenulă dacă şi numai dacă litera memorată în variabila x este o vocală. Se consideră
vocale literele a, e, i, o, u. (4p.)
a. strcmp(x,"aeiou")==0 c. ’a’<=x && x<=’u’
b. strchr("aeiou",x) d. x==a || x==e || x==i || x==o || x==u

SUBIECTUL al II-lea (50 de puncte) citeste n //număr natural nenul


1. Algoritmul alăturat este reprezentat în pseudocod. m←0
S-a notat cu a%b restul împărțirii numărului natural a la ┌pentru i←1,n execută
numărul natural nenul b și cu [c] partea întreagă a │ citeste x (număr natural)
numărului real c. │┌cât timp x%10>[x/10]%10 execută
a. Scrieți ce se afișează dacă se citesc, în această ││ x←[x/10]
ordine, numerele 5, 127, 2019, 1005, 7, 1900. (6p.) │└■
b. Dacă primul număr citit este 2, scrieți un set de │ m←m+x
numere distincte din intervalul [103,104) care pot fi citite └■
în continuare astfel încât, în urma executării ┌dacă m>0 atunci scrie m
algoritmului, să se afișeze mesajul niciunul. (4p.) │altfel scrie „niciunul”
c. Scrieți programul C/C++ corespunzător algoritmului dat. └■
(10p.)
d.Scrieți în pseudocod un algoritm echivalent cu cel dat, înlocuind adecvat structura pentru...execută
cu o structură repetitivă de alt tip. (6p.)

2. Variabila fig, declarată alăturat, memorează lungimea razei unui


cerc și coordonatele centrului acestuia, în sistemul de coordonate
xOy. Scrieți o secvență de instrucțiuni prin care se iniţializează
variabila fig, astfel încât cercul corespunzător acesteia să aibă
raza 1 și centrul în originea sistemului de coordonate. (6p.)

3. Variabilele a şi b permit memorarea câte unui șir de cel mult 20 de caractere. Scrieți ce se afișează
în urma executării secvenței de mai jos. (6p.)
strcpy(a,"succint"); strcpy(b,"cules");
a[4]=’\0’; strcat(a,b+3);
cout<<a<<strlen(b);
4. Completați spațiile punctate din secvența de mai jos care construieşte în memorie un tablou bidimensional cu
n linii şi 2*n-1 coloane, elemente numere naturale din mulțimea {1, 2}, astfel încât valoarea elementelor de pe
semidiagonalele care încep cu primul element din stânga sus respectiv primul element din dreapta sus să fie
egale cu 1, celelalte elemente fiind egale cu 2.
1 2 2 2 1
Exemplu: Dacă n=3 atunci tabloul este cel de alături: 2 1 2 1 2
for(int i=1;i<=n;i++) 2 2 1 2 2
for(int j=1;j<=2*n-1;j++)
...................... (6p.)

5. Variabilele i și j sunt de tip întreg, iar variabila m memorează un tablou a b c d e f g


bidimensional cu 7 linii și 7 coloane, numerotate de la 0 la 6, cu elemente de tip char. + a b c d e f
Inițial, fiecare element memorează caracterul *. Fără a utiliza alte variabile, scrieți + + a b c d e
secvența de instrucțiuni de mai jos, înlocuind punctele de suspensie astfel încât, în urma + + + a b c d
executării secvenței obținute, variabila m să memoreze tabloul alăturat. (6p.) + + + + a b c
for(i=0;i<7;i++) + + + + + a b
for(j=0;j<7;j++) + + + + + + a
..................

SUBIECTUL al III-lea (20 de puncte)

1. O pereche de cuvinte, unul cu număr par de litere, iar celălalt cu număr impar de litere, se numește
descentrată dacă se poate obține cuvântul cu număr par de litere din celălalt, prin duplicarea caracterului din
mijlocul acestuia. Exemplu: perechile crezi și creezi, respectiv a și aa sunt descentrate.

Un text are cel mult 100 de caractere, iar cuvintele sale sunt formate din litere mici ale alfabetului englez şi sunt
separate prin câte un spațiu. Scrieţi un program C++ care citeşte de la tastatură un text de tipul precizat mai sus
şi afișează pe ecran mesajul DA, dacă acesta conține cel puțin o pereche descentrată de cuvinte, sau mesajul NU
în caz contrar. (10p.)
Exemplu: dacă textul citit este ”crezi ca poti sa creezi ceva original”
se afișează pe ecran mesajul DA

2. Fișierul bac.txt conține un șir de cel mult 106 numere naturale din intervalul [0,103), separate prin câte un
spațiu. Se cere să se afișeze pe ecran cea mai mare cifră dintre cele care sunt comune tuturor termenilor șirului
aflat în fișier, sau mesajul nu exista dacă nu există nicio astfel de cifră. Proiectați un algoritm eficient din punctul
de vedere al timpului de executare.
Exemplu: dacă fișierul conține numerele 701 917 17 171 817 771 71
atunci se afișează pe ecran 7 (cifrele 1 și 7 sunt comune tuturor termenilor șirului)
a) Descrieți în limbaj natural algoritmul proiectat, justificând eficiența acestuia. (2p.)
b) Scrieți programul C/C++ corespunzător algoritmului proiectat. (8p.)

S-ar putea să vă placă și