Universita’ degli Studi di Pavia FACOLTA’ DI INGEGNERIA Esame di Fondamenti Informatica a.a. 2012/2013 Appello 11 luglio 2013 NOME: COGNOME: Matricola: Prova Pratica (data e voto) (1) La codifica delle informazioni numeriche. (2) Descrivere gli operatori base e le proprieta’ dell’algebra booleana. (3) Per I tre tipi di traduttori (assemblatori, compilatori e interprete) descrivere il meccanismo di funzionamento, i vantaggi e gli svantaggi. (4) Date le seguenti istruzioni str[10] = 'A'; p=str; Definire il formato e il valore visualizzato a video delle seguenti istruzioni printf( "str[10]=%___\n", str[10] ); printf( "str[10]=%___\n", p[10] ); printf( " str[10]=%___\n", *(p+10) ); Definire il formato e il valore visualizzato a video delle seguenti istruzioni printf( "str[10]=%_____\n", str ); printf( "str[10]=% _____\n", p); printf( " str[10]=%_____\n", (p+10) ); Commentare le seguenti istruzioni, definendo formato,valore visualizzato a video e eventualmente commentare gli errori presenti. char tmp = *p; printf( "str[10]=%_____\n", tmp); printf( "str[10]=% _____\n", &tmp); printf( " str[10]=%_____\n", &(p) ); (5) Dati I seguenti spezzoni di codice Codice A inta,b=10; intdouble (&a); void intdouble( int *number) { *number=2*(*number); } Codice B int a, b = 10; a = intdouble (a); int intdouble( int number) { return 2*number; } Commentare il diverso tipo di passaggio dei parametri definendone tipologia e meccanismo di funzionamento. Spiegare il motivo per cui la funzione definita nel codice A e’ diversa nella definizione da quella del codice B.