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 1
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
Esercitazione 4
2013/2014
Pagina 2
Esercizio 2
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).
Esercitazione 4
2013/2014
Pagina 3
Esercizio 3
/* 1*/#include <stdio.h>
1. L’istruzione alla riga 2 produce
/* 2*/int main() {
perdita di informazione
/* 3*/ float a = 2;
2. La riga 6 stampa 2.000000
/* 4*/ int i, c = (int)a;
3. La riga 11 stampa -2
/* 5*/ float b = 1.01f;
4. La riga 12 stampa 15
/* 6*/ printf("%f\n", a);
5. La riga 14 stampa 1
/* 7*/ for(i = 0; i < (int)b; i++){ 6. La riga 15 stampa 0
/* 8*/
if(i == 1) continue;
7. L’istruzione return 0 viene
/* 9*/
c *= -1;
aggiunta in automatico come
/*10*/ }
ultima istruzione del main
/*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*/}
Esercitazione 4
2013/2014
Pagina 4
Esercizio 4
/* 1*/#include <stdio.h>
/* 2*/#include <string.h>
/* 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*/} Esercitazione 4
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
2013/2014
Pagina 5
Scarica

Testo - Dipartimento di Informatica e Sistemistica