Sunteți pe pagina 1din 6

1.

void ex(int x)
{ if(x>3) {
cout<<x%10;
ex(x/10);
}
else
cout<<"*";
}
a) Scriei ce se va afia n urma apelului ex(25436).
b) Scriei toate valorile numere naturale pe care le poate avea o variabil n, astfel nct pentru
apelul ex(n) s se afieze doar caracterul *.
Se afiseaza 6345*, ex: 0,1,2,3
2. Scriei definiia complet a unui subprogram sub, cu patru parametri, care primete prin
intermediul parametrilor:
a i b, dou cifre distincte (a<10, b<10, ab);
n, un numr natural nenul (0 < n < 100);
v, un tablou unidimensional care memoreaz un ir de n numere naturale, fiecare avnd
cel mult nou cifre.
Subprogramul sub determin modificarea irului de numere primit prin parametrul v realiznd
eliminarea tuturor numerelor care conin n scrierea lor cel puin o cifr a i nu conin nicio
cifr b. De asemenea subprogramul va furniza prin intermediul parametrului n numrul de
numere din irul modificat, iar prin parametrul v tabloul modificat. Dac n irul primit nu
exist niciun numr care s conin n scrierea sa cifra a i s nu conin cifra b, atunci
valorile parametrilor n i v nu se vor modifica.
Exemplu.
Pentru valorile n=10, v=(3551, 149, 3798, 502, 75, 2515, 51, 151, 489, 653), a=5i b=2 ale
parametrilor, n urma apelului, subprogramului subva furniza prin parametrii indicai
valorile n=5 i v=(149, 3798, 502, 2515, 489).
3.int f(int x) {
if(x==0) return 1;
else
if(x%10<5)
return f(x/10);
else
return x%10+f(x/10)*10;
}

a) Scriei valoarea care se obine n urma apelului f(374265).


b) Scriei cea mai mare valoare de 4 cifre pe care o poate avea o variabil n, astfel nct
pentru apelul f(n) s se obin valoarea 1.
4.Scriei definiia complet a unui subprogram sub, cu doi parametri, care primete prin
intermediul parametrilor:
- n, un numr natural nenul (0 < n < 100);
- v, un tablou unidimensional care memoreaz un ir de n numere naturale, fiecare avnd
cel mult patru cifre.
Subprogramul sub determin cel mai mic i cel mai mare numr din irului de numere primit
prin parametrul v i modific acest ir prin interschimbarea primei apariii a celui mai mic
numr din ir cu ultima apariie a celui mai mare numr din ir. De asemenea subprogramul va
furniza prin intermediul parametrului v tabloul modificat. Dac irul nu conine cel puin dou
numere distincte, atunci irul de numere primit prin parametrul v nu se va modifica.
Exemplu. Pentru valorile n=10, v=(35,1,52,98,1,98,51,11,98,65), ale parametrilor, n urma
apelului, subprogramului sub va furniza prin parametrul v tabloul
(35,98,52,98,1,98,51,11,1,65).

