La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Esempi domande di esame. 2 Dato il seguente programma #include int main(){ int *p,j=9,i=5; p=&j; *p=i; printf("%d %d %d\n", i,j,*p); scanf("%d",p);/*

Presentazioni simili


Presentazione sul tema: "1 Esempi domande di esame. 2 Dato il seguente programma #include int main(){ int *p,j=9,i=5; p=&j; *p=i; printf("%d %d %d\n", i,j,*p); scanf("%d",p);/*"— Transcript della presentazione:

1 1 Esempi domande di esame

2 2 Dato il seguente programma #include int main(){ int *p,j=9,i=5; p=&j; *p=i; printf("%d %d %d\n", i,j,*p); scanf("%d",p);/* da tastiera:88\n*/ printf("%d %d %d\n", i,j,*p); return 0;}

3 3 Quali affermazioni sono vere? 1) Durante la compilazione vengono segnalati dei warning 2) la prima printf stampa ) la prima printf stampa ) p contiene l'indirizzo di j 5) p contiene l'indirizzo di i 6) l'indirizzo di p coincide con l'indirizzo di j 7) la seconda printf stampa ) la seconda printf stampa

4 4 Esercizi da svolgere 1 Scrivere una funzione C che riceve il nome di un file contenente parole lunghe al massimo 30 caratteri e restituisce una NUOVA stringa contenente la parola più lunga trovata. Se due o più parole condividono la stessa lunghezza massima la funzione restituisce la prima parola soluzione: ex31_stringa.c / ex31.txt

5 5 Esercizi da svolgere 2 Scrivere una funzione che riceve in ingresso due stringhe e le scambia tra di loro. soluzione ex32_scambia.c

6 6 Esercizi da svolgere 3 Scrivere una funzione che riceve in ingresso una stringa e la modifica nella stringa permutata (casa diventa asac) soluzione: ex34_inverti.c

7 7 Esercizi da svolgere 4 Scrivere una funzione c che riceve un vettore di interi in ingresso con la sua lunghezza e restituisce un nuovo vettore che contiene gli stessi interi aumentati di uno (1 7 9 diventa ). soluzione ex37_add1.c

8 8 Esercizi da svolgere 5 Scrivere una funzione c che riceve il nome di un file contenente interi separati/terminati da uno spazio bianco o da un ritorno a capo e restituisce un vettore che contiene tutti gli interi del file maggiori di 10. NON è noto il numero di interi nel file. soluzione ex35_creavettore.c

9 9 Dato il seguente programma #include int main(){ int i,*p, v[]={1,2,3,4,5}; p=&v[3]; printf("%d\n",*p); scanf("%d",p);/* da tastiera:88\n*/ for(i=0;i<5;i++) printf("%d ", v[i]); return 0;}

10 10 Quali affermazioni sono vere? 1) Durante la compilazione vengono segnalati dei warning 2) la prima printf stampa un valore casuale 3) la prima printf stampa 3 4) la prima printf stampa 4 5) p contiene l'indirizzo di v 6) la scanf non legge correttamente 7) la seconda printf stampa ) la seconda printf stampa

11 11 Dato il seguente programma #include int main(){ char c, s[10]; int i; scanf("%c",&c);/*da tastiera:88casa pippo\n*/ scanf("%d",&i); scanf("%s",s); printf("%s %d %c\n",s,i,c); return 0;}

12 12 Quali affermazioni sono vere? 1) Durante la compilazione vengono segnalati dei warning 2) i contiene 88 3) i contiene 8 4) alla fine del programma la stringa puntata da s contiene casa 5) alla fine del programma la stringa puntata s contiene casa pippo 6) la prima scanf non legge correttamente 7) la seconda scanf non legge correttamente 8) l'ingresso viene tutto consumato

13 13 Dato il seguente programma #include void cambia(char *s, int k, int *l){ k=*l=strlen(s); strcpy(s, "due");} int main(){ int i,j; i=j=3; char *v="casale"; cambia(v,i,&j); printf("%s %d %d\n",v,i,j); return 0;}

14 14 Quali affermazioni sono vere? 1) la seconda istruzione della funzione è sbagliata 2) l è un intero 3) alla fine del programma i e j hanno lo stesso valore 4) prima di chiamare la funzione v punta all'inizio di una zona di memoria di 7 byte contigui a disposizione del programma 5) dopo la chiamata della funzione v punta all'inizio di una zona di memoria di 4 byte contigui a disposizione del programma 6) v contiene un indirizzo 7) v[6] non viene modificato dalla funzione 8) dopo la chiamata della funzione v[2] è uguale a v[5]

15 15 Dato il seguente programma #include char *cambia(char *s){ int i=strlen(s); s=(char *)malloc(i+1); strcpy(s, "due"); return s;} int main(){ char *v="tre"; cambia(v); printf("%s\n",v); return 0;}

16 16 Quali affermazioni sono vere? 1) il contenuto della stringa puntata da v viene cambiato dalla funzione 3) la memoria allocata dalla funzione (malloc) viene persa 4) per evitare perdite di memoria la funzione doveva essere chiamata così: v=cambia(v); 5) alla fine del programma la stringa puntata da v non è più raggiungibile 6) v contiene un indirizzo

17 17 Prototipi di funzione #include int somma (int,int ); int main (){ int a,b; a=5; b=7; c=somma(a,b); printf("c vale: %d\n",c); } int somma (int i, int j){ return i+j;}

18 18 Un ultimo programma C main(t,_,a) char *a; { return!0

19 19... On the fourth day of Christmas my true love gave to me four calling birds, three french hens, two turtle doves and a partridge in pear tree. On the fifth day of Christmas my true love gave to me five gold rings; four calling birds, three french hens, two turtle doves and a partridge in pear tree. On the sixth day of Christmas my true love gave to me six geese a-laying, five gold rings; four calling birds, three french hens, two turtle doves and a partridge in pear tree. On the seventh day of Christmas my true love gave to me....


Scaricare ppt "1 Esempi domande di esame. 2 Dato il seguente programma #include int main(){ int *p,j=9,i=5; p=&j; *p=i; printf("%d %d %d\n", i,j,*p); scanf("%d",p);/*"

Presentazioni simili


Annunci Google