SlideShare a Scribd company logo
1 of 5
Download to read offline
Abilità Informatiche
                                          Ingegneria Chimica
                                   Università di Roma “La Sapienza”
                                       Prof. Stelitano Antonino

                                                 13 Giugno 2012
                                                   compito A

Nome:                               Cognome:                                      Matricola:
Le risposte corrette valgono 1 punto, quelle errate -0,25 punti, quelle non date 0 punti
Nota: Tra le proposte per ciascuna domanda una sola è esatta


Domanda 1
Linguaggi di programmazione.
A Le istruzioni in linguaggio assembler sono espresse mediante una sequenza di bit.
B Un programma di alto livello deve essere necessariamente tradotto per poter essere eseguito.
C Un compilatore per un linguaggio e‘ indipendente dall’architettura HW/SW del computer
   utilizzato.
D Il compilatore serve solo per rilevare gli errori sintattici in un programma.


Domanda 2
Si consideri il seguente programma C:
#include <stdio.h>
#define N 9
int f(int *a, int b) {
if( *a < *(a+b) ) /* punto 1 */
return b;
else
return *a=f( a, b+1 )+b;
}
main() {
int i, V[N]={0,1,2,3,4,5,6,7,8};
for ( i=N-1; i>=0; i-=2 )
V[i]=(i+5)/2;
/*punto 2 */
printf("%dnn", f(V,0));
/* punto 3 */
for (i=0; i<N; i++) /* punto 4*/
printf("%dn", V[i]);
}
A Il ciclo al punto 4 stampa i seguenti valori (in linee separate): 2,1,3,3,4,5,5,7,6.
B Al punto 1 la variabile V non `e visibile.
C Al punto 3 la variabile i ha valore 0.
D L’istruzione prima del punto 1 (if( *a<*(a+b) )) viene eseguita 2 volte.



                                                                                                 1
Domanda 3
Si consideri il seguente programma C:
#include <stdio.h>
main()
{int A; float B; char C, ch;
A=8; B=-2; C=’C’; ch=’D’;
A=( A%(int)B ?++A: ch-C); /* istruzione 1 */
B=A++/B; /* istruzione 2 */
ch=C+=1; ch-=C;/* istruzione 3 */
}

A Immediatamente dopo l’esecuzione dell’istruzione 1, la variabile A ha il valore
    corrispondente al carattere ASCII ’F’.
B Immediatamente dopo l’esecuzione dell’istruzione 3, le variabili C e ch hanno
    lo stesso valore.
C Immediatamente dopo l’esecuzione dell’istruzione 2, la variabile A ha il valore 2.
D Immediatamente dopo l’esecuzione dell’istruzione 3, la variabile C ha valore ’C’.


Domanda 4
Si consideri l’architettura di un Personal Computer.
A Il bus può essere utilizzato per il trasferimento di dati e istruzioni tra memoria e CPU.
B Nella fase di fetch viene eseguita l’istruzione indirizzata dal Program Counter.
C Il registro Flag (o PSW) contiene informazioni riguardanti l’ultima operazione eseguita dalla
   dalla Cash.; .
D Ad ogni ciclo il registro IR contiene l’istruzione da eseguire nel ciclo precedente


Domanda 5
Si consideri il seguente programma C:
#include <stdio.h>
main()
{int V[4]={0, 3, 4, 8};
int i, x, y=0, z;
for(i=3; i>=0; i--)/*istruzione 1*/
switch(V[i]%3-1) /*istruzione 2*/
{case 0: V[i]--;
case 1: x=V[i]; break;
case 2: z=0; break;
default: y=--x;
}
z=V[0]+V[2] - y; /* istruzione 3*/
}

A   Il blocco di istruzioni corrispondente al case 1: viene eseguito 5 volte.
B   L’esecuzione del ciclo for provoca 3 iterazioni.
C   Immediatamente dopo l’istruzione 3, la variabile z ha il valore 2.
D   Immediatamente dopo l’istruzione 3, la variabile x ha il valore 7.


                                                                                                  2
Domanda 6
Si consideri il seguente programma C:
#include <stdio.h>
#define N 8
main()
{typedef float f[N];
typedef char c[N];
f A={0,0.5,1,1.5,2.0,2.5,3.0,3.5};
c B={’M’,’i’,’a’,’o’,0,1,2,3};
int i;
A[N-1]=0;
for (i=1; i<N; i+=i)
A[i]=B[N-i]/i;
/* punto 1 */
if (A[--i]?1:A[0])
printf("iao!n");
else
{i=A[0];
for (;i<5;) printf("%c", B[i++]);
}
/* punto 2*/
}
A Il programma contiene un errore di sintassi.
B Al punto 2: A[i-1] ha valore 4.0.
C Il programma stampa ”Miao”.
D Al punto 2: il valore di A[2] e’ 2.0.


Domanda 7
Si considerino i vettori nel linguaggio C:
A Gli elementi di un vettore sono tutti dello stesso tipo.
B Un vettore di caratteri può essere considerato una stringa se non contiene il carattere ’0’.
C Nella definizione di un vettore, la dimensione può essere espressa mediante il nome di una
   variabile.
D L’indice di un elemento può essere una variabile di tipo float.


Domanda 8
Si considerino i tipi di dato scalari primitivi nel linguaggio C:
A La sottrazione tra un float e un char produce un errore in compilazione.
B Nel linguaggio C il vettore è un tipo scalare primitivo.
C L’applicazione della regola di conversione implicita produce una espressione in cui tutti gli
   operandi assumono uno stesso tipo.
D Il criterio di equivalenza strutturale può consentire l’assegnamento del valore di una variabile
   di tipo non primitivo a una variabile di tipo scalare primitivo.




                                                                                                     3
Domanda 9
Si consideri il seguente programma C:
#include <stdio.h>
#define N 9
int f(int *a, int b) {
if( *a < *(a+b) ) /* punto 1 */
return b;
else
return *a=f( a, b+1 )+b;
}
main() {
int i, V[N]={0,1,2,3,4,5,6,7,8};
for ( i=N-1; i>=0; i-=2 )
V[i]=(i+5)/2;
/*punto 2 */
printf("%dnn", f(V,0));
/* punto 3 */
for (i=0; i<N; i++) /* punto 4*/
printf("%dn", V[i]);
}

A   L’istruzione prima del punto 2 (V[i]=(i+5)/2) viene eseguita 4 volte.
B   La funzione f è tail-ricorsiva.
C   L’istruzione prima del punto 1 (if( *a<*(a+b) )) viene eseguita 3 volte.
D   L’istruzione al punto 3 stampa il valore 6.



Domanda 10
Si considerino le funzioni nel linguaggio C:
A Un file sorgente C, per essere compilato correttamente, deve contenere tutte le definizioni di
   tutte le funzioni che utilizza.
B Una funzione non pu`o restituire un tipo struct.
C Le istanze di funzioni utilizzano dei record di attivazione che vengono deallocati ogni volta
   che vengono generate ricorsivamente altre istanze della stessa funzione.