5.void f(int x) {
if(x>9) {
cout<<x%10;
f(x/10)
cout<<"*";
}
else cout<<"#";
}
a) Scriei ce se va afia n urma apelului f(12345).
b) Scriei toate valorile numere naturale pe care le poate avea o variabil n, astfel nct pentru
apelul f(n) s se afieze doar caracterul #.
Se afiseaza 5432#****
6. Scriei definiia complet a unui subprogram sub, cu trei parametri, care primete prin
intermediul parametrilor:
- x, un numr natural, avnd cel mult patru cifre;
- n, un numr natural nenul (0 < n < 100);
- v, un tablou unidimensional care memoreaz un ir de n numere naturale, fiecare avnd
cel mult patru cifre;
Subprogramul sub determin dublarea fiecrei apariii a valorii parametrului x n irul de
numere primit prin parametrul v. De asemenea subprogramul va furniza prin intermediul
parametrului n numrul de numere din irul modificat, iar prin parametrul v tabloul modificat.
Dac valoarea parametrului x nu apare n irul de numere atunci valorile parametrilor nu se
vor modifica.
Exemplu. Pentru valorile n=10, v=(51, 19, 3, 52, 19, 215, 19, 19, 4, 65), x=19 ale
parametrilor, n urma apelului, subprogramului sub va furniza prin parametrii indicai
valorile n=14 i v=(51, 19, 19, 3, 52, 19, 19, 215, 19, 19, 19, 19, 4, 65).
7. S se construiasc o matrice cu n linii i m coloane care conine pe prima coloan, de sus n
jos, toate numerele naturale de la 1 la n, n ordine cresctoare, pe coloana a doua, de sus n jos,
toate numerele naturale de la 2 la n+1, n ordine cresctoare, pe a treia coloan, de sus n jos,
toate numerele naturale de la 3 la n+2, n ordine cresctoare, pe a patra coloan, de sus n jos,
toate numerele naturale de la 4 la n+3, n ordine cresctoare i aa mai departe pn la coloana
m. Scriei programul care citete de la tastatur dou valori naturale n i m (2<n<25, 2<m<25),
construiete matricea conform cerinei i o afieaz pe ecran, pe linii, cu spaii ntre elementele
de pe fiecare linie.
De exemplu, dac se citete de la tastatur n=3 i m=5, se va construi i se va afia pe ecran
matricea:
12345
23456
34567

8. Fiierul text bac.in conine un ir s de cel mult un milion de naturale nenule, formate
fiecare din cel mult 9 cifre, separate prin cte un spaiu.
Scriei un program care, determin i afieaz pe ecran lungimea maxim a unei secvene din
ir format doar din numere pare. O secven a unui ir const n elemente aflate pe poziii
consecutive n irul considerat.
Exemplu: dac fiierul bac.in are coninutul:
12 6 245 18 8 2 36 39 34 8 36 11 10 12 102 24 881
atunci, pe ecran se va afia numrul 4 reprezentnd lungimea maxim a unei secvene format
doar din numere pare din irul dat.
9. Un ir cu maximum 255 de caractere conine cuvinte formate numai din litere mici ale
alfabetului englez. Fiecare cuvnt este urmat de un caracter *. Scriei un program C/C++ care
citete un astfel de ir i afieaz pe ecran irul obinut prin eliminarea tuturor cuvintelor din
ir care au ca sufix primul cuvnt din ir, ca n exemplu. Un cuvnt a este sufix pentru
cuvntul b dac exist un cuvnt c de lungime mai mare sau egal cu 0, astfel nct, prin
alipirea cuvntului a la sfritul cuvntului c, se obine cuvntul b.
Exemplu. Pentru irul:
este*soarele*coboara*peste*creste*la*apus*amestecand*norii*
se va afia:
*soarele*coboara***la*apus*amestecand*norii*

10. Fiierul text bac.in conine un ir s de cel mult un milion de numere naturale nenule,
formate fiecare din cel mult 9 cifre, separate prin cte un spaiu.
Scriei un program care, determin i afieaz pe ecran lungimea maxim a unei secvene din
ir format doar din numere care au suma cifrelor egal cu suma cifrelor primului numr din
secven. O secven a unui ir const n elemente situate pe poziii consecutive n irul
considerat.
Exemplu: dac fiierul bac.in are coninutul:
1 100 10 245 13 22 4 39 5 32 401 3110 11 17 8 26 81
atunci, pe ecran se va afia numrul 4 reprezentnd lungimea maxim a unei secvene format
doar din numere care au fiecare suma cifrelor egal cu 5 i sunt situate pe pozi ii consecutive
n irul dat.

11. S se construiasc o matrice cu n linii i m coloane care conine:


- pe prima coloan, de sus n jos, toate numerele naturale de la 1 la n, n ordine cresctoare;
- pe prima linie, de la stnga la dreapta toate numerele naturale de la 1 la m, n ordine
cresctoare;
Restul elementelor se vor iniializa cu suma elementelor vecine situate n stnga i deasupra
elementului curent, ca n exemplu.
Scriei programul care citete de la tastatur dou valori naturale n i m (2<n<25, 2<m<25),
construiete matricea conform cerinei i o afieaz pe ecran, pe linii, cu spaii ntre
elementele de pe fiecare linie.
De exemplu, dac se citete de la tastatur n=3 i m=5, se va construi i se va afia pe ecran
matricea:
12345
2 4 7 11 16
3 7 14 25 41

