Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni – BCOR Ingegneria Elettronica – BELR Introduzione al C Esercitazione 5 D. Bloisi, A. Pennisi, S. Peluso, S. Salza
Esercizio /2014Esercitazione 4Pagina 2 Scrivere una funzione in linguaggio C denominata trova_carattere che, presa in ingresso una stringa s e un intero i, restituisca il carattere di indice i in s. La funzione deve restituire 0 nel caso in cui s sia NULL oppure l’indice i sia minore di 0 o maggiore della lunghezza di s. Stringa s = “ciao” trova_carattere(s,2) -> a Stringa s = “osso” trova_carattere(s,3)-> o Stringa s = “a” trova_carattere(s,1) -> 0 Stringa s = NULL trova_carattere(s,1) -> 0
Esercizio /2014Esercitazione 4Pagina 3 Scrivere una funzione in linguaggio C denominata diag_sec che, prese in ingresso una matrice M (matrice quadrata NxN di dimensioni 5x5) e un vettore S (di dimensione N), modifichi opportunamente S inserendovi gli elementi della diagonale secondaria di M. Scrivere, inoltre, una funzione main che: legga la matrice M da file (supporre che tutti i dati in ingresso siano di tipo int e corretti). Stampi a video la il valore di S dopo aver eseguito diag_sec(M, S).
Esercizio /2014Esercitazione 4Pagina 4 1. L’istruzione alla riga 2 produce perdita di informazione 2. La riga 6 stampa La riga 11 stampa La riga 12 stampa La riga 14 stampa 1 6. La riga 15 stampa 0 7. L’istruzione return 0 viene aggiunta in automatico come ultima istruzione del main /* 1*/#include /* 2*/int main() { /* 3*/ float a = 2; /* 4*/ int i, c = (int)a; /* 5*/ float b = 1.01f; /* 6*/ printf("%f\n", a); /* 7*/ for(i = 0; i < (int)b; i++){ /* 8*/ if(i == 1) continue; /* 9*/ c *= -1; /*10*/ } /*11*/ printf("%d\n", c); /*12*/ printf("%d\n", i); /*13*/ if(c < 0) c++; /*14*/ printf("%d\n", i); /*15*/ printf("%d\n", c); /*16*/}
Esercizio /2014 Esercitazione 4Pagina 5 /* 1*/#include /* 2*/#include /* 3*/ /* 4*/int main() { /* 5*/ char c[80] = "rossi"; /* 6*/ char* d = "po"; /* 7*/ printf("%d\n", strlen(d)); /* 8*/ char* e = c; /* 9*/ *(e+1) = 'a'; /*10*/ printf("%s\n", c); /*11*/ printf("%d\n", strlen(e)); /*12*/ *(++e) = 'o'; /*13*/ printf("%d\n", strlen(e)); /*14*/ printf("%s\n", c); /*15*/ *(++e) = '\0'; /*16*/ strcat(c, d); /*17*/ printf("%s\n", c); /*18*/ printf("%c\n", *(++e)); /*19*/} 1.La riga 7 stampa 2 2.La riga 10 stampa possi 3. La riga 11 stampa 5 4. La riga 13 stampa 3 5. La riga 14 stampa bossi 6. La riga 17 stampa rospo 7. La riga 18 stampa o