Esercizi costrutto struct in C++
Esercizio 1
Domanda: Cosa stampa questo programma? Come vengono valutate le espressioni all’interno di cout?
#include <iostream>
using namespace std;
struct Punto {
int x, y;
};
int main() {
Punto p = {3, 4};
Punto array[3] = { {1, 2}, {3, 4}, {5, 6} };
cout << p.x + p.y << endl;
cout << array[1].x * 2 << endl;
cout << array[0].x + array[2].y << endl;
return 0;
}
Esercizio 2
Domanda: Cosa stampa il seguente programma?
#include <iostream>
using namespace std;
struct Coordinate {
int x, y;
};
int main() {
Coordinate p1 = {5, 3};
Coordinate p2 = p1;
cout << "x: " << p2.x << "; y: " << p2.y << endl; // prima di modificare p1
p1.x = 6;
cout << "x: " << p2.x << "; y: " << p2.y << endl; // dopo modifica di p2
return 0;
}
Esercizio 3
Domanda: Il seguente programma compila ed esegue? Correggerlo in caso di errori
#include <iostream>
using namespace std;
struct Coordinate {
int x, y;
};
int main() {
Coordinate p1 = {5, 3};
Coordinate p2 = {5, 3};
if(p1 == p2)
{
cout << "p1 e p2 sono uguali" << endl;
} else {
cout << "p1 e p2 sono diversi" << endl;
}
return 0;
}
Esercizio 4
Domanda: Il seguente programma compila ed esegue? Correggerlo in caso di errori
#include <iostream>
using namespace std;
struct Indirizzo {
string via;
int numero;
};
struct Persona {
string nome;
Indirizzo casa;
int eta;
};
int main() {
Persona p;
p.nome = "Anna";
p.casa.via = "Via Roma";
p.casa.numero = 42;
p.eta = 25;
cout << p.nome << " abita in " << p.via << " " << p.numero << endl;
cout << "Ha " << p.eta << " anni" << endl;
return 0;
}
Esercizio 5
Domanda: Il seguente programma compila ed esegue? Correggerlo in caso di errori
#include <iostream>
using namespace std;
struct Voto {
string materia;
int valore;
};
int main() {
Voto voti[4] = {
{"Matematica", 8},
{"Italiano", 7},
{"Storia", 9}
};
voti[3].materia = "Inglese";
voti[3].valore = 6;
cout << voti[3].materia << ": " << voti[3].valore << endl;
return 0;
}
Esercizio 6
Domanda: Cosa stampa questo programma? Motivare la risposta
#include <iostream>
using namespace std;
struct Studente {
string nome;
int voti[5];
};
int main() {
Studente c1 = {"Marco", {8, 7, 9, 6, 10} };
Studente c2 = {"Lucia", {8, 7, 7, 8, 6} };
cout << "Studente " << c1.nome << ":" << endl;
for(int i = 0; i < 5; i++) {
if(c1.voti[i] < 5){ }
cout << "Voto " << i << ": " << c1.voti[i] << endl;
}
return 0;
}