Você está na página 1de 15

Tipuri de date. Operatori. 1. Ce valoare va avea variabila a la sfarsitul executarii secventei de program?

int a=13, b=4; b=a+b/2; a=a-b/2*a; -78 2. Fie a,b,c si d patru variabile reale. Care dintre urmatoarele instruciuni atribuie variabilei d media aritmetica a valorilor variabilelor a,b si c? a. b. c. d. 3. a. b. c. d. e. f. d=(a+b+c)/2 d=a/3+b/3+c/3 d=a+b+c/3 d=(a+b+c)/4-1 Care dintre urmatoarele declaratii de variabile sunt eronate sintactic si de ce? float a=b=0; double z=x/2; char d=120; int k; i; long a=0,b=a+3; unsigned float a

4. Se considera a si b, doua variabile de tip int. Variabilei a i se atribuie valoarea 1, iar lui b, valoarea 32767. Care este valoarea expresiei a+b? a. b. c. d. 5. 32768 -1 -32768 Nu se poate calcula valoarea acestei expresii pentru a atribui variabilei reale x rezultatul expresiei
2ab c 2 , unde a,bsi c 0.25

desemneaza variabile reale, se utilizeaza instructiunea: a. b. c. d. x=(2*a*b)-c*c/0.25 x=2*a*b-c*c/0.25 x=(2*a*b)-(c*c)*4 x=(2*a*b-c*c)*4

6. Care dintre urmatoarele expresii este adevarata daca si numai daca numarul impar x este negativ? a. (x%2==1) && (x<0) b. (x%2!=0) || (x<0) c. ! ((x%2==0) || (x>=0)) d. ! ((x%2==0) && (x>=0)) e. x%2=1 && x<0
1

7. Care dintre urmatoarele expresii este adevarata daca si numai daca valorile variabilelor x si y sunt numere naturale consecutive? a. b. c. d. e. x-y==1 (x==1) && (y==2) (x-y==1) && (y-x==1)
y = x 1

(x-y==1) || (y-x==1)

8. Care dintre urmatoarele expresii au valoare diferita de 0, daca si numai daca variabilele intregi a, b si c contin trei valori distincte, doua cate doua? a. b. c. d. a != b != c != a ! (a==b && b==c && a==c) (a!=b) && (b!=c) ! (a==b) && !(b==c || a==c)

Instructiuni de citire/scriere. Atribuire 9. Se citeste o variabila r, reprezentand raza unui cerc. Aflati lungimea si aria cercului. #include <iostream.h> #include <conio.h> void main(){ float r,l,a; cout<<Dati raza cercului:; cin>>r; l=2*3.14*r; a=3.14*r*r; cout<<Lungimea cercului este <<l<<endl; cout<<Aria cercului este <<a<<endl; getch();} 10. Se citesc trei valori reale, pozitive, a, b,c. Presupunand ca ele pot forma laturile unui triunghi, aflati perimetrul si aria acestuia. Pentru arie, folositi formula lui Heron s = p( p a )( p b )( p c ) , unde p=semiperimetrul. #include <iostream.h> #include <math.h> #include <conio.h> float a,b,c,p,s; void main (){ cout<<"a="; cin>>a; cout<<"b="; cin>>b; cout<<"c="; cin>>c; p=a+b+c; cout<<"perimentrul triunghiului"<<p<<endl; p=p/2;
2

s=sqrt(p*(p-a)*(p-b)*(p-c)); cout<<"aria este "<<s<<endl; getch();} 11. Se citesc x1, y1, x2, y2, coordonatele plane a doua puncte A(x1, y1), B(x2, y2). Aflati distanta dintre puncte. Indicatie: AB = ( x1 x 2 ) 2 +( y1 y2 ) 2 #include <iostream.h> #include <math.h> #include <conio.h> float x1,1x2,y1,y2,ab; void main (){ cout<<"Coordonatele lui A"; cin>>x1>>x1; cout<<"Coordonatele lui B"; cin>>x2>>y2; ab=sqrt((x1-x2)*(x1-x2)+ (y1-y2)*(y1-y2)); cout<<"Lungimea segnetului AB este "<<ab<<endl; getch();} 12. Doua corpuri in miscare se deplaseaza unul catre celalalt, cu vitezele v1 si v2, intre doua locatii A si B, aflate la distanta d, una fata de alta. Aflati timpul t dupa care se intalnesc si la ce distanta, d1,fata de A. d1=v1*t d-d1=v2*t Avem, deci, d1* t = d v 2 * t t = #include <iostream.h> #include <conio.h> void main(){ float v1,v2,t,d,d1; cout<<Dati vitezele v1 si v2:; cin>>v1>>v2; cout<<Dati distanta d:; cin>>d; t=d/(v1+v2); d1=v1*d/(v1+v2); cout<<Se intalnesc dupa timpul <<t<< la distanta <<d1<< fata de A <<endl; getch();}
d v1* d , iar d1 = v1 + v 2 v1 + v 2