D I parametri formali di una istanza di una funzione vengono inizializzati al valore dei parametri
   effettivi (attuali) all’atto della chiamata.




                                                                                                     4
Domanda 11
Si scriva in MATLAB un codice che fornisca la seguente matrice: la prima riga sia composta dai
numeri da 1 a 10, la seconda riga composta dai numeri da 11 a 20 e la e la terza dai numeri da 21 a
30. Modificare la seconda riga in modo da annullarne gli elementi.

Uno dei possibili modi di creare la matrice è:




                                                                                                      5

More Related Content

What's hot

Puntatori e Riferimenti
Puntatori e RiferimentiPuntatori e Riferimenti
Puntatori e RiferimentiIlio Catallo
 
Esercitazione 2 (29 febbraio 2012)
Esercitazione 2 (29 febbraio 2012)Esercitazione 2 (29 febbraio 2012)
Esercitazione 2 (29 febbraio 2012)STELITANO
 
05 - Programmazione: Funzioni
05 - Programmazione: Funzioni05 - Programmazione: Funzioni
05 - Programmazione: FunzioniMajong DevJfu
 
6 Vettori E Matrici
6   Vettori E Matrici6   Vettori E Matrici
6 Vettori E Matriciguest60e9511
 
08 - Programmazione: Passaggio valori tra funzioni per riferimenti
08 - Programmazione: Passaggio valori tra funzioni per riferimenti08 - Programmazione: Passaggio valori tra funzioni per riferimenti
08 - Programmazione: Passaggio valori tra funzioni per riferimentiMajong DevJfu
 
