TEST
1
Subiectul
I
1.
Care din următoarele
declaraţii reprezintă declararea corectă a unui tablou de maxim 20 de elemente
numere naturale?
a) int
x[2][10];
b) char
x[20];
c) int
x[19];
d) unsigned
int x[2][5][2];
e) int
x[21];
f) long
x[1][20];
2.
Se consideră următorul
algoritm descris în pseudocod:
citeste
y
citeşte
x
nr¬0
repetă
dacă x=2*y atunci
nr¬nr+1
sfârşit dacă
y¬x
citeste x
până când
x=0
scrie nr
a)
Deduceţi ce se va afişa,
dacă valorile citite ale lui x sunt, în ordine, 2, -3, -6, 4, 8, 16,
0;
b)
Formulaţi un enunţ pentru
problema dată;
c)
Rescrieţi secvenţa folosind
o structură repetitivă cu test iniţial.
3.
Pentru funcţia recursivă de
mai jos, deduceţi ce se afişează în urma apelului cout<<f(5,21), apoi precizaţi ce
returnează funcţia pe caz general.
int
f(int
x,int y)
{if
(x>y) return 0;
else return
1+f(x,y-x)
}
Subiectul
II
1.
Scrieţi un program pentru
calculul sumei:
2.
Scrieţi un subprogram
recursiv care returnează maximul dintre elementele pare ale unui şir de numere
întregi. Şirul, împreună cu numărul său de elemente, se transmit ca parametri
subprogramului.
Fie
două fişiere f1.txt şi f2.txt, care conţin pe primul rând
un număr natural n iar pe următorul rând,
n numere întregi. Să se
genereze un al treilea fişier f3.txt care să conţină numerele
din primele două fişiere, în ordine crescătoare. Să se afişeze conţinutul
fişierului f3.txt.
f1.txt 10 6 7 1 0 1 3 6 4 4 21
Ex:
f2.txt 6 5 8 5 14 16 9
f3.txt 0 1 1 3 4 4 5 5
6 6 7 8 9 14 16 21
Subiectul
IV
La
un concurs sportiv s-au înscris n concurenţi, având numerele de concurs
1,
2, ... ,n. În
prima zi a competiţiei vor intra în concurs p concurenţi. Afişaţi toate
posibilităţile de a stabili ordinea intrării în concurs a celor p
concurenţi, ştiind că:
a)
nu pot intra unul după altul
sportivi cu numere de concurs consecutive;
b)
trebuie respectată ordinea
crescătoare a numerelor de concurs ale sportivilor.
Ex: Pentru n=7,
p=3, se va afişa :
1 3
5, 1 3 6, 1 3 7, 1 4 6, 1 4 7, 1 5 7, 2 4 6, 2 4 7, 2 5 7, 3 5
7,