Documente Academic
Documente Profesional
Documente Cultură
ATESTAT
1. Scrieţi un program C/C++ care citeşte de la tastatură două caractere c1 şi c2, şi un
text având cel mult 250 caractere (spaţii şi litere ale alfabetului englez), pe care îl
modifică înlocuind toate apariţiile caracterului memorat în c1 cu cel memorat în c2 şi
toate apariţiile caracterului memorat în c2 cu cel memorat în c1. Programul afişează
pe linii separate ale ecranului atât textul iniţial cât şi textul ob ţinut după efectuarea
înlocuirilor.
Exemplu: dacă pentru c1 se citeşte a, pentru c2 se citeşte o iar textul citit este:
se va afişa :
#include<iostream>
#include<stdio.h>
#include<string.h>
int main()
{int i;
char c1='a',c2='o',v[250];
cin.get(v,250);
puts(v);
for(i=0;i<strlen(v);i++)
if(v[i]==c1)
v[i]=c2;
else
if(v[i]==c2)
v[i]=c1;
puts(v);}
2. Să se scrie un program C/C++ care citeşte de la tastatură un cuvânt format din cel
mult 20 de caractere, doar litere mici ale alfabetului englez. Programul determin ă
transformarea cuvântului citit prin înlocuirea fiec ărei vocale a cuvântului, cu litera
mare corespunzătoare, restul literelor nemodificându-se, ca în exemplu. Programul
Pagină 1 din 13
afişează pe ecran cuvântul obţinut, pe o singură linie. Se consideră vocale literele din
mulţimea {a,e,i,o,u}.
#include<iostream>
#include<stdio.h>
#include<string.h>
main()
{int i,j;
char v[10];
char a[6]="aeiou";
cin.get(v,20);
for(i=0;i<strlen(v);i++)
{for(j=0;j<strlen(a);j++)
if(v[i]==a[j])
v[i]=v[i]-32;}
puts(v);
3. Scrieţi definiţia completă a subprogramului interval care are 2 parametri prin care
primeşte un tablou unidimensional cu maximum 100 de numere naturale mai mici
decât 1000 şi numărul de elemente din tabloul unidimensional. Subprogramul
returnează numărul de elemente din tabloul unidimensional care aparţin intervalului
închis determinat de primul şi respectiv ultimul element al tabloului.
#include<iostream>
using namespace std;
int v[100],n;
int interval(int x[100],int u)
{int a,b,i,m=0;
a=x[1];
b=x[u];
if(a<b)
for(i=1;i<=n;i++)
{if(x[i]>=a && x[i]<=b)
Pagină 2 din 13
m=m+1;}
else
for(i=1;i<=n;i++)
{if(x[i]>=b && x[i]<=a)
m=m+1;}
return m;}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{cout<<"v["<<i<<"]=";cin>>v[i];}
cout<<interval(v,n);
}
#include<iostream>
int main()
{int n,j,k,i,v[20],aux;
cout<<"n=";cin>>n;
cout<<"k=";cin>>k;
for(i=1;i<=n;i++)
{cout<<"v["<<i<<"]=";cin>>v[i];}
for(i=1;i<k-1;i++)
for(j=i+1;j<k;j++)
if(v[i]>v[j])
{aux=v[i];
v[i]=v[j];
v[j]=aux;}
for(i=k+1;i<n;i++)
for(j=i+1;j<=n;j++)
if(v[i]<v[j])
Pagină 3 din 13
{aux=v[i];
v[i]=v[j];
v[j]=aux;}
for(i=1;i<=n;i++)
cout<<v[i]<<" ";}
#include<iostream>
int n,p,c;
void cmmd(int n)
{int gasit=0,d=2;
while((d<n/2)&&(gasit==0))
{if(n%d==0)
{c=d;
gasit=1;}
else
d++;}
p=0;
while(n%c==0)
{n=n/c;
p=p+1;}}
int main()
{cout<<"n=";cin>>n;
cmmd(n);
Pagină 4 din 13
6. Scrieţi un program C/C++ care citeşte de la tastatură două numere naturale nenule n şi m (2≤m≤10,
2≤n≤10) şi care construieşte în memorie şi apoi afişează o matrice A cu n linii (numerotate de la 1 la n) şi
m coloane (numerotate de la 1 la m) cu proprietatea că fiecare element Aij memorează cea mai mică
dintre valorile indicilor i şi j (1≤i≤n, 1≤j≤m). Matricea se va afişa pe ecran, câte o linie a matricei pe câte
o linie a ecranului, elementele fiecărei linii fiind separate prin câte un spaţiu. Exemplu: pentru n=4 şi
m=5 se va afişa matricea alăturată.
11111
12222
12333
12344
#include <conio.h>
int main()
cout<<"n="; cin>>n;
cout<<"m="; cin>>m;
if(i<=j)
b[i][j]=i+1;
else
b[i][j]=j+1;
cout<<b[i][j]<<' ';
cout<<endl;
getch();
return 1;
Pagină 5 din 13
}
7. Scrieţi un program C/C++ care citeşte de la tastatură un cuvânt format din cel mult 20 de caractere, doar
litere ale alfabetului englez. Programul determină transformarea cuvântului citit prin înlocuirea fiecărei litere
mici a cuvântului cu litera mare corespunzătoare, restul literelor nemodificându-se, ca în exemplu. Programul
afişează pe ecran cuvântul obţinut.
Exemplu: pentru cuvântul: bACAlaUrEaT se va afişa pe ecran: BACALAUREAT
#include<iostream>
#include<conio.h>
#include<string.h>
int main()
char cuvant[21];
cin>>cuvant;
cout<<strupr(cuvant);
getch();
return 1;
8. Scrieţi un program C/C++ care citeşte de la tastatură un număr natural n (2≤n≤24) şi construieşte în
memorie o matrice cu n linii şi n coloane ale cărei elemente vor primi valori după cum urmează:
- elementele aflate pe diagonala principală a matricei vor primi valoarea 0
- elementele de pe prima coloană, cu excepţia celui aflat pe diagonala principală vor primi valoarea n
- elementele de pe a doua coloană, cu excepţia celui aflat pe diagonala principală vor primi valoarea n-
1 ...
- elementele de pe ultima coloană, cu excepţia celui aflat pe diagonala principală vor primi valoarea 1
Programul va afişa matricea astfel construită pe ecran, câte o linie a matricei pe câte o linie a ecranului,
cu câte un spaţiu între elementele fiecărei linii (ca în exemplu). Exemplu: pentru n=4 se va afişa matricea
alăturată.
0321
4021
4301
Pagină 6 din 13
4320
#include <iostream>
#include <conio.h>
int main()
cout<<"n="; cin>>n;
if(i==j)
b[i][j]=0;
else
b[i][j]=n-j+1;
cout<<b[i][j]<<' ';
cout<<endl;
getch();
return 1;
9. Se consideră un text cu maximum 255 de caractere în care cuvintele sunt separate prin unul
sau mai multe spaţii. Primul caracter din textul citit este o literă, iar cuvintele sunt formate numai
din litere mici ale alfabetului englez. Scrieţi un program C/C++ care citeşte de la tastatură textul
şi îl transformă înlocuind prima literă a fiecărui cuvânt cu litera mare corespunzătoare, restul
caracterelor rămânând nemodificate. Textul astfel transformat va fi afişat pe ecran.
Exemplu: dacă de la tastatură se introduce textul: ana are mere se va afişa pe ecran: Ana Are Mere.
Pagină 7 din 13
#include<iostream>
#include<conio.h>
#include<string.h>
int main()
cin.get(text,255);
cout<<char(int(text[0])-32);
cout<<char(int(text[i])-32);
else
cout<<text[i];
getch();
return 1;
10. Se consideră un text cu maximum 255 de caractere, format din litere mici ale alfabetului englez
şi spaţii. Textul conţine cel puţin o consoană. Scrieţi un program C/C++ care citeşte de la tastatură
textul şi afişează pe ecran numai ultima consoană care apare în text.
Exemplu: dacă de la tastatură se introduce textul mare este apa pe ecran se va afişa: p
#include<iostream>
#include<conio.h>
#include<string.h>
int test(char x)
Pagină 8 din 13
return 0;
else
return 1;
int main()
cin.get(text,255);
if(test(text[i]))
aux=text[i];
cout<<aux;
getch();
return 1;
11. Se consideră tabloul bidimensional cu n linii şi n coloane ce conţine numere naturale cu cel
mult patru cifre fiecare. Scrieţi programul C/C++ care citeşte de la tastatură numărul natural n
(2≤n≤23) şi cele n*n elemente ale tabloului şi apoi afişează pe ecran elementele primului pătrat
concentric, separate prin câte un spaţiu. Pătratul este parcurs în sensul acelor de ceasornic
începând din colţul său stânga-sus, ca în exemplu. Primul pătrat concentric este format din prima
şi ultima linie, prima şi ultima coloană a tabloului.
Exemplu: pentru n=5 şi tabloul alăturat, 12345
67891
23456
78912
34567 se va afişa: 1 2 3 4 5 1 6 2 7 6 5 4 3 7 2 6
#include <iostream>
#include <conio.h>
Pagină 9 din 13
int main()
cout<<"n="; cin>>n;
cout<<"b["<<i<<"]["<<j<<"]=";
cin>>b[i][j];
cout<<b[i][j]<<' ';
cout<<endl;
cout<<b[0][i]<<' ';
cout<<b[i][n-1]<<' ';
cout<<b[n-1][i]<<' ';
cout<<b[i][0]<<' ';
getch();
Pagină 10 din 13
return 1;
12. Scrieţi un program C/C++ care citeşte de la tastatură două valori naturale nenule m şi n (m≤10, n≤10)
şi apoi m*n numere naturale nenule cu cel mult 4 cifre fiecare, reprezentând elementele unei matrice cu
m linii şi n coloane. Programul determină apoi valorile minime de pe fiecare linie a matricei şi le afişează
pe o linie a ecranului separate prin câte un spaţiu.
Exemplu: pentru m=3, n=5 şi matricea
5 13 7 2 3
9 6 12 9 10
36547
se afişează pe ecran valorile 3 6 2 (cea mai mică valoare de pe prima linie a matricei este 3, cea mai
mică valoare de pe linia a doua este 6, cea mai mică valoare de pe linia a treia este 2)
#include<iostream>
#include<conio.h>
int main()
int a[20][20],b[10],m,n,i,j,min;
cout<<"nr linii";cin>>n;
cout<<"nr de coloane";cin>>m;
for(i=0;i<n;i++)
{ cin>>a[i][0]; min=a[i][0];
for(j=1;j<m;j++)
cin>>a[i][j];
if(a[i][j]<min)
min=a[i][j];
b[i]=min;
Pagină 11 din 13
}
for(i=0;i<n;i++)
cout<<b[i]<<' ';
getch();
return 1;
13. Scrieţi un program C/C++ care citeşte de la tastatură un număr natural cu exact 5 cifre şi
construieşte în memorie o matrice cu 5 linii şi 5 coloane, numerotate de la 1 la 5, formată astfel:
- elementele de pe linia 1, au toate valoarea egală cu cifra unităţilor numărului citit;
- elementele de pe linia 2, au toate valoarea egală cu cifra zecilor numărului citit;
- elementele de pe linia 3, au toate valoarea egală cu cifra sutelor;
- elementele de pe linia 4, au toate valoarea egală cu cifra miilor;
- elementele de pe linia 5, au toate valoarea egală cu cifra zecilor de mii.
Programul afişează pe ecran matricea astfel construită, câte o linie a matricei pe câte o linie a ecranului,
elementele de pe aceeaşi linie fiind separate prin câte un spaţiu. Exemplu: dacă se citeşte numărul 28731
matricea construită va fi cea alăturată.
1 1 1 1 1
3 3 3 3 3
7 7 7 7 7
8 8 8 8 8
2 2 2 2 2
#include <iostream>
#include <conio.h>
int main()
cout<<"n="; cin>>n;
while(n)
a[k]=n%10;
Pagină 12 din 13
n/=10;
k++;
b[i][j]=a[i];
cout<<b[i][j]<<' ';
cout<<endl;
getch();
return 1;
Pagină 13 din 13