Sunteți pe pagina 1din 3

Ministerul Educaţiei, Cercetării şi Inovării

Centrul Naţional pentru Curriculum şi Evaluare în Învăţământul Preuniversitar

EXAMENUL DE BACALAUREAT – 2009


Proba scrisă la INFORMATICĂ
PROBA E, limbajul C/C++
Specializarea Matematică-informatică intensiv informatică

♦ Toate subiectele sunt obligatorii. Se acordă 10 puncte din oficiu.


♦ Timpul efectiv de lucru este de 3 ore.
♦ În rezolvările cerute, identificatorii utilizaţi trebuie să respecte precizările din enunţ
(bold), iar în lipsa unor precizări explicite, notaţiile trebuie să corespundă cu semnificaţiile
asociate acestora (eventual în formă prescurtată).

Subiectul I (30 de puncte) - Varianta 088

Pentru itemul 1, scrieţi pe foaia de examen litera corespunzătoare răspunsului corect.


1. In secvenţele C/C++ următoare toate variabilele sunt de tip întreg şi memorează numere
cu cel mult 3 cifre. Care dintre variantele de mai jos determină interschimbarea valorilor
memorate de variabilele a şi b? (4p.)
a. aux=b; a=b; b=aux; b. a=a+b; b=a-b; a=a-b;
c. a=b; b=a; d. a=a+b; b=a-b; a=b-a;

Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.


2. Se consideră algoritmul alăturat, descris în citeşte a
pseudocod. (număr natural)
S-a notat cu x%y restul împărţirii numărului natural x la
pÅ1
numărul natural nenul y, iar cu [z] partea întreagă a bÅ0
numărului real z. ┌cât timp a≠0 execută
a) Scrieţi numărul care se va afişa dacă se citeşte │ cÅa%10
valoarea 123456. (6p.) │ ┌dacă a%2=0 atunci
│ │ bÅb+c*p
b) Scrieţi o valoare cu exact 5 cifre care poate fi citită │ │altfel
pentru variabila a astfel încât numărul afişat să fie │ │ bÅb*10+c
format din toate cifrele lui a, scrise în ordine inversă. │ └■
(4p.) │ aÅ[a/10]
│ pÅp*10
c) Scrieţi programul C/C++ corespunzător algoritmului
└■
dat. (10p.)
d) Scrieţi în pseudocod un algoritm echivalent cu cel scrie b
dat în care să se înlocuiască structura cât timp
... execută cu o structură repetitivă cu test final.
(6p.)

BACALAUREAT 2009 - INFORMATICĂ, limbajul C/C++ Subiectul I


Specializarea Matematică-informatică intensiv informatică
Ministerul Educaţiei, Cercetării şi Inovării
Centrul Naţional pentru Curriculum şi Evaluare în Învăţământul Preuniversitar

Subiectul II (30 de puncte) - Varianta 088

Pentru fiecare dintre itemii 1 şi 2 scrieţi pe foaia de examen litera care corespunde
răspunsului corect.
1. În declararea alăturată, variabila p memorează în câmpul x struct
abscisa, iar în câmpul y ordonata unui punct din planul xOy. {float x;
Dacă punctul se află pe cel puţin una dintre axe, care dintre float y;}p;
expresiile de mai jos are valoarea 1? (4p.)
a. p.x*p.y==0 b. (p.x==0)&&(p.y==0)
c. x.p==y.p d. p(x)==0
2. Ce valoare are variabila s de tip şir de caractere după executarea instrucţiunii de mai jos?
s=strcat(strstr("bacalaureat", "bac")+ strlen("2009"),"09"); (4p.)
a. BAC2009 b. laureat09 c. Bac200909 d. aur2009

Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.


