Sunteți pe pagina 1din 3

Ministerul Educaiei Naionale i Cercetrii tiinifice

Centrul Naional de Evaluare i Examinare

Examenul de bacalaureat naional 2016


Proba E. d)
Informatic
Limbajul C/C++
Varianta 4
Filiera teoretic, profilul real, specializrile: matematic-informatic
matematic-informatic intensiv informatic
Filiera vocaional, profilul militar, specializarea matematic-informatic
Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul de lucru efectiv este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din
enun (bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu
semnificaiile asociate acestora (eventual n form prescurtat).
n programele cerute, datele de intrare se consider corecte, validarea acestora
nefiind necesar.
SUBIECTUL I
(30 de puncte)
Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.

Variabilele x, y i z sunt de tip ntreg i memoreaz numere naturale din intervalul


[1,103]. Indicai o expresie C/C++ care are valoarea 1 dac i numai dac valoarea
variabilei x este strict mai mare dect valoarea oricreia dintre variabilele y i z.
(4p.)

a.

x*y>y*z && x*z>y*z

b.

x*z>x*y && y*z>y*x

c.

y*z>x*z && y*x>z*x

d.

y*z>y*x && y*z>z*x

2. Se consider algoritmul alturat, reprezentat


n pseudocod.
S-a notat cu a%b restul mpririi numrului natural a
la numrul natural nenul b i cu [c] partea ntreag
a numrului real c.

citete n
(numr natural nenul)
k 1
m 1
ct timp n>9 execut
dac n%10=[n/10]%10 atunci
k k+1
dac k>m atunci
m k

altfel
k 1

n [n/10]

scrie m

a)

Scriei valoarea afiat n urma executrii


algoritmului dac se citete numrul
81112337.
(6p.)

b)

Scriei numrul de valori din intervalul


[10000,99999] care s nceap cu cifra 1,
care pot fi citite pentru variabila n, astfel nct,
n urma executrii algoritmului, pentru fiecare
dintre acestea, s se afieze valoarea 4. (4p.)

c)

Scriei n pseudocod un algoritm echivalent cu cel dat, nlocuind structura ct


timp...execut cu o structur repetitiv de alt tip.
(6p.)

d)

Scriei programul C/C++ corespunztor algoritmului dat.

Prob scris la informatic


Limbajul C/C++

(10p.)

Varianta 4

Filiera teoretic, profilul real, specializrile: matematic-informatic, matematic-informatic intensiv informatic


Filiera vocaional, profilul militar, specializarea matematic-informatic

Ministerul Educaiei Naionale i Cercetrii tiinifice


Centrul Naional de Evaluare i Examinare

SUBIECTUL al II-lea
(30 de puncte)
Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera corespunztoare
rspunsului corect.
1.

Variabilele i i j sunt de tip ntreg, iar variabila m memoreaz un tablou bidimensional cu 5


linii i 5 coloane, numerotate de la 0 la 4, cu elemente numere ntregi.
O expresie C/C++ a crei valoare este egal cu produsul dintre primul element de pe linia i
i ultimul element de pe coloana j din acest tablou este:
(4p.)

a.

m[0,i]*m[j,4]

b.

m(0,i)*m(j,4)

c.

m(i)(0)*m(4)(j)

d.

m[i][0]*m[4][j]

2.
a.

Un graf orientat are 12 arce, 3 componente tare conexe, iar fiecare vrf al su are gradul
interior un numr nenul. Numrul maxim de noduri pe care le poate avea graful este: (4p.)
12

b.

11

c.

d.

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.


3.

Un arbore cu 8 noduri, numerotate de la 1 la 8, este reprezentat prin urmtorul vector de


tai (3, 0, 2, 5, 2, 5, 1, 5). Determinai cel mai lung lan elementar care are o extremitate
n rdcin i enumerai nodurile sale, n ordinea apariiei n acesta.
(6p.)

4.

Variabilele i i s sunt ntregi, iar variabila p struct parcare