12. Fiierul text BAC.TXT conine un ir s de cel mult un milion de numere naturale, formate
fiecare din cel mult 9 cifre, separate prin cte un spaiu
Scriei un program C/C++ care citete numerele din fiier i determin, lungimea secvenei
obinute prin eliminarea din cele dou extremiti ale irului s a unui numr minim de numere,
fr a schimba ordinea celorlalte numere, astfel nct secvena rezultat s nceap cu un
numr format doar din cifre pare i s se termine cu un numr format doar din cifre impare.
Programul va afia pe ecran lungimea secvenei obinute.
De exemplu, dac fiierul BAC.TXT conine numerele:
132 214 62 34 28 34 8 45 18 72 35 12 17 34 4 135 63 81 101
pe ecran se va afia numrul 14, deoarece secvena cutat se obine prin eliminarea
numerelor subliniate i este format din 14 numere

13. S se construiasc o matrice cu n linii i n coloane care conine pe prima linie numerele
naturale de la 1 la n n ordine cresctoare, pe a doua linie numerele naturale de la n+1 la 2n n
ordine descresctoare, pe a treia linie numerele naturale de la 2n+1 la 3n n ordine cresctoare,
pe a patra linie numerele naturale de la 3n+1 la 4n n ordine descresctoare i aa mai departe
pn la linia n. Scriei programul care citete de la tastatur o valoare natural n (2<=n<=50),
construiete matricea conform cerinei i o afieaz pe ecran, pe linii, cu spaii ntre
elementele de pe fiecare linie.
De exemplu, dac se citete de la tastatur n=5, se va construi i se va afia matricea:
12345
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25
14. Scriei definiia complet a subprogramului cifre, cu doi parametri, care primete prin
intermediul parametrului a un numr natural format din maxim 9 cifre i furnizeaz prin al
doilea parametru b numrul obinut prin eliminarea cifrelor lui a aflate pe poziii pare. Cifrele
numrului a se numeroteaz de la dreapta spre stnga, ncepnd cu poziia 0 (corespunztoare
cifrei unitilor).
Exemplu: pentru a=2334157, valoarea returnat prin b va fi 345.
15. Fiierul text bac.in conine, pe prima linie, cel mult 1000000 de numere naturale nenule,
fiecare fiind format din cel mult 9 cifre. Oricare dou numere consecutive sunt desprite
printr-un spaiu.
Scriei un program care, determin i scrie n fiierul bac.out cel mai mare numr natural care
se poate obine din cifrele tuturor numerelor din fiierul bac.in.
Exemplu: dac fiierul bac.in conine numerele 2117 90 885 515 37, atunci fiierul
bac.out trebuie s conin numrul 98877555321110.
16.
a) Scriei valoarea care se obine n urma apelului f(24,2).
b) Scriei cea mai mare valoare de 3 cifre pe care o poate avea o variabil x, astfel nct pentru
apelul f(x,2) s se obin valoarea 0
17. Fiierul numr.in conine pe prima linie un numr natural n, format din cel mult 8 cifre
iar cel puin o cifr este impar.
Se consider subprogramele:
S1 cu doi parametri, a i b, prin intermediul crora primete dou numere naturale formate
fiecare din cel mult 8 cifre; subprogramul determin modificarea coninutului celor doi
parametri a i b prin eliminarea cifrei unitilor numrului coninut de parametrul a, i
mutarea ei la sfritul numrului coninut de parametrul b, returnnd prin intermediul
parametrilor a i b noile numere obinute. De exemplu, pentru valorile 21134 i 61 ale
parametrilor a i b, n urma executrii subprogramului S1 valorile returnate prin
intermediul parametrilor vor fi 2113 i 614.
S2 cu un singur parametru, k, prin intermediul cruia primete un numr natural ( k>1);
subprogramul returneaz numrul natural obinut prin eliminarea fiecrei cifre pare din
numrul k. De exemplu, pentru k=12345, subprogramul S2 va returna 135, iar pentru
k=177 subprogramul S2 va returna 177.