Instructiunea conditionala 13. Se citeste un numar natural. Sa se verifice daca este par sau impar. #include <iostream.h> #include <conio.h> void main(){ clrscr( ); int n; cout<<Dati n:; cin>>n; if (n%2==0) cout <<par; else cout <<impar; getch( );} 14. Se citete un numr real. S se afieze dac este pozitiv, negativ sau nul. #include <iostream.h> #include <conio.h> void main(){ float n; cout<<"dati n"; cin>>n; if (n>0) cout<<"pozitiv" ; else if (n<0) cout <<"negativ"; else cout<<"nul"; getch();} 15. Se citesc doua valori a si b reale a si b. Aflati solutia ecuatiei ax + b = 0, a 0 #include <iostream.h> #include <conio.h> void main(){ clrscr( ); float a,b,x; cout<<Dati a si b:; cin>>a>>b; if (a!=0) {x=-b/a; cout<<x=<<x;} else if (b!=0) cout<<Ecuatie imposibila; else cout<<Ecuatie nedeterminata; getch( );} 16. Se citesc trei valori a si b reale a, b, c. Aflati radacinile ecuatiei ax 2 + bx + c = 0 , a 0 #include <iostream.h> #include <math.h> #include <conio.h> float a,b,c,delta,x1,x2; void main (){cout<<"a="; cin>>a; cout<<"b="; cin>>b; cout<<"c="; cin>>c;
4

if (a != 0) { delta=b*b-4*a*c; if (delta < 0) cout<<"rad. complexe"; else {x1=(-b+sqrt(delta))/(2*a); x2=(-b-sqrt(delta))/(2*a); cout<<"x1="<<x1<<endl; cout<<"x2="<<x2<<endl; }} else cout<<"nu avem ec. de grad 2"; getch();} 17. Se citesc trei numere reale. Aflati maximul si minimul dintre ele.

#include <iostream.h> #include <conio.h> void main(){float a,b,c,max; max=a; min=a; cout<<"dati cele 3 numere"; cin>>a>>b>>c; if (max<b) max=b ; if (max<c) max=c; if (min<b) min=b ; if (min<c) min=c; cout<<"maximul este "<<max; cout<<"minimul este "<<min; getch();}

18. S se afle valoarea funciei

2x 3 3, x < 0= f ( x ) = x 3 2x 2 ,0 < x < 5 5 x ,x 5 3

#include <iostream.h> #include <conio.h> #include <math.h> void main( ){ float x, f; cout<<"Introduceti x"; cin>>x; if (x<=0) f=2*pow(x,3)-3 ; else if (x<5) f=pow(x,3)-2*pow(x,2); else f=sqrt(pow(x,5)/3); cout<<"f("<<x<<")="<<f; getch( );}

Instructiunea repetitiva cu numar cunoscut de pasi (for) 19. Se citete un numr natural n, apoi se citesc n numere reale. Aflai suma lor. #include <iostream.h> #include <conio.h> void main(){ int n,i; float x; long int s=0; cout<<"dati n"; cin>>n; for (i=1;i<=n;i++) {cout<<"dati x"; cin>>x; s=s+x;} cout<<"suma este "<<s; getch();} 20. Se citete un numr natural n. Calculai suma s=1+2+3++n. #include <iostream.h> #include <conio.h> void main(){ int n,i; long int s=0; cout<<"dati n"; cin>>n; for (i=1;i<=n;i++) s=s+i; cout<<"suma numerelor de la 1 la "<<n<<" este "<<s; getch();} 21. Se citete un numr natural n. Calculai suma s = 1 + #include <iostream.h> #include <conio.h> void main(){ int n,i; float s=0; cout<<"dati n"; cin>>n; for (i=1;i<=n;i++) s=s+ (float) 1/(i*i); cout<<"suma este "<<s; getch();} 22. Se citete un numr natural n. Aflai produsul p=n!=1x2x3xxn #include <iostream.h> #include <conio.h> void main(){ int n,i, p=1; cout<<"dati n"; cin>>n; for (i=1;i<=n;i++) p=p*i; cout<<"factorial de "<<n<< este <<p; getch();}
6