5 Strutture Iterative
5   Strutture Iterative5   Strutture Iterative
5 Strutture Iterativeguest60e9511
 
Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Marcello Missiroli
 
Esercitazione 3 (14 marzo 2012)
Esercitazione 3 (14 marzo 2012)Esercitazione 3 (14 marzo 2012)
Esercitazione 3 (14 marzo 2012)STELITANO
 
Laboratorio Programmazione: Overflow e switch
Laboratorio Programmazione: Overflow e switchLaboratorio Programmazione: Overflow e switch
Laboratorio Programmazione: Overflow e switchMajong DevJfu
 
10 - Programmazione: Tipi di dato strutturati
10 - Programmazione: Tipi di dato strutturati10 - Programmazione: Tipi di dato strutturati
10 - Programmazione: Tipi di dato strutturatiMajong DevJfu
 
03 - Programmazione: Istruzioni C++
03 - Programmazione: Istruzioni C++03 - Programmazione: Istruzioni C++
03 - Programmazione: Istruzioni C++Majong DevJfu
 
Progetto MIPS/SPIM AA 2010-2011
Progetto MIPS/SPIM AA 2010-2011Progetto MIPS/SPIM AA 2010-2011
Progetto MIPS/SPIM AA 2010-2011Nicola Paoletti
 
9 Altre Istruzioni Di I O
9   Altre Istruzioni Di I O9   Altre Istruzioni Di I O
9 Altre Istruzioni Di I Oguest60e9511
 

What's hot (20)

Le basi di Pytthon 3 - Fondamenti n.1
Le basi di Pytthon 3 - Fondamenti n.1Le basi di Pytthon 3 - Fondamenti n.1
Le basi di Pytthon 3 - Fondamenti n.1
 
I cicli in Python 3
I cicli in Python 3I cicli in Python 3
I cicli in Python 3
 
Programmazione Top Down in C++
Programmazione Top Down in C++Programmazione Top Down in C++
Programmazione Top Down in C++
 
Algoritmi
Algoritmi Algoritmi
Algoritmi
 
Flow chart
Flow chartFlow chart
Flow chart
 
Puntatori e Riferimenti
Puntatori e RiferimentiPuntatori e Riferimenti
Puntatori e Riferimenti
 
Informatica di base
Informatica di baseInformatica di base
Informatica di base
 
Esercitazione 2 (29 febbraio 2012)
Esercitazione 2 (29 febbraio 2012)Esercitazione 2 (29 febbraio 2012)
Esercitazione 2 (29 febbraio 2012)
 
05 - Programmazione: Funzioni
05 - Programmazione: Funzioni05 - Programmazione: Funzioni
05 - Programmazione: Funzioni
 
6 Vettori E Matrici
6   Vettori E Matrici6   Vettori E Matrici
6 Vettori E Matrici
 
08 - Programmazione: Passaggio valori tra funzioni per riferimenti
08 - Programmazione: Passaggio valori tra funzioni per riferimenti08 - Programmazione: Passaggio valori tra funzioni per riferimenti
08 - Programmazione: Passaggio valori tra funzioni per riferimenti
 
5 Strutture Iterative
5   Strutture Iterative5   Strutture Iterative
5 Strutture Iterative
 
Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!
 
Esercitazione 3 (14 marzo 2012)
Esercitazione 3 (14 marzo 2012)Esercitazione 3 (14 marzo 2012)
Esercitazione 3 (14 marzo 2012)
 
Laboratorio Programmazione: Overflow e switch
Laboratorio Programmazione: Overflow e switchLaboratorio Programmazione: Overflow e switch
Laboratorio Programmazione: Overflow e switch
 