3. Se consideră un arbore cu 6 noduri, numerotate de la 1 la 6, 0 1 0 0 0 1
reprezentat prin matricea de adiacenţă dată alăturat. Scrieţi toate 1 0 1 1 1 0
nodurile care pot fi alese ca rădăcină a arborelui astfel încât acesta 0 1 0 0 0 0
să aibă un număr minim de frunze. (6p.) 0 1 0 0 0 0
0 1 0 0 0 0
1 0 0 0 0 0
4. Fiecare element al unei liste simplu înlănţuite, alocată dinamic, reţine în câmpul nr un
număr întreg, iar în câmpul urm adresa următorului element din listă sau NULL dacă nu
există un element următor.
Ce valori au variabilele întregi a şi b după executarea q=p;
secvenţei alăturate, dacă variabila p reţine adresa a=p->urm->nr;
primului element al listei de mai jos, iar variabila q este while (q->urm!=NULL)
{
de acelaşi tip cu p? q->urm->nr=q->nr*p->nr;
q=q->urm;
}
(6p.) b=q->nr;
5. Scrieţi un program C/C++ care citeşte de la tastatură un număr natural n (1≤n≤20),
elementele unei matrice cu n linii şi n coloane, numere întregi din intervalul [-100,100] şi
afişează pe ecran media aritmetică a elementelor strict pozitive ale matricei, care sunt
situate deasupra diagonalei principale, ca în exemplu. Dacă nu există elemente strict
pozitive situate deasupra diagonalei principale, programul va afişa mesajul „NU EXISTA”.
Exemplu: pentru n=4 şi matricea alăturată se afişează valoarea -1 2 -4 5
2.75 (sunt luate în considerare doar elementele marcate). 0 6 3 1
(10p.)
2 4 2 0
3 -5 1 -3

BACALAUREAT 2009 - INFORMATICĂ, limbajul C/C++ Subiectul II


Specializarea Matematică-informatică intensiv informatică
Ministerul Educaţiei, Cercetării şi Inovării
Centrul Naţional pentru Curriculum şi Evaluare în Învăţământul Preuniversitar

Subiectul III (30 de puncte) - Varianta 088

Pentru itemul 1, scrieţi pe foaia de examen litera corespunzătoare răspunsului corect.


1. Ionel doreşte să ofere cadouri membrilor familiei sale, formată din cei doi părinţi şi o soră.
Decide să le ofere stilouri de diferite culori. La magazin există stilouri de 5 culori diferite.
Algoritmul de generare a tuturor posibilităţilor de a atribui câte un stilou fiecăruia dintre cei
trei membri ai familiei, fără să se repete vreo culoare, este similar cu algoritmul de
generare a (4p.)
a. aranjamentelor b. elementelor produsului cartezian
c. permutărilor d. submulţimilor

Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.


Se consideră subprogramul f, definit alăturat. int f(int n)
2.
Ce valoare are f(1)? Dar f(4)? (6p.) {
if (n==0) return 1;
else if (n==1) return 2;
else return f(n-1)-f(n-2);
}
3. Scrieţi definiţia completă a subprogramului numar, cu patru parametri, care primeşte prin
intermediul parametrului n un număr natural format din cel mult 9 cifre, iar prin intermediul
parametrilor c1 şi c2 câte o cifră cu proprietatea c1<c2; subprogramul furnizează prin
intermediul celui de al patrulea parametru, x, o valoare obţinută prin eliminarea din numărul
primit prin parametrul n a fiecărei cifre cuprinse în intervalul închis [c1, c2]. Dacă toate
cifrele lui n aparţin acestui interval, valoarea furnizată prin x va fi 0.
Exemplu: pentru n=162448, c1=4 şi c2=7, valoarea furnizată prin x va fi 128. (10p.)
4. Fişierul text bac.txt conţine cel mult 10000 de numere naturale din intervalul închis
[0,9], dintre care cel puţin unul este prim. Numerele se află pe mai multe rânduri, cele de
pe acelaşi rând fiind separate prin câte un spaţiu.
a) Scrieţi un program C/C++ care determină şi afişează pe ecran cel mai mare număr prim
care apare în fişier şi numărul de apariţii ale acestuia, utilizând un algoritm eficient din punct
de vedere al timpului de executare şi al spaţiului de memorie utilizat. Programul afişează pe
ecran cele două valori determinate, separate printr-un spaţiu.
Exemplu: dacă fişierul conţine numerele: 5 8 9 1 9 5 1 1 2 2 se va afişa 5 2. (6p.)
b) Descrieţi succint, în limbaj natural, algoritmul utilizat, justificând eficienţa acestuia. (4p.)

BACALAUREAT 2009 - INFORMATICĂ, limbajul C/C++ Subiectul III


Specializarea Matematică-informatică intensiv informatică

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