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);/*

Slides:



Advertisements
Presentazioni simili
File Linguaggio C.
Advertisements

Puntatori Linguaggio C.
Corso di Fondamenti di Programmazione canale E-O
INFORMATICA Altre Istruzioni di I/O
INFORMATICA Algoritmi fondamentali
Funzioni e procedure Ogni linguaggio di programmazione ad alto livello mette a disposizione del programmatore questi strumenti, ed il C non è da meno!
Uso avanzato di C.
Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire.
Introduzione al linguaggio C
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Stringhe di caratteri In linguaggio C.
Sviluppo di programmi strutturati
MATLAB.
Introduzione al linguaggio C
La ricorsione Simulazione. Il Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n:
ESERCITAZIONE N. 5 ESERCIZIO N. 1 Autore: Biagio Brattoli S I Corso.
FUNZIONI DI BIBLIOTECA
Caratteri e stringhe di caratteri
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
Tail recursion: esempio
Esercizi di esonero (a.a. 2007/2008) Compito C, terzo esercizio Data una sequenza di caratteri s1 ed una stringa s2 diciamo che s1 è contenuta in s2 se.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Process synchronization
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Array Un array è una collezione in sequenza di variabili del medesimo tipo Riferimento con un nome comune Nome_studente1 Nome_studente2. Nome_studenteN.
APPUNTI SUL LINGUAGGIO C
Esercizi su code Date due code in ingresso a valori interi in ordine crescente, scrivere una funzione che restituisca una terza coda che contenga i valori.
INFORMATICA Esercizi.
INFORMATICA Altre Istruzioni di I/O. © Piero Demichelis 2 Funzioni di I/O Per la lettura e la scrittura da videoterminale il C prevede numerose istruzioni.
Esercizio: Copiare un file in un nuovo file mediante le funzioni read e write.
A.A. 2010/2011Ambienti di Programmazione per il Software di Base1 (Es. – 6) Ambienti di Programmazione per il Software di Base Le Stringhe in C Input.
Esercizi FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo.
Politecnico di Milano Esercizi Stringhe Ricerca binaria.
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
Algebra Lineare Esercizi assegnati.
I File.
Le funzioni.
Lezione 17 maggio 2007 Parametri da linea di comando FILE Strutture (introduzione)
Vettori e Funzioni 3 Maggio Esercizio 1 Si scriva un programma in linguaggio C che, dopo aver acquisito il contenuto di un vettore di interi da.
Lezione 24 maggio 2007 Strutture File Allocazione dinamica della memoria.
Programmazione di Calcolatori
1.Scrivere una funzione per cercare un numero x in una lista circolare di interi. La funzione deve restituire NULL se il numero non esiste. 2.Scrivere.
Programmazione di Calcolatori
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione X Ingresso/Uscita di Interi Programmazione di Calcolatori: Ingresso/Uscita 1.
Unità Didattica 3 Linguaggio C
G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione XVIII Le matrici Programmazione di Calcolatori: le matrici 1.
Programmazione di Calcolatori
Esercizi su File.
Università degli Studi di BresciaA.A. 2012/2013 Fondamenti di Programmazione Docente: Alessandro SaettiA.A. 2012/2013 Università degli Studi di Brescia.
Università degli Studi di BresciaA.A. 2012/2013 Fondamenti di Programmazione Docente: Alessandro SaettiA.A. 2012/2013 Università degli Studi di Brescia.
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
2000 Prentice Hall, Inc. All rights reserved. Capitolo 5 (Deitel) Le funzioni Indice degli argomenti Introduzione Moduli nei programmi C 5.3.
Esercizi La distanza di hamming tra due interi x e y si definisce come il numero di posizioni nella rappresentazione binaria di x e y aventi bit differenti.
Esercizi su alberi binari di ricerca
Alberi binari Definizione della struttura dati: struct tree { };
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni – BCOR Ingegneria Elettronica – BELR Introduzione al C Esercitazione 5 D. Bloisi, A.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
Dato un vettore di reali di dimensione DIM, si inseriscano N elementi presi da tastiera, si utilizzi 0 per terminare l’inserimento. Ordinare gli elementi.
Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 1 Lezione 13 e 14 GESTIONE DEI FILE A) Nozioni sulla gestione dei.
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 2: 20 Aprile 2015 Marco D. Santambrogio – Gianluca Durelli –
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Operatori di incremento e decremento
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 8 Aprile 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 L Aprile 2015 Marco D. Santambrogio – Gianluca Durelli -
Files in C++ Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera)
Linguaggio C: Funzioni e Puntatori Laboratorio di Programmazione Gruppo 1.
APPUNTI SUL LINGUAGGIO C
Transcript della presentazione:

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);/* da tastiera:88\n*/ printf("%d %d %d\n", i,j,*p); return 0;}

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 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 Esercizi da svolgere 2 Scrivere una funzione che riceve in ingresso due stringhe e le scambia tra di loro. soluzione ex32_scambia.c

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 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 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 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 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 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 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 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 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 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 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 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 Un ultimo programma C main(t,_,a) char *a; { return!0<t?t<3?main(-79,-13,a+main(-87,1-_,main(- 86,0,a+1)+a)):1,t<_?main(t+1,_, a):3,main(-94,- 27+t,a)&&t==2?_<13?main(2,_+1,"%s %d %d\n"):9:16:t<0?t<- #{l+,/n{n+,/+#n+,/#\;# q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l \q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw'i ;# \){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' \iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb! /*de}'c \;;{nl'- {}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# \}'+}##(!!/"):t<50?_==*a?putchar(31[a]):main(65,_,a+1):main((*a=='/') +t,_, a+1):0<t?main(2,2,"%s"):*a=='/'||main(0,main(-61,*a,"!ek;dc }

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....