10 - Programmazione: Tipi di dato strutturati
10 - Programmazione: Tipi di dato strutturati10 - Programmazione: Tipi di dato strutturati
10 - Programmazione: Tipi di dato strutturati
 
03 - Programmazione: Istruzioni C++
03 - Programmazione: Istruzioni C++03 - Programmazione: Istruzioni C++
03 - Programmazione: Istruzioni C++
 
Progetto MIPS/SPIM AA 2010-2011
Progetto MIPS/SPIM AA 2010-2011Progetto MIPS/SPIM AA 2010-2011
Progetto MIPS/SPIM AA 2010-2011
 
Riepilogo Java C/C++
Riepilogo Java C/C++Riepilogo Java C/C++
Riepilogo Java C/C++
 
9 Altre Istruzioni Di I O
9   Altre Istruzioni Di I O9   Altre Istruzioni Di I O
9 Altre Istruzioni Di I O
 

Viewers also liked

Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)STELITANO
 
Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)STELITANO
 
Lezione 21 (2 maggio 2012)
Lezione 21 (2 maggio 2012)Lezione 21 (2 maggio 2012)
Lezione 21 (2 maggio 2012)STELITANO
 
Lezione 14 (2 aprile 2012)
Lezione 14 (2 aprile 2012)Lezione 14 (2 aprile 2012)
Lezione 14 (2 aprile 2012)STELITANO
 
Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)STELITANO
 
Lezione 22 (7 maggio 2012)
Lezione 22 (7 maggio 2012)Lezione 22 (7 maggio 2012)
Lezione 22 (7 maggio 2012)STELITANO
 
Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)STELITANO
 
Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)STELITANO
 

Viewers also liked (9)

Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)
 
Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)Lezione 4 (7 marzo 2012)
Lezione 4 (7 marzo 2012)
 
Lezione 21 (2 maggio 2012)
Lezione 21 (2 maggio 2012)Lezione 21 (2 maggio 2012)
Lezione 21 (2 maggio 2012)
 
الدقي
الدقيالدقي
الدقي
 
Lezione 14 (2 aprile 2012)
Lezione 14 (2 aprile 2012)Lezione 14 (2 aprile 2012)
Lezione 14 (2 aprile 2012)
 
Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)Lezione 2 (29 febbraio 2012)
Lezione 2 (29 febbraio 2012)
 
Lezione 22 (7 maggio 2012)
Lezione 22 (7 maggio 2012)Lezione 22 (7 maggio 2012)
Lezione 22 (7 maggio 2012)
 
Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)
 
Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)
 

Similar to Soluzione esame a del 13 giugno 2012

Strutture fondamentali della_programmaizone_visual_basicv2014_1.0
Strutture fondamentali della_programmaizone_visual_basicv2014_1.0Strutture fondamentali della_programmaizone_visual_basicv2014_1.0
Strutture fondamentali della_programmaizone_visual_basicv2014_1.0I.S.I.S. "Antonio Serra" - Napoli
 
Algoritmi di ordinamento
Algoritmi di ordinamento Algoritmi di ordinamento
Algoritmi di ordinamento Emilia Calzetta
 
Fondamenti di Informatica - Esercitazione3 (1).pdf
Fondamenti di Informatica - Esercitazione3 (1).pdfFondamenti di Informatica - Esercitazione3 (1).pdf
Fondamenti di Informatica - Esercitazione3 (1).pdflorenzosalvi30
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)STELITANO
 
Python@Unina - Exercises
Python@Unina - ExercisesPython@Unina - Exercises
Python@Unina - ExercisesNaLUG
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)STELITANO
 
Effective Code Transformations in C++
Effective Code Transformations in C++Effective Code Transformations in C++
Effective Code Transformations in C++Marco Arena
 
Lezione 5 (7 marzo 2012)
Lezione 5 (7 marzo 2012)Lezione 5 (7 marzo 2012)
Lezione 5 (7 marzo 2012)STELITANO
 
A brief intro to TDD for a JUG-TAA event
A brief intro to TDD for a JUG-TAA eventA brief intro to TDD for a JUG-TAA event
A brief intro to TDD for a JUG-TAA eventPietro Di Bello
 
