Università degli Studi di Udine
Corsi di laurea in Ing. Elettronica e Ing. Gestionale
Fondamenti di programmazione 17 novembre 2017 - Prova intermedia NOTA: nel seguito le risposte corrette e le note sono riportate in neretto.
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);
[X] tes [ ] test [ ] testo
[ ] testo seguito da un carattere casuale [ ] 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 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 ______;
}
int cerca_coppia (int m[5][10]) {
int i, j;
for (i = 0; i < 5; i++) for (j = 0; j < 9; j++) if (m[i][j] == m[i][j+1]) return m[i][j];
return -1;
}
Esercizio 3 (2 punti)
Considerando un’architettura da 32 bit, quanti byte occupano i seguenti dati?
0 _____________ 4
"0" _____________ 2
'0' _____________ 1
'\0' _____________ 1
"0\n" _____________ 3
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;
}
void swap_vettori (int v1[], int v2[], int dim) {
int i;
for (i = 0; i < dim; i++) swap_int (&v1[i], &v2[i]);
return;
}
void swap_int (int *p_a, int *p_b) {
int t;
t = *p_a;
*p_a = *p_b;
*p_b = t;
return;
}