La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Laboratorio di Linguaggi... altre D O M A N D E ! Marco Tarini Università dell’Insubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.

Presentazioni simili


Presentazione sul tema: "Laboratorio di Linguaggi... altre D O M A N D E ! Marco Tarini Università dell’Insubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso."— Transcript della presentazione:

1 Laboratorio di Linguaggi... altre D O M A N D E ! Marco Tarini Università dell’Insubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in Informatica Anno Accademico 2006/07

2 M a r c o T a r i n i ‧ L a b o r a t o r i o d i L i n g u a g g i ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a Domanda 1 Fatto: un programma C e' composto da un insieme di variabili e funzioni Domanda: da dove parte l'esecuzione?

3 M a r c o T a r i n i ‧ L a b o r a t o r i o d i L i n g u a g g i ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a Domanda 2 il seguente codice: double a=5.0; void proc() { printf("%f",a); } void main() { double a=10.0f; proc(); } A) cosa scriverebbe se il C usasse lo scoping statico? B) cosa scriverebbe se il C usasse lo scoping dinamico? C) cosa scrive davvero? (essendo il C come e')

4 M a r c o T a r i n i ‧ L a b o r a t o r i o d i L i n g u a g g i ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a Domanda 3 Questo programma compila senza errori? in caso positivo, dire cosa scrive in caso negativo, dire perchè e come si può rimediare int main() { int x; void procedura() { x = x + 1; } x = 100; funzione(); printf("%d\n",x); }

5 M a r c o T a r i n i ‧ L a b o r a t o r i o d i L i n g u a g g i ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a Domanda 4 void incrm_se_postv (int x) { if (x>0) x = x + 1; } int main(){ int temp = 5; incrm_se_postv( temp ); printf("%d\n",temp); } Questo programma compila senza errori? in caso negativo, dire perchè e come rimediare in caso positivo, dire cosa scrive

6 M a r c o T a r i n i ‧ L a b o r a t o r i o d i L i n g u a g g i ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a Domanda 8 Quanto vale l'intero x dopo ciascuno di questi assegnamenti? x = 0x10; x = 0x10 + 010; A) B)

7 M a r c o T a r i n i ‧ L a b o r a t o r i o d i L i n g u a g g i ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a Domanda 12 Fornire un esempio qualunque di literal (valore costante) per ciascuno di questi tipi: char A) unsigned int B) double E) float D) F) almeno per il tipo A, fornire un secondo esempio di literal, in una forma diversa.

8 M a r c o T a r i n i ‧ L a b o r a t o r i o d i L i n g u a g g i ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a Domanda 19 Scrivere un pezzo di programma che usi il costrutto for e che scriva sullo schermo gli N numeri naturali da 1 a N –includere le definizioni delle eventuali variabili utilizzate –Help: la sintassi del for è: for ( ; ; ) ;

9 M a r c o T a r i n i ‧ L a b o r a t o r i o d i L i n g u a g g i ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a Domanda 20 Scrivere uno pezzo di programma che usi un solo costrutto while e che calcoli –la somma dei primi N numeri (da 1 a N) e –la somma dei quadrati dei primi N numeri Le due somme devono essere memorizzate nelle due variabili sum e sumquadr –Help: sintassi del while: while ( ) ;

10 M a r c o T a r i n i ‧ L a b o r a t o r i o d i L i n g u a g g i ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a Domanda 21 Quanti accessi alla memoria in lettura, e quanti in scrittura, saranno necessari per eseguire i seguenti assegnamenti ? (assumere che gli identificatori rappresentino variabili del tipo corretto) x = 10; x = y; *p = *q; *p = x; *p = 11; A) B)B) C)C) D)D) E)E) *p = x + y; F)F) *(*z) = 6; G)G)

11 M a r c o T a r i n i ‧ L a b o r a t o r i o d i L i n g u a g g i ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a Domanda 24 00 00 00 02 00 00 00 09 00 00 00 05 00 00 00 08 61 2A 02 1C 00 00 00 07 12 33 A3 D0 Data il seguente stato della memoria e tabella degli identificatori : 0x612A0230 0x612A022C 0x612A0228 0x612A0224 0x612A0220 0x612A021C 0x612A0218 0x612A0214 indirizzo valore ide.tipo locazione I int xx pp int* 612A0224 612A022C quanto valgono le seguenti espressioni? xx A) &xx B) pp C)C) *pp D)D) (*pp)+1 E)E) (*pp+1) F)F) pp[1] G)G) xx+1 H)H) tabella degli identificatori

12 M a r c o T a r i n i ‧ L a b o r a t o r i o d i L i n g u a g g i ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a Domanda 25 al posto dei puntini scrivere un breve programma che costruisca un file di testo dal nome "testo.txt" contenente solo la scritta "ciao" –help: servono tre istruzioni: apertura, scrittura e... int main(){ FILE* file;... }

13 M a r c o T a r i n i ‧ L a b o r a t o r i o d i L i n g u a g g i ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a Domanda 26 Scrivere cosa produce il precompilatore a partire dal seguente programma: #define TEST x+y int p(int x, int y) { if (TEST < 10) x = TEST; } return TEST; }

14 M a r c o T a r i n i ‧ L a b o r a t o r i o d i L i n g u a g g i ‧ 2 0 0 6 / 0 7 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a Domanda 28 Cosa scrive il seguente programma? (utilizzare un quadretto per carattere) #include int main() { int x=17; printf("uno: %d\n",x); printf("due: %04d\n",x); printf("tre: %x\n",x); printf("qua: %d%d\n",x,x); }


Scaricare ppt "Laboratorio di Linguaggi... altre D O M A N D E ! Marco Tarini Università dell’Insubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso."

Presentazioni simili


Annunci Google