PRETESTAREA EXAMENULUI DE BACALAUREAT 2003
Probă scrisă la INFORMATICĂ (Varianta C/C++)
u
Toţi itemii sunt obligatorii. Fiecare
item are un singur răspuns corect.
u Se acordă câte 2 puncte pentru
fiecare răspuns corect. Se acordă 10 puncte din oficiu.
u
Pentru fiecare item, completaţi pe
foaia de examen răspunsul pe care-l consideraţi corect cu simbolul O,
iar răspunsurile considerate greşite cu simbolul X.
1.
|
La adresele p
şi u sunt memorate primul,
respectiv ultimul element al unei liste liniare simplu înlănţuite L.
Orice element al listei memorează în câmpul adr adresa elementului următor. Care dintre următoarele
atribuiri transformă lista L într-o listă circulară? |
|
|||||||||||||||||||||||||
a.
|
p->adr=u; |
b.
|
p.adr=u; |
c.
|
u.adr=p; |
d.
|
u->adr=p; |
|
|||||||||||||||||||
2.
|
Cu ce
expresie trebuie completată secvenţa
lipsă din funcţia alăturată pentru ca f(x,2)
să aibă ca rezultat suma exponenţilor factorilor primi ce
intră în descompunerea lui x? Exemplu:
135=33*51, deci calc(135,2)=4 |
int f(int x, int d) {if (...) return 1; else if (x%d==0) return (1+f(x/d,d)); else return (f(x,d+1)); } |
|
||||||||||||||||||||||||
a.
|
x<d |
b.
|
x<=d |
c.
|
x>=d |
d.
|
x=1 |
|
|||||||||||||||||||
3.
|
Subprogramul intersch realizează interschimbarea valorilor a două variabile întregi transmise prin intermediul parametrilor formali x şi y. Antetul subprogramului este: |
|
|||||||||||||||||||||||||
a.
|
int intersch(int &x, &y) |
b.
|
void intersch(int x, int y) |
|
|||||||||||||||||||||||
c.
|
void intersch(int &x, int &y) |
d.
|
int intersch(int x) |
|
|||||||||||||||||||||||
4.
|
Se consideră două şiruri de caractere nume şi pren reprezentând numele şi respectiv prenumele unei persoane. Se poate obţine numele complet al persoanei (numele urmat de prenume) cu ajutorul expresiei: |
|
|||||||||||||||||||||||||
a.
|
strcpy(nume,pren) |
b.
|
nume+pren |
c.
|
strcat(nume,pren) |
d.
|
nume&pren |
|
|||||||||||||||||||
5.
|
Se consideră un şir de caractere s şi un caracter c. Poziţia pe care se găseşte c în s este dată de rezultatul funcţiei standard: |
|
|||||||||||||||||||||||||
a.
|
strlen(s,c) |
b.
|
strchr(s,c) |
c.
|
strpos(s,c) |
d.
|
strcpy(s,c) |
|
|||||||||||||||||||
6.
|
Care este valoarea expresiei ((12-2)*2)-(11-(2*3+1))? |
|
|||||||||||||||||||||||||
a.
|
2 |
b.
|
-16 |
c.
|
16 |
d.
|
28 |
|
|||||||||||||||||||
7.
|
Se consideră 10 liste, orice element de
listă având un câmp adr ce
memorează adresa elementului următor. Ştiind că p este un vector de adrese, p[i] reprezentând adresa de
început a listei Li , să se
afişeze numerele de ordine ale listelor nevide. |
|
|||||||||||||||||||||||||
a.
|
for(i=0;i<10;i++) if (p[i]) cout<<i; |
b.
|
for(i=0;i<10;i++) if (p[i]->adr) cout<<i; |
|
|||||||||||||||||||||||
c.
|
for(i=0;i<10;i++) if (!p[i]) cout<<i; |
d.
|
for(i=0;i<10;i++) if (!p[i]->adr) cout<<i; |
|
|||||||||||||||||||||||
8.
|
Se ştie că este definit subprogramul prime ce primeşte prin doi parametri x şi y
două valori întregi şi returnează numărul de numere prime
din intervalul închis [x,y] numai dacă x<y. Care dintre următoarele expresii
este adevărată numai dacă valoarea întreagă z (z>5) este număr prim? |
|
|||||||||||||||||||||||||
a.
|
prime(2,z) ąprime(2,z+1) |
b.
|
prime(2,z)ąprime(2,z-1) |
|
|||||||||||||||||||||||
c.
|
prime(z,z)=1 |
d.
|
prime (z-1,z)=prime(z,z+1) |
|
|||||||||||||||||||||||
9.
|
Variabilele p
şi q memorează în
două câmpuri x şi y două numere întregi
reprezentând coordonatele punctelor P şi respectiv Q din plan.
Ştiind că distanţa dintre P şi Q se calculează cu
ajutorul formulei |
|
|||||||||||||||||||||||||
a.
|
sqrt(pow(px-qx,2)+pow(py-qy,2)) |
|
|||||||||||||||||||||||||
b.
|
sqrt(pow(p.x+q.x,2)–pow(p.y+q.y,2)) |
|
|||||||||||||||||||||||||
c.
|
sqrt((p.x-q.x)(p.x-q.x)+(p.y-q.y)(p.y-q.y)) |
|
|||||||||||||||||||||||||
d.
|
sqrt(pow(p.x-q.x,2)+pow(p.y-q.y,2)) |
|
|||||||||||||||||||||||||
10. |
Se consideră subprogramul recursiv alăturat. Ce
se afişează pe ecran la apelul scrie(21)? |
void scrie( int x) {if
(x>1) scrie(x div 2); cout<<x%2;} |
|
||||||||||||||||||||||||
a.
|
11111 |
b.
|
01010 |
c.
|
00000 |
d.
|
10101 |
|
|||||||||||||||||||
11. |
Variabila vf memorează adresa elementului din vârful unei stive. Fiecare element al stivei memorează într-un câmp adr adresa următorului element din stivă. Variabila q poate memora adresa oricărui element al stivei. Să se realizeze eliminarea elementului din vârful stivei. În versiunea C se utilizează free(x) în loc de delete x. |
|
|||||||||||||||||||||||||
a.
|
q->adr=vf;vf->adr=q;delete
q; |
b.
|
q=vf;vf=vf->adr;delete
vf; |
|
|||||||||||||||||||||||
c.
|
q=vf->adr;vf=q->adr;delete
q; |
d.
|
q=vf;vf=q->adr;delete
q; |
|
|||||||||||||||||||||||
12. |
Se presupune
că este definită o funcţie min care primeşte
două valori reale prin intermediul a doi parametri şi
returnează cea mai mică dintre cele două valori.
Stabiliţi care dintre următoarele expresii este egală cu cea
mai mare dintre valorile reale a şi b. |
|
|||||||||||||||||||||||||
a.
|
a-min(a,b)+b-min(b,a) |
b.
|
min(a,b) |
c.
|
min(a,b)-a-b |
d.
|
a+b–min(a,b) |
|
|||||||||||||||||||
13. |
Se consideră că variabila cap memorează adresa de început a unei liste liniare simplu
înlănţuite L. Orice element al
listei memorează într-un câmp numit adr
adresa elementului următor. Care dintre următoarele expresii
reprezintă adresa celui de-al treilea element al listei. |
|
|||||||||||||||||||||||||
a.
|
cap->adr |
b.
|
cap.adr |
c.
|
cap->adr->adr |
d.
|
cap.adr.adr |
|
|||||||||||||||||||
Se
consideră programul pseudocod alăturat. Următorii
12 itemi se referă la acest program. Observaţie: s-a notat cu [x/y] partea întreagă a valorii raportului |
citeşte
n,a {numere naturale} esteß0 repetă dacă n=a atunci esteß1 nß[n/10] până când n=0 sau este=1 scrie este |
|
|||||||||||||||||||||||||
14. |
Ştiind că valoarea dată a lui n este 14262, determinaţi care este valoarea dată pentru a astfel încât să se afişeze valoarea 1 |
|
|||||||||||||||||||||||||
a.
|
42 |
b.
|
14 |
c.
|
1462 |
d.
|
41 |
|
|||||||||||||||||||
15. |
Instrucţiunea dacă n=a atunci esteß1 se scrie ca instrucţiune C/C++ astfel: |
|
|||||||||||||||||||||||||
a.
|
if (n==a) este==1 |
b.
|
if (n=a) este=1 |
|
|||||||||||||||||||||||
c.
|
if (n==a) este=1 |
d.
|
if (n=a) este==1 |
|
|||||||||||||||||||||||
16. |
Declararea variabilelor în programul C/C++ corespunzător se realizează prin secvenţa: |
|
|||||||||||||||||||||||||
a.
|
int:n,a,este; |
b.
|
int a,n,este |
c.
|
a,n,este:int; |
d.
|
int n,a,este; |
|
|||||||||||||||||||
17. |
Ce se afişează dacă valorile iniţiale (citite) pentru n şi a sunt 57 şi respectiv 57? |
|
|||||||||||||||||||||||||
a.
|
nu se afişează nimic |
b.
|
o valoare strict pozitivă |
|
|||||||||||||||||||||||
c.
|
o valoare strict negativă |
d.
|
0 |
|
|||||||||||||||||||||||
18. |
Programul afişează valoarea 1 dacă şi numai dacă: |
|
|||||||||||||||||||||||||
a.
|
a este format numai din cifre ale lui n |
b.
|
a are exact aceleaşi cifre ca şi n |
|
|||||||||||||||||||||||
c.
|
a este un prefix al lui n |
d.
|
n este un prefix al lui a |
|
|||||||||||||||||||||||
19. |
Prin transformarea structurii repetă ... până când şi a condiţiei de oprire în structură cât timp corespunzătoare, algoritmul obţinut |
|
|||||||||||||||||||||||||
a.
|
nu funcţionează la fel pentru nici un set de date de intrare |
|
|||||||||||||||||||||||||
b.
|
funcţionează la fel pentru seturile de date pentru care nu ciclează infinit |
|
|||||||||||||||||||||||||
c.
|
nu funcţionează la fel pentru unele seturi de date de intrare |
|
|||||||||||||||||||||||||
d.
|
funcţionează la fel pentru orice set de date de intrare |
|
|||||||||||||||||||||||||
20. |
Atribuirea nß[n/10] se scrie ca instrucţiune C/C++ astfel: |
|
|||||||||||||||||||||||||
a.
|
n=n:10 |
b.
|
n%=10 |
c.
|
n=n%10 |
d.
|
n=n/10 |
|
|||||||||||||||||||
21. |
Ce tip de instrucţiune repetitivă este folosită în program? |
|
|||||||||||||||||||||||||
a.
|
cu test iniţial |
b.
|
cu test final |
c.
|
multiplă |
d.
|
cu contor |
|
|||||||||||||||||||
22. |
De câte ori se execută instrucţiunea nß[n/10]dacă valorile iniţiale (citite) pentru n şi a sunt 437 şi respectiv 40? |
|
|||||||||||||||||||||||||
a.
|
4 |
b.
|
2 |
c.
|
3 |
d.
|
1 |
|
|||||||||||||||||||
23. |
Ştiind că valoarea dată a lui a este 37, determinaţi care este valoarea dată pentru n astfel încât să se afişeze valoarea 0. |
|
|||||||||||||||||||||||||
a.
|
370 |
b.
|
37 |
c.
|
3 |
d.
|
3707 |
|
|||||||||||||||||||
24. |
Stabiliţi o pereche de valori pentru n şi a astfel încât secvenţa să cicleze infinit: |
|
|||||||||||||||||||||||||
a.
|
n=0 şi aÎN* |
b.
|
nÎN* şi a=0 |
c.
|
n=0 şi a=0 |
d.
|
nu există |
|
|||||||||||||||||||
25. |
Ce se afişează dacă valorile iniţiale (citite) pentru n şi a sunt 507 şi respectiv 57? |
|
|||||||||||||||||||||||||
a.
|
1 |
b.
|
2 |
c.
|
nimic |
d.
|
0 |
|
|||||||||||||||||||
26. |
În orice graf neorientat cu n noduri notate 1, 2, ..., n, cu m muchii şi cu gradele nodurilor notate d(1), d(2), ..., d(n) există relaţia: |
|
|||||||||||||||||||||||||
a.
|
d(1)=d(2)=...=d(n) |
b.
|
d(1)+d(2)+...+d(n)=2m |
|
|||||||||||||||||||||||
c.
|
d(1)+d(2)+...+d(n)=m |
d.
|
d(1)+d(2)+...+d(n)=m+n |
|
|||||||||||||||||||||||
27. |
Considerând un graf neorientat având nodurile notate cu 1, 2, 3, 4, 5, corespunzător liniilor matricei de adiacenţă date, stabiliţi dacă nodurile 1 şi 3: |
0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 |
|
||||||||||||||||||||||||
a.
|
sunt noduri izolate |
b.
|
sunt conectate printr-un lanţ |
|
|||||||||||||||||||||||
c.
|
aparţin aceleiaşi componente conexe |
d.
|
sunt noduri adiacente |
|
|||||||||||||||||||||||
28. |
Se consideră un graf neorientat cu 7 noduri şi 3 muchii. Numărul de componente conexe din care poate fi format graful este: |
|
|||||||||||||||||||||||||
a.
|
exact 4 |
b.
|
cel puţin 5 |
c.
|
4 sau 5 |
d.
|
3 sau 4 |
|
|||||||||||||||||||
29. |
Se consideră un graf orientat cu 6 noduri etichetate
cu numere de la 1 la 6 şi 6 arce astfel încât există un arc de la
fiecare nod cu eticheta i către un nod cu eticheta i*2 dacă există un astfel de nod sau către nodul cu eticheta
i –1 în caz contrar. Care este lungimea maximă a unui drum în graf?
(lungimea drumului=numărul arce) |
|
|||||||||||||||||||||||||
a.
|
2 |
b.
|
4 |
c.
|
Ą |
d.
|
3 |
|
|||||||||||||||||||
30. |
Considerând un graf orientat având matricea de adiacenţă alturată, stabiliţi câte dintre nodurile grafului au gradul interior (intern) egal cu gradul exterior (extern): |
0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 |
|
||||||||||||||||||||||||
a.
|
2 |
b.
|
1 |
c.
|
3 |
d.
|
0 |
|
|||||||||||||||||||
31. |
Se consideră un arbore cu următoarele
proprietăţi: rădăcina este nodul 1 (considerat de nivel
1) şi fiecare nod i
(cu 1Ł i Ł 3) aflat pe nivelul j are ca descendenţi nodurile i+j şi i+2*j. Nodurile i cu (cu i > 3) sunt noduri terminale (frunze). Stabiliţi care dintre vectorii
următori este vectorul de taţi (sau de predecesori)
corespunzător arborelui: |
|
|||||||||||||||||||||||||
a.
|
0 1 1 2 2 3
3 |
b.
|
0 1 1 2 3 2
3 |
|
|||||||||||||||||||||||
c.
|
0 –1 1 –1
–1 1 1 |
d.
|
0 1 2 2 1 3
3 |
|
|||||||||||||||||||||||
32. |
Orice graf neorientat cu n noduri şi n–1 muchii |
|
|||||||||||||||||||||||||
a.
|
este aciclic şi neconex |
b.
|
este conex şi conţine un ciclu |
|
|||||||||||||||||||||||
c.
|
este conex dacă şi numai dacă este aciclic |
d.
|
este un arbore |
|
|||||||||||||||||||||||
33. |
Orice graf neorientat cu n noduri are o matrice de adiacenţă cu următoarea proprietate: |
|
|||||||||||||||||||||||||
a.
|
are suma elementelor egală cu n |
b.
|
este simetrică faţă de diagonala secundară |
|
|||||||||||||||||||||||
c.
|
este simetrică faţă de diagonala principală |
d.
|
este formată numai din valorile 0, 1 şi –1 |
|
|||||||||||||||||||||||
34. |
Care dintre următoarele matrice poate fi matricea de adiacenţă a grafului din figura alăturată? |
|
|
||||||||||||||||||||||||
a.
|
1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 |
b.
|
0 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 |
c.
|
0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 |
d.
|
0 1 0 1 1 0 0 1 0 0 0 1 1 1 1 0 |
|
|||||||||||||||||||
35. |
Se consideră graful neorientat având nodurile notate cu 1, 2, 3, 4, 5,
corespunzător liniilor matricei de adiacenţă alăturate. Stabiliţi care
dintre următoarele propoziţii este adevărată. |
0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0 |
|
||||||||||||||||||||||||
a.
|
orice muchie s-ar elimina graful devine aciclic |
b.
|
graful este aciclic |
|
|||||||||||||||||||||||
c.
|
orice nouă muchie s-ar adăuga graful devine conex |
d.
|
graful este conex |
|
|||||||||||||||||||||||
În următorii 10 itemi se consideră: r, i, x şi y variabile întregi, a şi b variabile reale, iar v un vector cu 100 de componente reale. În secvenţele pseudocod s-a notat cu x%y restul împărţirii întregi a lui x la y şi cu [x/y] partea întreagă a valorii raportului numerelor x şi y. |
|
||||||||||||||||||||||||||
36. |
Ce valoare trebuie să aibă iniţial variabila n astfel încât ca urmare a executării algoritmului alăturat să se afişeze 360? |
pentru i=1,5 execută
nßn*i sfârşit
pentru scrie n |
|
||||||||||||||||||||||||
a.
|
0 |
b.
|
2 |
c.
|
1 |
d.
|
3 |
|
|||||||||||||||||||
37. |
Care dintre programele următoare şi afişează numai numere prime? |
|
|||||||||||||||||||||||||
a.
|
pentru i=2,100 execută y=2 cât timp i%y=0
execută y=y+1 dacă y=i
atunci scrie y sfârşit pentru |
b.
|
pentru i=2,100 execută y=1 cât timp i%yą0
execută y=y+1 dacă y=i
atunci scrie y sfârşit pentru |
|
|||||||||||||||||||||||
c.
|
pentru i=2,100 execută y=1 repetă y=y+1
până când i%y=0 dacă y=i
atunci scrie y sfârşit pentru |
d.
|
y=2 pentru i=2,100 execută cât timp i%yą0
execută y=y+1 dacă y=i
atunci scrie y sfârşit pentru |
|
|||||||||||||||||||||||
38. |
Stabiliţi care dintre următoarele expresii este adevărată dacă şi numai dacă x este număr natural impar |
|
|||||||||||||||||||||||||
a.
|
(x>0) || (x % 2!=0) |
b.
|
(x>=0) && (x/2=1) |
|
|||||||||||||||||||||||
c.
|
(x>0) && (x % 2=1) |
d.
|
(x>=0) || (x % 2!=0) |
|
|||||||||||||||||||||||
39. |
Stabiliţi care dintre
următoarele expresii este adevărată dacă şi numai
dacă x aparţine
intervalului închis [a,b] |
|
|||||||||||||||||||||||||
a.
|
(x>a) && (x<b) |
b.
|
(x>=a) || (x<=b) |
|
|||||||||||||||||||||||
c.
|
(x<a) && (x>b) |
d.
|
!((x<a) || (x>b)) |
|
|||||||||||||||||||||||
40. |
Să se completeze secvenţa lipsă (marcată prin puncte de suspensie) din algoritmul alăturat astfel încât acesta să determine şi să memoreze în variabila x cea mai mare cifră ce apare în scrierea numărului natural r. |
x ß 0 cât timp r>0 execută y ß
r %
10 dacă x<y
atunci x ß y ... sfârşit cât timp |
|
||||||||||||||||||||||||
a.
|
rß(r-x)/10 |
b.
|
rß(r-y)/10 |
c.
|
rßr % 10 |
d.
|
yß [y/10] |
|
|||||||||||||||||||
41. |
Variabila r, iniţial egală cu 0, va memora, la finalul executării algoritmului alăturat, numărul de valori distincte existente în vectorul v. Care este valoarea sau expresia care trebuie plasată în locul punctelor de suspensie? |
pentru x=1,100 execută aßvx
; iß1 pentru y=1,...
execută dacă vy=a
atunci iß0 sfârşit
pentru rßr+i sfârşit pentru |
|
||||||||||||||||||||||||
a.
|
nu
există |
b.
|
100 |
c.
|
x |
d.
|
x-1 |
|
|||||||||||||||||||
42. |
Pentru ordonarea descrescătoare a valorilor celor 100 de componente ale vectorului v, ordonare realizată prin metoda bulelor, nu sunt necesare mai mult de |
|
|||||||||||||||||||||||||
a.
|
9701
comparări |
b.
|
4950 comparări |
c.
|
9900 comparări |
d.
|
100 comparări |
|
|||||||||||||||||||
43. |
Se consideră secvenţa alăturată care determină cel mai mare divizor comun al numerelor memorate în variabilele x şi y. Ce valoare trebuie afişată la sfârşitul structurii repetitive? |
repetă rßx
% y xßy yßr până când r=0 |
|
||||||||||||||||||||||||
a.
|
x%y |
b.
|
x |
c.
|
r |
d.
|
y |
|
|||||||||||||||||||
44. |
Ştiind că variabila r memorează iniţial valoarea 0, stabiliţi ce reprezintă valoarea memorată de aceasta după încheierea secvenţei alăturate: |
pentru i=1,y-1 execută dacă i%x=0
atunci rßr+1 sfârşit pentru |
|||||||||||||||||||||||||
a.
|
numărul de multipli ai lui y mai mici decât x |
b.
|
numărul de divizori ai lui y mai mici decât x |
|
|||||||||||||||||||||||
c.
|
numărul de divizori ai lui x mai mici decât y |
d.
|
numărul de multipli ai lui x mai mici decât y |
|
|||||||||||||||||||||||
45. |
Ştiind că valoarea iniţială a variabilei y este 0, stabiliţi care dintre secvenţele următoare afişează şirul 0 1 3 6 10 15 21 28 36 45 55 ? |
|
|||||||||||||||||||||||||
a.
|
pentru i=1,10 execută scrie y y=y+i sfârşit pentru |
b.
|
pentru i=1,11 execută scrie y+i sfârşit pentru |
|
|||||||||||||||||||||||
c.
|
pentru i=1,10 execută y=y+i scrie y sfârşit pentru |
d.
|
pentru i=1,11 execută scrie y y=y+i sfârşit pentru |
|
|||||||||||||||||||||||