1.
Se citesc de la tastatura datele despre elvii(maxim 30) unei clase : nume de maxim
30 de caractere,
prenume de maxim 30 de caractere, media numar real, bursa numar real. Sa se
tipareasca pe ecran
toate informatile despre elevii clasei, ordonati crescator dupa nume, apoi sa se
tipareasca
informatiile despre elevul/elevii cu cea mai mare medie.
#include <iostream>
#include <cstring>
using namespace std;
struct elevi
{
char nume[31],prenume[31];
float media,bursa;
};
int main()
{
elevi v[31],aux;
int n;
float vmax=0;
cin>>n;
for(int i=0;i<n;i++)
{
[Link](v[i].nume,31);
[Link](v[i].prenume,31);
cin>>v[i].media>>v[i].bursa;
}
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if(strcmp(v[i].nume,v[i].prenume)>0)
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
}
for(int i=0;i<n;i++)
cout<<v[i].nume<<" "<<v[i].prenume<<" "<<v[i].media<<" "<<v[i].bursa<<endl;
for(int i=0;i<n;i++)
if(v[i].media>vmax)
vmax=v[i].media;
for(int i=0;i<n;i++)
if(v[i].media==vmax)
cout<<v[i].nume<<" "<<v[i].prenume<<" "<<v[i].media<<"
"<<v[i].bursa<<endl;
return 0;
}
2.
Pentru a putea memora datele aferente elevilor unei clase se utilizeaza un vector
de timp structura
in care fiecare element al vectorului va memora datele: nume, prenume, medie,
venit. Sa se citeasca
de la tastatura vectorul si sa se afiseze pe ecran datele elevului/elevilor care au
cea mai mare
medie.
#include <iostream>
#include <cstring>
using namespace std;
struct elevi
{
char nume[31],prenume[31];
float medie;
int venit;
};
int main()
{
elevi v[31];
int n;
float vmax;
cin>>n;
for(int i=0;i<n;i++)
{
[Link](v[i].nume,31);
[Link](v[i].prenume,31);
cin>>v[i].medie>>v[i].venit;
}
for(int i=0,i<n;i++)
if(v[i].medie>vmax)
vmax=v[i].medie;
for(int i=0;i<n;i++)
if(v[i].medie==vmax)
cout<<v[i].nume<<" "<<v[i].prenume<<" "<<v[i].medie<<" "<<v[i].venit;
return 0;
}
3.
Se considera declararile de mai jos, in care variabila e memoreaza numele,
prenumele si data
nasterii unui elev. Scrieti o secventa de instructiuni C/C++ care afiseaza numele
elevului de
forma [Link] (initiala prenumelui urmata de nume si separate prin punct), daca anul
nasterii este
mai mare decat 2001 sau data nasterii de forma [Link](separate prin punct) in
caz contrar.
struct data
{
int zi,luna,an;
};
struct elev
{
char nume[21],pren[21];
data dn;
}e;
if([Link]>2001)
cout<<[Link][0]<<'.'<<[Link];
else
cout<<[Link]<<'.'<<[Link]<<'.'<<[Link];
4.
Variabila s memoreaza simultan urmatoarele date despre fiecare dintre cele 20 de
specii de animale
dintr-o rezervatie : un cod, reprezentand specia, numarul de exemplare din specia
respectiva si
varstele acestora. In rezervatie sunt maximum 10 exemplare din fiecare specie.
Stiind ca expresiile
C/C++ de mai jos au ca valori numere naturale si reprezinta codul si numarul de
exemplare din prima
specie, respectiv varsta celui de al 4-lea exemplar din aceasta specie, scrieti
definitia unei
structuri cu eticheta specie, care permite memorarea datelor despre o specie, si
declarati
corespunzator variabila s.
s[0].cod s[0].nrExemplare s[0].varsta[3]
struct specie
{
unsigned int cod,nrExemplare, varsta[11];
}s[21];
5.
Variabila t memoreaza cordonatele reale(abscisa si ordonata), in planul xOy, ale
fiecaruia dintre
cele trei varfuri A, B si C ale unui triunghi. Stiind ca expresiile C/C++ de mai
jos au ca valori
abscisa varfului A respectiv ordonatele varfurilor B si C ale triunghiului, scrieti
definitia unei
structuri cu eticheta triunghi, care permite memorarea datelor precizate, si
declarati
corespunzator variabila t.
t.A.x t.B.y t.C.y
struct triunghi
{
struct
{
float x,y;
}A,B,C;
}t;
6.
Variabila fig memoreaza date specifice unui cerc: coordonatele reale(abscisa si
ordonata), in
planul xOy, ale centrului cercului, precum si lungimea razei acestuia. Stiind ca
expresiile C/C++
de mai jos au ca valori numere reale reprezentand datele specifice ale cercului,
scrieti definita
unei structuri cu eticheta cerc, care permite memorarea datelor precizate, si
declarati
corespunzator variabila fig.
[Link].x [Link].y [Link]
struct cerc
{
struct
{
float x,y;
}centru;
float raza;
}fig;
7.
Variabila p memoreaza date despre un poliedru regulat: numarul de varfuri, lungimea
muchiei si doua
unghiuri specifice(dintre o fata si o muchie, respectiv dintre doua fete). Stiind
ca expresiile
C/C++ de mai jos au ca valori un numar natural reprezentand numarul de varfuri ale
poliedrului, si
numerele reale reprezentand lungimea muchiei, respectiv cele doua unghiuri
specifice, scrieti
definita unei structuri cu eticheta poliedru, care permite memorarea datelor
precizate, si
declarati corespunzator variabila p.
[Link] [Link] [Link] [Link]
struct poliedru
{
unsigned int NrVarfuri;
float Muchie;
struct
{
float FataMuchie,FataFata;
}Unghi;
}p;
8.
Variabila c, declarata alaturat, permite accesul la datele fiecareia dintre cele
trei echipe
participante la ultima etapa a unui concurs: numele si rezultatul(numar natural din
intervalul
[0, 100]); cele trei echipe au rezultate distincte. Scrieti o secventa de
instructiuni in urma
executarii careia sa se afiseze pe ecran, separate prin cate un spatiu, numele
celor trei echipe,
in ordine descrescatoare a rezultatelor obtinute.
struct echipa
{
char nume[50];
int rezultat;
};
struct echipa c[3];
echipa aux;
for(int i=0;i<2;i++)
for(int j=i+1;j<3;j++)
if(c[i].rezultat<c[j].rezultat)
{
aux=c[i];
c[i]=c[j];
c[j]=aux;
}
for(int i=0;i<3;i++)
cout<<c[i].nume<<" ";
9.
Fiecare dintre variabilele A si B, declarate alaturat, memoreaza cordonatele(x
abscisa, iar y
ordonata) cate unui punct in sistemul de coordonate xOy. Indicati o expresie C/C++
care are
valoarea 1 daca si numai daca segmentul cu extremitatile in punctele
corespunzatoare variabilelor
A si B intersecteaza axa Oy a sistemului de coordonate.
a) A.x*B.x<=0 b) A(x)*B(x)<=0 c) x.A*x.B<=0 d) punct(A,B).y==0
10.
Variabila c memoreaza simultan numarul de carti dintr-o biblioteca (numar natural
din intervalul
[3,100) ) si date despre fiecare carte(titlu si autor, siruri de cel mult 20 de
caractere).
Expresiile C/C++ de mai jos au ca valori numarul de carti, titlu si numele
autorului celei de a
treia carti. Scrieti definitia unei structuri cu eticheta biblio, care permite
memorarea datelor
despre o biblioteca, si declarati corespunzator variabila c.
[Link] [Link][2].titlu [Link][2].autor
struct biblio
{
unsigned int numar;
struct
{
char titlu[21],autor[21];
}carte[100];
}c;
11.
Variabila e este declarata alaturat. Indicati o intructiune de atribuire corecta
din punct de
vedere sintactic.
struct elev
{
int cod;
char initiala;
struct
{
int nota1,nota2;
}note;
}e;
a) e(initiala)='A'; b) e=(2020,'A',10,9); c) [Link]=[Link]-'A';
d)[Link]=2020;
12.
Variabila s memoreaza simultan urmatoarele date despre fiecare dintre cele 20 de
spectacole din
cadrul unei stagiuni: un cod, numarul de actori si varstele acestora. La un
spectacol sunt
maximum 10 actori. Expresiile C/C++ de mai jos au ca valori numere naturale si
reprezinta codul
primului spectacol, numarul de actori care joaca in acest spectacol, respectiv
varsta celui de al
5-lea astfel de actor. Scrieti definitia unei structuri cu eticheta spectacol, care
permite
memorarea datelor despre un spectacol, si declarati corespunzator variabila s.
s[0].cod s[0].nrActori s[0].varsta[4]
struct spectacol
{
unsigned int cod,nrActori,varsta[11];
}s[21];
13.
Variabila r memoreaza simultan urmatoarele date despre fiecare dintre cele 20 de
rase de porumbei
dintr-o voliera: un cod, reprezentand rasa, numarul de exemplare din rasa
respectiva si varstele
acestora. In voliera sunt maximum 10 exemplare din fiecare rasa. Siind ca
expresiile C/C++ de mai
jos au ca valori numere naturale si reprezinta codul si numarul de exemplare,
respectiv varsta
celui de al 4-lea exemplar din aceasta rasa, scrieti definitia unei structuri cu
eticheta rasa,
care permite memorarea datelor despre o rasa de porumbei, si declarati
corespunzator variabila r.
r[0].cod r[0].nrExemplare r[0].varsta[3]
struct rasa
{
unsigned int cod,nrExemplare,varsta[11];
}r[21];
14.
Fiecare dintre variabilele A si B, declarate alaturat, memoreaza coordonatele
pozitive(x abscisa,
iar y ordonata) ale cate unui punct in sistemul de coordonate xOy, extremitatile
ale unui segment.
Indicati o expresie C/C++ care are valoarea 1 daca si numai daca cel putin una
dintre extremitatile
segmentului precizat este in originea sistemului de coordonate xOy.
a) (A.x+A.y)*(B.x+B.y)==0 b) (A(x)+A(y))*(B(x)+B(y))==0
c) (x.A+y.A)*(x.B+y.B)==0 d) punct.A(x+y)*punct.B(x+y)==0
15.
Pentru fiecare specie de flori dintr-o sera se memoreaza date specifice: un cod,
reprezentand
specia, si prima litera a denumirii populare. Setul de variabile cod1, denumire1
memoreaza date
specifice pentru o specie de flori, iar setul de variabile cod2, denumire2
memoreaza date specifice
pentru o alta specie de flori. Scrieti o secventa de instructiuni in urma
executarii careia sa se
afiseze pe ecran mesajul Duplicat, daca cele doua seturi de variabile memoreaza
aceleasi date
specifice, mesajul Specie cu mai multe denumiri populare, daca datele specifice se
refera la o
specie identificata prin acelasi cod, dar denumire populara diferita, sau mesajul
Specii diferite,
in celelalte cazuri.
16.
Variabila s memoreaza date specifice despre o sera: numarul de specii de flori
(numar natural din
intervalul [3,100) ) si date despre fiecare specie (denumire stiintifica si
denumire populara,
siruri de cel mult 20 de caractere). Expresiile C/C++ de mai jos au ca valori
numarul de specii de
flori, denumirea stiintifica, respectiv denumirea populara a celei de a patra
specii. Scrieti
definitia unei structuri cu eticheta sera, care permite memorarea datelor despre o
sera, si
declarati corespunzator variabila s.
[Link] [Link][3].denumireStiintifica
[Link][3].denumirePopulara
struct sera
{
unsigned int numar;
struct
{
char denumireStiintifica[21],denumirePopulara[21];
}specie[100];
}s;
17.
Variabila x, declarata alaturat, memoreaza simultan un an calendaristic si
temperatura medie a
aerului, masurata in grade Celsius, inregistrata in Bucuresti in anul respectiv.
Scrieti o
secventa de instructiuni in urma executarii careia sa se afisezepe ecran mesajul
CALDUROS daca
temperatura mentionata a fost strict mai mare decat 11 grade Celsius, mesajul
RACOROS daca
temperatura mentionata a fost strict mai mica decat 10 grade Celsius, sau mesajul
NORMAL in orice
alt caz.
struct meteo
{
int an,temperatura;
}x;
if([Link]>11)
cout<<"CALDUROS";
else
if([Link]<10)
cout<<"RACOROS";
else
cout<<"NORMAL";
18.
In declararile alaturate, variabila dataEveniment memoreaza data calendaristica la
care s-a
desfasurat un anumit eveniment, iar variabila e memoreaza numele si data nasterii
unui elev.
Scrieti o secventa de instructiuni C/C++ in urma executarii careia sa se afiseze pe
ecran mesajul
ulterior daca elevul s-a nascut ulterior desfasurarii evenimentului sau mesajul nu
in caz contrar.
struct data
{
int zi,luna,an;
}dataEveniment;
struct elev
{
char nume[30];
data dataNasterii;
}e;
if([Link]>[Link])
cout<<"ulterior";
else
if([Link]==[Link])
if([Link]>[Link])
cout<<"ulterior";
else
if([Link]==[Link])
if([Link]>[Link])
cout<<"ulterior";
else
cout<<"nu";
else
cout<<"nu";
else
cout<<"nu";
19.
Se citeste de la tastatura un numar natural n, apoi se citesc informatiile despre
cei n elevi ai
unei clase: nume de 30 de caractere, prenume de 30 de caractere, media, varsta. Sa
se calculeze
media clasei, apoi sa se afiseze toti elevii in ordine crescatoare dupa nume.
#include <iostream>
#include <cstring>
using namespace std;
struct elevi
{
char nume[31],prenume[31];
float media;
unsigned int varsta;
}v[31],aux;
int main()
{
int n;
float x=0;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>v[i].nume>>v[i].prenume>>v[i].media>>v[i].varsta;
x=x+v[i].media;
}
cout<<x/n<<endl;
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if(strcmp(v[i].nume,v[j].nume)>0)
swap(v[i],v[j]);
else
if(strcmp(v[i].nume,v[j].nume)==0)
if(strcmp(v[i].prenume,v[j].prenume)>0)
swap(v[i],v[j]);
for(int i=0;i<n;i++)
cout<<v[i].nume<<" "<<v[i].prenume<<" "<<v[i].media<<"
"<<v[i].varsta<<endl;
return 0;
}