7. MATLAB - Parte 2 (IO, cicli, funzioni).pdf
7. MATLAB - Parte 2 (IO, cicli, funzioni).pdf7. MATLAB - Parte 2 (IO, cicli, funzioni).pdf
7. MATLAB - Parte 2 (IO, cicli, funzioni).pdfPasqualeRuocco5
 
Lezione 3 (29 febbraio 2012)
Lezione 3 (29 febbraio 2012)Lezione 3 (29 febbraio 2012)
Lezione 3 (29 febbraio 2012)STELITANO
 
Eserc v del 26 marzo 2012
 Eserc v del 26 marzo 2012 Eserc v del 26 marzo 2012
Eserc v del 26 marzo 2012STELITANO
 
Ecdl modulo 1 -Fondamenti
Ecdl modulo 1 -FondamentiEcdl modulo 1 -Fondamenti
Ecdl modulo 1 -FondamentiAngela Cristina
 

Similar to Soluzione esame a del 13 giugno 2012 (20)

Strutture fondamentali della_programmaizone_visual_basicv2014_1.0
Strutture fondamentali della_programmaizone_visual_basicv2014_1.0Strutture fondamentali della_programmaizone_visual_basicv2014_1.0
Strutture fondamentali della_programmaizone_visual_basicv2014_1.0
 
Algoritmi di ordinamento
Algoritmi di ordinamento Algoritmi di ordinamento
Algoritmi di ordinamento
 
Fondamenti di Informatica - Esercitazione3 (1).pdf
Fondamenti di Informatica - Esercitazione3 (1).pdfFondamenti di Informatica - Esercitazione3 (1).pdf
Fondamenti di Informatica - Esercitazione3 (1).pdf
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)
 
Tutorial Matlab 2009
Tutorial Matlab 2009Tutorial Matlab 2009
Tutorial Matlab 2009
 
Python@Unina - Exercises
Python@Unina - ExercisesPython@Unina - Exercises
Python@Unina - Exercises
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)
 
La scomposizione in sotto programmi in C++.pptx
La scomposizione in sotto programmi in C++.pptxLa scomposizione in sotto programmi in C++.pptx
La scomposizione in sotto programmi in C++.pptx
 
Dal c a Java (3/3)
Dal c a Java (3/3)Dal c a Java (3/3)
Dal c a Java (3/3)
 
Terza lezioneandroid
Terza lezioneandroidTerza lezioneandroid
Terza lezioneandroid
 
Quinta lezione android
Quinta lezione androidQuinta lezione android
Quinta lezione android
 
Quarta lezioneandroid
Quarta lezioneandroidQuarta lezioneandroid
Quarta lezioneandroid
 
Effective Code Transformations in C++
Effective Code Transformations in C++Effective Code Transformations in C++
Effective Code Transformations in C++
 
Lezione 5 (7 marzo 2012)
Lezione 5 (7 marzo 2012)Lezione 5 (7 marzo 2012)
Lezione 5 (7 marzo 2012)
 
A brief intro to TDD for a JUG-TAA event
A brief intro to TDD for a JUG-TAA eventA brief intro to TDD for a JUG-TAA event
A brief intro to TDD for a JUG-TAA event
 
Java lezione2
Java lezione2Java lezione2
Java lezione2
 
7. MATLAB - Parte 2 (IO, cicli, funzioni).pdf
7. MATLAB - Parte 2 (IO, cicli, funzioni).pdf7. MATLAB - Parte 2 (IO, cicli, funzioni).pdf
7. MATLAB - Parte 2 (IO, cicli, funzioni).pdf
 
Lezione 3 (29 febbraio 2012)
Lezione 3 (29 febbraio 2012)Lezione 3 (29 febbraio 2012)
Lezione 3 (29 febbraio 2012)
 
Eserc v del 26 marzo 2012
 Eserc v del 26 marzo 2012 Eserc v del 26 marzo 2012
Eserc v del 26 marzo 2012
 
Ecdl modulo 1 -Fondamenti
Ecdl modulo 1 -FondamentiEcdl modulo 1 -Fondamenti
Ecdl modulo 1 -Fondamenti
 

