Università degli Studi di Udine
Corsi di laurea in Ing. Elettronica Gestionale Fondamenti di programmazione
17 novembre 2017 - Prova intermedia
Matricola ____________________________
Nome ____________________________
Cognome ____________________________
Aula ____ Fila (dalla cattedra) ____ Posto (dalla porta) ___
Esercizio 1 (2 punti)
Cosa stampa il seguente frammento di codice?
char s[10];
strcpy (s, "testo");
s[strlen(s)-2] = '\0';
printf ("%s", s);
[ ] tes [ ] test [ ] testo
[ ] testo seguito da un carattere casuale
Esercizio 2 (4 punti)
La seguente funzione cerca in una matrice di interi positivi
int m[5][10]una coppia di celle adiacenti, in orizzontale, contenenti il medesimo valore. Si assuma che nella matrice possa esserci al massimo una coppia di elementi che soddisfi tale condizione. La funzione deve restituire il valore contenuto in tali celle o -1, se tale coppia non esiste.
Si completi la funzione.
int cerca_coppia (int m____________) {
int i, j;
for (i = 0; i < 5; i++) for (j = 0; j < 9; j++)
if (________________________) return _______;
return ______;
}
Esercizio 3 (2 punti)
Considerando un’architettura da 32 bit, quanti byte occupano i seguenti dati?
0 _____________
"0" _____________
'0' _____________
'\0' _____________
"0\n" _____________
Esercizio 4 (4 punti)
Si completi la funzione void swap_vettori (int v1[], int v2[], int dim) che scambia il contenuto dei due vettori passati come argomento, entrambi della medesima dimensione dim.
void swap_vettori(int v1[], int v2[], int dim) {
int i;
for (i = 0; i < ________; i++) swap_int (___________________);
return;
}
void swap_int (____________________) {
int t;
t = _______;
*p_a = ________;
*p_b = ________;
return;
}
Esercizio 5 (4 punti)
Un vettore di numeri reali contiene i tassi di interesse (percentuali) di un periodo di dieci anni, uno per anno.
Il calcolo dell’interesse composto di una somma richiede che per ogni anno venga calcolato l’importo disponibile all’inizio dell’anno, comprensivo degli interessi accumulati negli anni precedenti, e a tale importo venga applicato il tasso di interesse dell’anno considerato. Il valore risultante sarà l’importo di partenza per l’anno successivo.
Per esempio, se il vettore contiene i valori { 2.5, 2.3, 1.2, 0.9, 1.7, 2.2, 2.0, 1.8, 1.6, 1.1 }, l’importo iniziale (depositato all’inizio del primo anno) è pari a 100.00 euro e il numero di anni da considerare è 3, l’importo finale sarà 106.1158, ottenuto da {[100 * (1+2.5/100)]
* (1+2.3/100)} * (1+1.2/100).
La funzione
double importo_finale (double tassi[],
double importo_iniziale, int anni)