1 1 1 + 2 + ... + 2 . 2 2 3 n

23. Se citete un numr natural n. Afiai divizorii acestuia. #include <iostream.h> #include <conio.h> void main(){ int n,i, p=1; cout<<"dati n"; cin>>n; cout<<"divizorii lui "<<n<< sunt: ; for (i=1;i<=n;i++) if (n%i==0) cout<<i<< ; getch();}

Instructiunea repetitiva cu test initial (while)

24. Se citesc numere ntregi de la tastatur, pn la introducerea valorii 0. Aflai suma valorilor citite. De exemplu, pentru irul de intrare 2,56,78,4,0, rezultatul va fi s=140 (adic 2+56+78+4+0) #include<conio.h> #include<iostream.h> void main() {clrscr(); long int n,c,s=0; cout<<"introduceti nr:";cin>>n; while (n!=0) { s=s+n; cout<<"dati alt nr:"; cin>>n; } cout<<"suma. numerelor este"<<s<<endl; getch();} 25. Se citete un numr ntreg,n. Aflai suma cifrelor acestuia. De exemplu, pentru n=4568, suma calculat va fi s=23 (adic 4+5+6+8) #include<conio.h> #include<iostream.h> void main() {clrscr(); long int n,c,s=0; cout<<"introduceti nr:";cin>>n; while (n!=0) {c=n%10; s=s+c;n=n/10; } cout<<"suma. cifrelor este"<<s<<endl; getch();}

Instructiunea repetitiva cu test final (do-while) 26. Se citete un numr ntreg,n. Aflai cte cifre conine. De exemplu, pentru n=4568, numrul calculate va fi k=4 cifre #include<conio.h> #include<iostream.h> void main() {clrscr(); long int n, nrc=0; cout<<"introduceti nr:";cin>>n; do {n=n/10; nrc++ ;} while (n!=0); cout<<"nr. cifrelor este"<<nrc<<endl; getch();} Tablouri unidimensionale (vectori)

27. Se citete un vector cu n componente reale. Aflai suma elementelor vectorului. #include <iostream.h> #include <conio.h> void main(){ int n, v[50],i,s=0; cout<<"Dati numarul elementelor vectorului"; cin >>n; for(i=1;i<=n;i++) { cout<<"elementul "<<i<<":"; cin>>v[i]; s=s+v[i];} cout<<"suma elemtelor vectorului este "<<s; getch();} 28. Se citete un vector cu n componente reale. Aflai maximul dintre acestea. #include <iostream.h> #include <conio.h> void main(){ int n, v[50],i,s=0; cout<<"Dati numarul elementelor vectorului"; cin >>n; for(i=1;i<=n;i++) { cout<<"elementul "<<i<<":"; cin>>v[i]; s=s+v[i];} cout<<"suma elemtelor vectorului este "<<s; getch(); }
8

29. Se citete un vector cu n componente reale. Aflai minimul dintre acestea. #include <iostream.h> #include <conio.h> void main(){ int n, v[50],i,min; cout<<"Dati numarul elementelor vectorului"; cin >>n; for(i=1;i<=n;i++) { cout<<"elementul "<<i<<":"; cin>>v[i];} min=v[1]; for(i=2;i<=n;i++) if (min>v[i]) min=v[i]; cout<<"minimul este "<<min; getch(); } 30. Se citesc doi vectori a i b, avnd elemente ntregi. Aflai suma c a celor doi vectori. Elementele ci, ale vectorului c, se calculeaz astfel: ci=ai+bi, pentru orice i, ntre 1 i n. #include <iostream.h> #include <conio.h> void main(){ int n, a[50],b[50],c[50],i; cout<<"Dati elementelor vectorilor"; cin >>n; cout<<"vectorul a:"<<endl; for(i=1;i<=n;i++) { cout<<"a["<<i<<"]:"; cin>>a[i];} cout<<"vectorul b:"<<endl; for(i=1;i<=n;i++) { cout<<"b["<<i<<"]:"; cin>>b[i]; c[i]=a[i]+b[i];} for(i=1;i<=n;i++) cout<<c[i]<<" "; getch(); }