Cerine:
a) Scriei definiia complet a subprogramului S1;
b) Scriei definiia complet a subprogramului S2;
c) S se scrie un program Pascal/C/C++ care s citeasc din fiierul numr.in numrul
n, iar apoi, folosind apeluri utile ale subprogramelor S1 i S2, s afieze pe ecran mesajul DA
dac numrul citit este un palindrom format doar din cifre impare. n caz contrar, va afia
mesajul NU.
Exemple:

Dac fiierul numr.in are coninutul alturat, programul va afia 83109327


pe ecran mesajul NU.
Dac fiierul numr.in are coninutul alturat, programul va afia 3571753
pe ecran mesajul DA.

18. n fiierul date.in se gsesc pe o singur linie, separate prin cte un spaiu, mai multe
numere naturale din intervalul nchis [10,106-1], reprezentnd un ir de numere naturale.
Se consider subprogramele:
S1 cu un singur parametru, k, prin intermediul cruia primete un numr natural nenul cu
cel mult 6 cifre, k>9; subprogramul returneaz numrul obinut prin eliminarea ultimei
cifre a valorii parametrului k;
Exemplu. Pentru k=12345 subprogramul returneaz valoarea 1234.
S2 cu un singur parametru, k, prin intermediul cruia primete un numr natural nenul cu
cel mult 6 cifre, k>9; subprogramul returneaz valoarea 1 dac valoarea parametrului k este
un numr prim, altfel returneaz valoarea 0.
Cerine:
a) Scriei definiia complet a subprogramului S1;
b) Scriei definiia complet a subprogramului S2;
c) S se scrie un program Pascal/C/C++ care citete irul de numere din fiierul date.in
i nlocuiete fiecare numr x din ir cu cel mai mare prefix numr prim al su. Dac nu exist
un astfel de prefix, numrul x va fi nlocuit n ir cu valoarea 0. Numerele din irul obinut se
vor afia pe ecran, pe prima linie, separate prin cte un spaiu. Se vor folosi apeluri utile ale
subprogramelor S1 i S2 pentru determinarea prefixelor numere prime.
Exemplu. Dac fiierul date.in are coninutul 13736 12345 22349 226
alturat, programul va afia numerele urmtoare:
1373 0 22349 2

19.n fiierul date.in se gsesc pe o singur linie, separate prin cte un spaiu, mai multe
numere naturale din intervalul nchis [10,106-1].
Se consider subprogramele:
S1 cu un singur parametru, k, prin intermediul cruia primete un numr natural nenul cu
cel mult 6 cifre (k>9); subprogramul returneaz cea mai mare cifr a valorii parametrului
k;
Exemplu. Pentru k=125353 subprogramul returneaz valoarea 5.
S2 cu doi parametri, k i c. Prin intermediul parametrului k primete un numr natural
nenul cu cel mult 6 cifre, k>9, iar prin parametrul c primete o cifr. Subprogramul
determin eliminarea tuturor apariiilor cifrei c n numrul k i returneaz numrul rezultat.
Dac numrul k nu conine cifra c atunci subprogramul va returna valoarea lui k
nemodificat.
Exemplu. Pentru k=125353 i cifra c=3 subprogramul returneaz valoarea 1255, iar
pentru cifra c=7 subprogramul returneaz valoarea 125353.

Cerine:
a) Scriei definiia complet a subprogramului S1;
b) Scriei definiia complet a subprogramului S2;
c) S se scrie un program Pascal/C/C++ care s determine pentru fiecare numr x,
citit din fiierul date.in, cel mai mare numr natural care se poate construi din cifrele
distincte ale acestuia, folosind apeluri utile ale subprogramelor S1 i S2. Numerele construite
se vor afia pe ecran, n linie, separate prin cte un spaiu, n ordinea n care au fost construite.
Exemplu. Dac fiierul date.inare coninutul 13736 12345 22349 222
alturat, programul va afia numerele urmtoare:
7631 54321 9432 2