More from STELITANO

Dispenza aloisi
Dispenza aloisiDispenza aloisi
Dispenza aloisiSTELITANO
 
Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)STELITANO
 
Lezione 20 (2 maggio 2012) seconda parte
Lezione 20 (2 maggio 2012) seconda parteLezione 20 (2 maggio 2012) seconda parte
Lezione 20 (2 maggio 2012) seconda parteSTELITANO
 
Lezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parteLezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parteSTELITANO
 
Lezione 19 (18 aprile 2012) ricerca
Lezione 19 (18 aprile 2012)   ricercaLezione 19 (18 aprile 2012)   ricerca
Lezione 19 (18 aprile 2012) ricercaSTELITANO
 
Lezione 18 (18 aprile 2012) ordinamenti
Lezione 18 (18 aprile 2012)   ordinamentiLezione 18 (18 aprile 2012)   ordinamenti
Lezione 18 (18 aprile 2012) ordinamentiSTELITANO
 
Lezione 15 (2 aprile 2012)
Lezione 15 (2 aprile 2012)Lezione 15 (2 aprile 2012)
Lezione 15 (2 aprile 2012)STELITANO
 
Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)STELITANO
 
Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)STELITANO
 
Lezione 12 (28 marzo 2012) puntatori vettori
Lezione 12 (28 marzo 2012) puntatori   vettoriLezione 12 (28 marzo 2012) puntatori   vettori
Lezione 12 (28 marzo 2012) puntatori vettoriSTELITANO
 
Lezione 12 (28 marzo 2012) funzioni memoria - puntatori
Lezione 12 (28 marzo 2012) funzioni   memoria - puntatoriLezione 12 (28 marzo 2012) funzioni   memoria - puntatori
Lezione 12 (28 marzo 2012) funzioni memoria - puntatoriSTELITANO
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)STELITANO
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)STELITANO
 
Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)STELITANO
 
Lezione 10 (21 marzo 2012)3
Lezione 10 (21 marzo 2012)3Lezione 10 (21 marzo 2012)3
Lezione 10 (21 marzo 2012)3STELITANO
 
Lezione 10 (21 marzo 2012)2
Lezione 10 (21 marzo 2012)2Lezione 10 (21 marzo 2012)2
Lezione 10 (21 marzo 2012)2STELITANO
 
Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)STELITANO
 
Esercitazione 4 (19 marzo 2012)
Esercitazione 4 (19 marzo 2012)Esercitazione 4 (19 marzo 2012)
Esercitazione 4 (19 marzo 2012)STELITANO
 

More from STELITANO (19)

Risultati
RisultatiRisultati
Risultati
 
Dispenza aloisi
Dispenza aloisiDispenza aloisi
Dispenza aloisi
 
Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)Lezione 23 (9 maggio 2012)
Lezione 23 (9 maggio 2012)
 
Lezione 20 (2 maggio 2012) seconda parte
Lezione 20 (2 maggio 2012) seconda parteLezione 20 (2 maggio 2012) seconda parte
Lezione 20 (2 maggio 2012) seconda parte
 
Lezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parteLezione 20 (2 maggio 2012) prima parte
Lezione 20 (2 maggio 2012) prima parte
 
Lezione 19 (18 aprile 2012) ricerca
Lezione 19 (18 aprile 2012)   ricercaLezione 19 (18 aprile 2012)   ricerca
Lezione 19 (18 aprile 2012) ricerca
 
Lezione 18 (18 aprile 2012) ordinamenti
Lezione 18 (18 aprile 2012)   ordinamentiLezione 18 (18 aprile 2012)   ordinamenti
Lezione 18 (18 aprile 2012) ordinamenti
 
Lezione 15 (2 aprile 2012)
Lezione 15 (2 aprile 2012)Lezione 15 (2 aprile 2012)
Lezione 15 (2 aprile 2012)
 
Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)
 
Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)
 
Lezione 12 (28 marzo 2012) puntatori vettori
Lezione 12 (28 marzo 2012) puntatori   vettoriLezione 12 (28 marzo 2012) puntatori   vettori
Lezione 12 (28 marzo 2012) puntatori vettori
 