Siruri de caractere 31. Se citete de la tastatur un ir s de caractere i un character c. Aflai dac c se gsete n irul s i, n caz afirmativ, afiai poziia pe care se afl. De exemplu, dac s=examen i c=e, programul va afia Se gsete n poziiile 0, 4. #include <iostream.h> #include <conio.h> #include <string.h> void main(){ clrscr( ); char s[100]; cout<<"dati sirul:"; cin.getline(s,100); cout<<"Lungimea sirului introdus este "<<strlen(s); getch(); } 32. Se citete de la tastatur un ir s de caractere. Aflai lungimea acestuia. #include <iostream.h> #include <conio.h> #include <string.h> void main(){ clrscr( ); char s[100]; cout<<"dati sirul:"; cin.getline(s,100); cout<<"Lungimea sirului introdus este "<<strlen(s); getch(); } 33. Se citete de la tastatur un ir s de caractere. Transformai toate caracterele din irul s n litere mari. #include <iostream.h> #include <conio.h> #include <string.h> #include <ctype.h> void main(){ clrscr( ); char s[100],c; int i; cout<<"dati sirul:"; cin.getline(s,100); for (i=0;i<=strlen(s);i++) s[i]=toupper(s[i]); cout<<s; getch(); }

10

34. Se citete de la tastatur un ir s de caractere. Transformai toate caracterele din irul s n litere mici. #include <iostream.h> #include <conio.h> #include <string.h> void main(){ clrscr( ); char s[100],c; int i; cout<<"dati sirul:"; cin.getline(s,100); strlwr(s); cout<<s; getch(); }

Tablouri bidimensionale (matrici) 35. Intr-o coala sunt 30 de clase. n fiecare clas sunt 25 de elevi, identificai printr-un nume. Care dintre urmtoarele declaraii poate fi folosit pentru memorarea acestor informaii? a) b) c) d) int elev[30][25]; int elev[55] int elev=[25][30] char[40] elev[30][25]

36. O matrice ptratic este simetric fa de diagonala principal dac, pentru orice pereche de indici (i,j): a) a[i][j] == - a[j][i] b) a[i][j] == - a[i][j] c) a[i][j] == a[j][i] d) a[i][j] != a[i][j] e) 37. Se citesc de la tastatur elementele unei matrici ptratice, de dimensiune n, preluat. S se afieze elementele matricei b) S se afieze elementele de pe diagonala principal matricei i cele de pe diagonala secundar. #include <iostream.h> #include <conio.h> void main(){clrscr(); int n,i,j; float a[10][10]; cout<<"Dimensiunea matricei:";cin>>n; for (i=1; i<=n;i++) for (j=1; j<=n;j++) { cout<<"Elementul["<<i<<","<<j<<"]="; cin>> a[i][j];}
11

/*afisarea sub forma de matrice*/ for (i=1; i<=n;i++) { for (j=1; j<=n;j++) cout <<a[i][j]<<" "; cout<<endl;} cout<<Diagonala principala:<<endl; for (i=1; i<=n;i++) for (j=1; j<=n;j++) if (i==j) cout<<a[i][j]<<" "; cout<<endl; cout<<Diagonala secundara:<<endl; for (i=1; i<=n;i++) for (j=1; j<=n;j++) if (j==n-i+1) cout<<a[i][j]<<" "; cout<<endl; getch();} 4. Se dau dou matrici, a i b, avnd m linii i n coloane. S se calculeze matricea sum c, unde cij=aij+bij #include <iostream.h> #include <conio.h> void main(){clrscr(); int m,n,i,j, a[10][10], b[10][10],c[10][10]; cout<<"Nr. linii:";cin>>m; cout<<"Nr. coloane:";cin>>n; for (i=1; i<=m;i++) for (j=1; j<=n;j++) { cout<<"a["<<i<<","<<j<<"]="; cin>> a[i][j];} for (i=1; i<=m;i++) for (j=1; j<=n;j++) { cout<<"b["<<i<<","<<j<<"]="; cin>> b[i][j];} for (i=1; i<=m;i++) for (j=1; j<=n;j++) c[i][j]=a[i][j]+b[i][j]; for (i=1; i<=m;i++) { for (j=1; j<=n;j++)cout <<c[i][j]<<" "; cout<<endl;} getch();}

12