{ int nrLocuriInchiriate;
memoreaz, pentru fiecare dintre cele 20 de
int pretOra;
zone de parcare ale unui ora, numrul de
}
p[20];
locuri nchiriate pe parcursul orei curente,
precum i preul practicat de zona respectiv
pentru nchirierea unui loc pentru o or.
Fr a utiliza alte variabile dect cele menionate, scriei o secven de instruciuni n urma
executrii creia variabila s s memoreze suma total obinut n urma nchirierii locurilor
de parcare din ora pe parcursul orei curente.
(6p.)

5.

Scriei un program C/C++ care citete de la tastatur, n aceast ordine, un numr natural
n, apoi n cuvinte, separate prin Enter, urmate de un numr natural k. Numerele citite sunt
din intervalul [1,20], iar fiecare cuvnt este format din cel mult 20 de caractere, numai
litere mici ale alfabetului englez. Cel puin unul dintre cuvinte are k litere. Programul
construiete n memorie, apoi afieaz pe ecran, un ir care s cuprind cuvintele citite,
separate prin cte un spaiu, astfel nct toate cele care au k litere s ocupe primele poziii,
iar celelalte s se regseasc n continuarea acestora, ntr-o ordine oarecare.
Exemplu: dac se citesc, n aceast ordine, datele alturate, unul dintre
irurile obinute poate fi:
am un de cires mai
(10p.)

Prob scris la informatic


Limbajul C/C++

5
am
un
cires
de
mai
2

Varianta 4

Filiera teoretic, profilul real, specializrile: matematic-informatic, matematic-informatic intensiv informatic


Filiera vocaional, profilul militar, specializarea matematic-informatic

Ministerul Educaiei Naionale i Cercetrii tiinifice


Centrul Naional de Evaluare i Examinare

SUBIECTUL al III-lea
(30 de puncte)
Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.

a.

Subprogramul f este definit alturat. void f(int n, int p)


Indicai cea mai mare valoare din { if(n>0)
{ if(n%2==1)
intervalul [20,25] pe care o poate
cout<<p<<" "; | printf(" ",p);
avea variabila ntreag x, astfel nct,
f(n/2, p*2);
n urma apelului de mai jos, s se
}
afieze numerele 2 4 16.
}
f(x,1);
(4p.)
21

b.

22

c.

23

d.

24

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.


2.

Utiliznd metoda backtracking se genereaz, n ordine lexicografic, toate irurile de cte 6


cifre din mulimea {0,1} cu proprietatea c au cel mult dou cifre cu valori egale pe poziii
consecutive. Primele 5 soluii generate sunt, n aceast ordine: 001001, 001010, 001011,
001100, 001101. Scriei a 7-a i a 8-a soluie, n ordinea generrii acestora.
(6p.)

3.

Subprogramul minDivPrim are un singur parametru, n, prin care primete un numr


natural (n
[2,109]). Subprogramul returneaz cel mai mic numr natural care are
aceiai divizori primi ca n.
Scriei definiia complet a subprogramului.
Exemplu: dac n=75, subprogramul returneaz numrul 15, iar dac n=7, subprogramul
returneaz numrul 7.
(10p.)

4.

Se consider irul 1, -1, 2 ... definit astfel: f1=1, f2=-1, iar fn=1-2fn-1-fn-2, dac
n3 (unde n este un numr natural).
Se citete de la tastatur un numr natural, n (n
[1,109]), i se cere s se scrie n
fiierul text bac.out, separai prin cte un spaiu, primii n termeni ai irului, n ordine
invers apariiei lor n acesta.
Pentru determinarea i afiarea numerelor cerute se utilizeaz un algoritm eficient din
punctul de vedere al spaiului de memorie i al timpului de executare.
Exemplu: dac n=3, fiierul conine valorile
2 -1 1
a) Descriei n limbaj natural algoritmul utilizat, justificnd eficiena acestuia.
(4p.)
b) Scriei programul C/C++ corespunztor algoritmului descris.
(6p.)

Prob scris la informatic


Limbajul C/C++

Varianta 4

Filiera teoretic, profilul real, specializrile: matematic-informatic, matematic-informatic intensiv informatic


Filiera vocaional, profilul militar, specializarea matematic-informatic