Lezione 12 (28 marzo 2012) funzioni memoria - puntatori
Lezione 12 (28 marzo 2012) funzioni   memoria - puntatoriLezione 12 (28 marzo 2012) funzioni   memoria - puntatori
Lezione 12 (28 marzo 2012) funzioni memoria - puntatori
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)
 
Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)
 
Lezione 10 (21 marzo 2012)3
Lezione 10 (21 marzo 2012)3Lezione 10 (21 marzo 2012)3
Lezione 10 (21 marzo 2012)3
 
Lezione 10 (21 marzo 2012)2
Lezione 10 (21 marzo 2012)2Lezione 10 (21 marzo 2012)2
Lezione 10 (21 marzo 2012)2
 
Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)Lezione 10 (21 marzo 2012)
Lezione 10 (21 marzo 2012)
 
Esercitazione 4 (19 marzo 2012)
Esercitazione 4 (19 marzo 2012)Esercitazione 4 (19 marzo 2012)
Esercitazione 4 (19 marzo 2012)
 

Soluzione esame a del 13 giugno 2012

  • 1. Abilità Informatiche Ingegneria Chimica Università di Roma “La Sapienza” Prof. Stelitano Antonino 13 Giugno 2012 compito A Nome: Cognome: Matricola: Le risposte corrette valgono 1 punto, quelle errate -0,25 punti, quelle non date 0 punti Nota: Tra le proposte per ciascuna domanda una sola è esatta Domanda 1 Linguaggi di programmazione. A Le istruzioni in linguaggio assembler sono espresse mediante una sequenza di bit. B Un programma di alto livello deve essere necessariamente tradotto per poter essere eseguito. C Un compilatore per un linguaggio e‘ indipendente dall’architettura HW/SW del computer utilizzato. D Il compilatore serve solo per rilevare gli errori sintattici in un programma. Domanda 2 Si consideri il seguente programma C: #include <stdio.h> #define N 9 int f(int *a, int b) { if( *a < *(a+b) ) /* punto 1 */ return b; else return *a=f( a, b+1 )+b; } main() { int i, V[N]={0,1,2,3,4,5,6,7,8}; for ( i=N-1; i>=0; i-=2 ) V[i]=(i+5)/2; /*punto 2 */ printf("%dnn", f(V,0)); /* punto 3 */ for (i=0; i<N; i++) /* punto 4*/ printf("%dn", V[i]); } A Il ciclo al punto 4 stampa i seguenti valori (in linee separate): 2,1,3,3,4,5,5,7,6. B Al punto 1 la variabile V non `e visibile. C Al punto 3 la variabile i ha valore 0. D L’istruzione prima del punto 1 (if( *a<*(a+b) )) viene eseguita 2 volte. 1
  • 2. Domanda 3 Si consideri il seguente programma C: #include <stdio.h> main() {int A; float B; char C, ch; A=8; B=-2; C=’C’; ch=’D’; A=( A%(int)B ?++A: ch-C); /* istruzione 1 */ B=A++/B; /* istruzione 2 */ ch=C+=1; ch-=C;/* istruzione 3 */ } A Immediatamente dopo l’esecuzione dell’istruzione 1, la variabile A ha il valore corrispondente al carattere ASCII ’F’. B Immediatamente dopo l’esecuzione dell’istruzione 3, le variabili C e ch hanno lo stesso valore. C Immediatamente dopo l’esecuzione dell’istruzione 2, la variabile A ha il valore 2. D Immediatamente dopo l’esecuzione dell’istruzione 3, la variabile C ha valore ’C’. Domanda 4 Si consideri l’architettura di un Personal Computer. A Il bus può essere utilizzato per il trasferimento di dati e istruzioni tra memoria e CPU. B Nella fase di fetch viene eseguita l’istruzione indirizzata dal Program Counter. C Il registro Flag (o PSW) contiene informazioni riguardanti l’ultima operazione eseguita dalla dalla Cash.; . D Ad ogni ciclo il registro IR contiene l’istruzione da eseguire nel ciclo precedente Domanda 5 Si consideri il seguente programma C: #include <stdio.h> main() {int V[4]={0, 3, 4, 8}; int i, x, y=0, z; for(i=3; i>=0; i--)/*istruzione 1*/ switch(V[i]%3-1) /*istruzione 2*/ {case 0: V[i]--; case 1: x=V[i]; break; case 2: z=0; break; default: y=--x; } z=V[0]+V[2] - y; /* istruzione 3*/ } A Il blocco di istruzioni corrispondente al case 1: viene eseguito 5 volte. B L’esecuzione del ciclo for provoca 3 iterazioni. C Immediatamente dopo l’istruzione 3, la variabile z ha il valore 2. D Immediatamente dopo l’istruzione 3, la variabile x ha il valore 7. 2
  • 3. Domanda 6 Si consideri il seguente programma C: #include <stdio.h> #define N 8 main() {typedef float f[N]; typedef char c[N]; f A={0,0.5,1,1.5,2.0,2.5,3.0,3.5}; c B={’M’,’i’,’a’,’o’,0,1,2,3}; int i; A[N-1]=0; for (i=1; i<N; i+=i) A[i]=B[N-i]/i; /* punto 1 */ if (A[--i]?1:A[0]) printf("iao!n"); else {i=A[0]; for (;i<5;) printf("%c", B[i++]); } /* punto 2*/ } A Il programma contiene un errore di sintassi. B Al punto 2: A[i-1] ha valore 4.0. C Il programma stampa ”Miao”. D Al punto 2: il valore di A[2] e’ 2.0. Domanda 7 Si considerino i vettori nel linguaggio C: A Gli elementi di un vettore sono tutti dello stesso tipo. B Un vettore di caratteri può essere considerato una stringa se non contiene il carattere ’0’. C Nella definizione di un vettore, la dimensione può essere espressa mediante il nome di una variabile. D L’indice di un elemento può essere una variabile di tipo float. Domanda 8 Si considerino i tipi di dato scalari primitivi nel linguaggio C: A La sottrazione tra un float e un char produce un errore in compilazione. B Nel linguaggio C il vettore è un tipo scalare primitivo. C L’applicazione della regola di conversione implicita produce una espressione in cui tutti gli operandi assumono uno stesso tipo. D Il criterio di equivalenza strutturale può consentire l’assegnamento del valore di una variabile di tipo non primitivo a una variabile di tipo scalare primitivo. 3
  • 4. Domanda 9 Si consideri il seguente programma C: #include <stdio.h> #define N 9 int f(int *a, int b) { if( *a < *(a+b) ) /* punto 1 */ return b; else return *a=f( a, b+1 )+b; } main() { int i, V[N]={0,1,2,3,4,5,6,7,8}; for ( i=N-1; i>=0; i-=2 ) V[i]=(i+5)/2; /*punto 2 */ printf("%dnn", f(V,0)); /* punto 3 */ for (i=0; i<N; i++) /* punto 4*/ printf("%dn", V[i]); } A L’istruzione prima del punto 2 (V[i]=(i+5)/2) viene eseguita 4 volte. B La funzione f è tail-ricorsiva. C L’istruzione prima del punto 1 (if( *a<*(a+b) )) viene eseguita 3 volte. D L’istruzione al punto 3 stampa il valore 6. Domanda 10 Si considerino le funzioni nel linguaggio C: A Un file sorgente C, per essere compilato correttamente, deve contenere tutte le definizioni di tutte le funzioni che utilizza. B Una funzione non pu`o restituire un tipo struct. C Le istanze di funzioni utilizzano dei record di attivazione che vengono deallocati ogni volta che vengono generate ricorsivamente altre istanze della stessa funzione. D I parametri formali di una istanza di una funzione vengono inizializzati al valore dei parametri effettivi (attuali) all’atto della chiamata. 4
  • 5. Domanda 11 Si scriva in MATLAB un codice che fornisca la seguente matrice: la prima riga sia composta dai numeri da 1 a 10, la seconda riga composta dai numeri da 11 a 20 e la e la terza dai numeri da 21 a 30. Modificare la seconda riga in modo da annullarne gli elementi. Uno dei possibili modi di creare la matrice è: 5