38. Se dau dou matrici, a i b, a avnd m linii i n coloane, iar b avand n linii si p coloane. S se calculeze matricea produs c. #include <iostream.h> #include <conio.h> void main(){ int a[10][10], b[10][10], c[10][10]; int i, j, k; int m, n, p; clrscr(); // Se citesc dimensiunile matricelor a si b cout<<"Dimensiunile matricei a"<<endl; cout<<"Nr. linii:";cin>>m; cout<<"Nr. coloane:"; cin>>n; cout<<"Dimensiunile matricei b"<<endl; cout<<"Nr. linii:"<<n<<endl; cout<<"Nr. coloane:"; cin>>p; //Se citeste matricea A for(i=1; i<=m; i++) for(j=1; j<=n; j++) { cout<<"a["<<i<<","<<j<<"]="; cin>>a[i][j]; } //Se citeste matricea B for(i=1; i<=n; i++) for(j=1; j<=p; j++){ cout<<"b["<<i<<","<<j<<"]="; cin>>b[i][j];} //Se calculeaza matricea C for(i=1; i<=m; i++) for(j=1; j<=p; j++) { c[i][j]=0; for(k=1; k<=n; k++) c[i][j]=c[i][j]+a[i][k]*b[k][j]; } //Se afiseaza matricea A cout<<"Matricea A:"<<endl ; for(i=1; i<=m; i++) { for(j=1; j<=n; j++) cout<<a[i][j];cout<<endl; } //Se afiseaza matricea B cout<<"Matricea B:"<<endl; for(i=1; i<=n; i++) { for(j=1; j<=p; j++) cout<<b[i][j];cout<<endl; } //Se afiseaza matricea C cout<<"Matricea produs C:" <<endl; for(i=1; i<=m; i++) { for(j=1; j<=p; j++) cout<<c[i][j]<<" ";cout<<endl; } getch();}

13

39. Se introduc punctajele realizate de m concureni la n probe sub forma unei matrici a, cu m linii i n coloane. Afiai punctajul total realizat de fiecare concurent. Exemplu: Date de intrare: m=3 n=2 punctaj concurent 1: 7 9 punctaj concurent 2: 10 8 punctaj concurent 3: 9 9 Date de intrare: Concurent 1 : 6 Concurent 2 : 18 Concurent 3 : 18 #include <iostream.h> #include <conio.h> void main(){clrscr(); int m,n,i,j, a[10][10], s ; cout<<"Nr. concurenti: (linii in matricea a )"; cin>>m; cout<<"Nr. probe (coloane in matricea a):";cin>>n; //se introduc punctajele fiecarui concurent i, pentru fiecare proba j, in elementul a[i][j] for (i=1; i<=m;i++) for (j=1; j<=n;j++) { cout<<"Dati punctajul concurentului "<<i<<" proba "<<j<<":"; cin>> a[i][j];} // se calculeaza punctajul total pentru fiecare concurent in variabila s for (i=1; i<=m;i++) {s=0; for (j=1; j<=n;j++) s=s+a[i][j]; cout<<"Concurent "<<i<<":"<<s<<endl;};getch();} 1) Trebuie cumparate p produse din m magazine. S se scrie un program care s indice, pentru fiecare produs, magazinul n care acesta are preul minim. Cunoscnd cantitile ce trebuie cumprate pentru fiecare produs, s se determine suma ce urmeaz a fi cheltuit. Exemplu: p=2 m=3 i preurile aezate ntr-o matrice cu p linii i m coloane: 50000 48000 49500 11000 11500 11500 se va afia: produs 1 pret minim in magazin 2 produs 2 pret minim in magazin 1 cunoscnd cantitile 5 7, suma necesar va fi de 317000 lei. #include <iostream.h> #include <conio.h> void main(){clrscr(); int m,p,i,j,k; long int a[10][10], s, min[10], c[10] ; cout<<"Nr. produse: (linii in matricea a )"; cin>>p; cout<<"Nr. magazine (coloane in matricea a):";cin>>m; //se introduc preturile pentru produsul i, magazinul j, in elementul a[i][j] for (i=1; i<=p;i++) for (j=1; j<=m;j++) { cout<<"Dati pretul produsului "<<i<<" magazinul "<<j<<":";
14

cin>> a[i][j];} // se calculeaza in vectorul min, pretul minim pentru fiecare produs i, in cele m magazine // k reprezinta magazinul unde a fost identificat pretul minim, la un moment dat for (i=1; i<=p;i++) {min[i]=a[i][1];k=1; for (j=2; j<=m;j++) if (min[i]>a[i][j]) {min[i]=a[i][j] ;k=j;} ; cout<<"Produs "<<i<<" pret minim in magazin "<<k<<endl;} /*se introduc cantitatile din produsul i, ce trebuie cumparate, in componenta c[i] a vectorului c*/ for (i=1; i<=p;i++) { cout<<"Dati cantitatea necesara din produsul "<<i<<":"; cin>> c[i];} //se calculeaza suma totala necesara s=0; for (i=1; i<=p;i++) s=s+c[i]*min[i]; cout<<"Suma necesara: "<<s; getch();}

15

Você também pode gostar