SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
Abilità Informatiche
                                          Ingegneria Chimica
                                   Università di Roma “La Sapienza”
                                       Prof. Stelitano Antonino

                                                 13 Giugno 2012
                                                    compito B

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
Si considerino i tipi di dato scalari primitivi nel linguaggio C:
A L’overloading degli operatori permette di denotare operatori diversi con lo stesso simbolo.
B E’ possibile applicare l’operatore % (modulo, o resto) a una variabile float e una variabile int.
C Nel linguaggio C il vettore e’ un tipo scalare primitivo.
D L’applicazione della regola di conversione implicita produce una espressione in cui tutti gli
   operandi assumono uno stesso tipo.



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   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.
                                                                                                1
Domanda 3
Linguaggi di programmazione.
A Le istruzioni in linguaggio PASCAL 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 è indipendente dall’architettura HW/SW del computer utilizzato.
D Il compilatore serve solo per rilevare gli errori sintattici in un programma.




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
   cash
D Ad ogni ciclo il registro IR contiene l’istruzione da eseguire nel ciclo successivo




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




                                                                                                  2
Domanda 6
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.



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


                                                                                                  3
Domanda 9
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.


Domanda 10
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("Miao!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] è 2.0.




                                                                                                     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

Más contenido relacionado

La actualidad más candente

Lezione 6 (12 marzo 2012)
Lezione 6 (12 marzo 2012)Lezione 6 (12 marzo 2012)
Lezione 6 (12 marzo 2012)STELITANO
 
Laboratorio Programmazione: Operatori logici
Laboratorio Programmazione: Operatori logiciLaboratorio Programmazione: Operatori logici
Laboratorio Programmazione: Operatori logiciMajong DevJfu
 
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
 
Python - Primi passi
Python - Primi passi Python - Primi passi
Python - Primi passi orestJump
 
Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Marcello Missiroli
 
5 Strutture Iterative
5   Strutture Iterative5   Strutture Iterative
5 Strutture Iterativeguest60e9511
 
Progetto MIPS/SPIM AA 2010-2011
Progetto MIPS/SPIM AA 2010-2011Progetto MIPS/SPIM AA 2010-2011
Progetto MIPS/SPIM AA 2010-2011Nicola Paoletti
 
Puntatori e Riferimenti
Puntatori e RiferimentiPuntatori e Riferimenti
Puntatori e RiferimentiIlio Catallo
 
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
 
05 - Programmazione: Funzioni
05 - Programmazione: Funzioni05 - Programmazione: Funzioni
05 - Programmazione: FunzioniMajong DevJfu
 
Laboratorio Programmazione: Overflow e switch
Laboratorio Programmazione: Overflow e switchLaboratorio Programmazione: Overflow e switch
Laboratorio Programmazione: Overflow e switchMajong DevJfu
 
Esercitazione 2 (29 febbraio 2012)
Esercitazione 2 (29 febbraio 2012)Esercitazione 2 (29 febbraio 2012)
Esercitazione 2 (29 febbraio 2012)STELITANO
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)STELITANO
 
Algoritmo probabilistico di tipo montecarlo per il list decoding
Algoritmo probabilistico di tipo montecarlo per il list decodingAlgoritmo probabilistico di tipo montecarlo per il list decoding
Algoritmo probabilistico di tipo montecarlo per il list decodingdanielenicassio
 
03 - Programmazione: Istruzioni C++
03 - Programmazione: Istruzioni C++03 - Programmazione: Istruzioni C++
03 - Programmazione: Istruzioni C++Majong 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
 

La actualidad más candente (20)

Programmazione Top Down in C++
Programmazione Top Down in C++Programmazione Top Down in C++
Programmazione Top Down in C++
 
Lezione 6 (12 marzo 2012)
Lezione 6 (12 marzo 2012)Lezione 6 (12 marzo 2012)
Lezione 6 (12 marzo 2012)
 
Laboratorio Programmazione: Operatori logici
Laboratorio Programmazione: Operatori logiciLaboratorio Programmazione: Operatori logici
Laboratorio Programmazione: Operatori logici
 
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
 
Python - Primi passi
Python - Primi passi Python - Primi passi
Python - Primi passi
 
Scomposizione di programmi e approccio in visual basic
Scomposizione di programmi e approccio in visual basicScomposizione di programmi e approccio in visual basic
Scomposizione di programmi e approccio in visual basic
 
Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!
 
5 Strutture Iterative
5   Strutture Iterative5   Strutture Iterative
5 Strutture Iterative
 
Algoritmi
Algoritmi Algoritmi
Algoritmi
 
Progetto MIPS/SPIM AA 2010-2011
Progetto MIPS/SPIM AA 2010-2011Progetto MIPS/SPIM AA 2010-2011
Progetto MIPS/SPIM AA 2010-2011
 
Puntatori e Riferimenti
Puntatori e RiferimentiPuntatori e Riferimenti
Puntatori e Riferimenti
 
Flow chart
Flow chartFlow chart
Flow chart
 
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
 
05 - Programmazione: Funzioni
05 - Programmazione: Funzioni05 - Programmazione: Funzioni
05 - Programmazione: Funzioni
 
Laboratorio Programmazione: Overflow e switch
Laboratorio Programmazione: Overflow e switchLaboratorio Programmazione: Overflow e switch
Laboratorio Programmazione: Overflow e switch
 
Esercitazione 2 (29 febbraio 2012)
Esercitazione 2 (29 febbraio 2012)Esercitazione 2 (29 febbraio 2012)
Esercitazione 2 (29 febbraio 2012)
 
Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)Lezione 11 (26 marzo 2012)
Lezione 11 (26 marzo 2012)
 
Algoritmo probabilistico di tipo montecarlo per il list decoding
Algoritmo probabilistico di tipo montecarlo per il list decodingAlgoritmo probabilistico di tipo montecarlo per il list decoding
Algoritmo probabilistico di tipo montecarlo per il list decoding
 
03 - Programmazione: Istruzioni C++
03 - Programmazione: Istruzioni C++03 - Programmazione: Istruzioni C++
03 - Programmazione: Istruzioni C++
 
10 - Programmazione: Tipi di dato strutturati
10 - Programmazione: Tipi di dato strutturati10 - Programmazione: Tipi di dato strutturati
10 - Programmazione: Tipi di dato strutturati
 

Destacado

4.2 Design Di Sistema Per Equitá E Coesione Sociale Vezzoli 09 10
4.2 Design Di Sistema Per Equitá E Coesione Sociale Vezzoli 09 104.2 Design Di Sistema Per Equitá E Coesione Sociale Vezzoli 09 10
4.2 Design Di Sistema Per Equitá E Coesione Sociale Vezzoli 09 10vezzoliDSS
 
About wave pad sound editor masters edition
About wave pad sound editor masters editionAbout wave pad sound editor masters edition
About wave pad sound editor masters editionwindowsprogramfiles
 
Manual para crear un video
Manual para crear un videoManual para crear un video
Manual para crear un videoDavid Queche
 
Etwining europeanqualitylabel projet "Enseigner le français et l'italien ave...
Etwining  europeanqualitylabel projet "Enseigner le français et l'italien ave...Etwining  europeanqualitylabel projet "Enseigner le français et l'italien ave...
Etwining europeanqualitylabel projet "Enseigner le français et l'italien ave...Marina Marino
 
S. maria
S. mariaS. maria
S. mariaktema52
 

Destacado (8)

246 cisl nota-modifiche_81
246   cisl nota-modifiche_81246   cisl nota-modifiche_81
246 cisl nota-modifiche_81
 
4.2 Design Di Sistema Per Equitá E Coesione Sociale Vezzoli 09 10
4.2 Design Di Sistema Per Equitá E Coesione Sociale Vezzoli 09 104.2 Design Di Sistema Per Equitá E Coesione Sociale Vezzoli 09 10
4.2 Design Di Sistema Per Equitá E Coesione Sociale Vezzoli 09 10
 
About wave pad sound editor masters edition
About wave pad sound editor masters editionAbout wave pad sound editor masters edition
About wave pad sound editor masters edition
 
1
11
1
 
Manual para crear un video
Manual para crear un videoManual para crear un video
Manual para crear un video
 
Etwining europeanqualitylabel projet "Enseigner le français et l'italien ave...
Etwining  europeanqualitylabel projet "Enseigner le français et l'italien ave...Etwining  europeanqualitylabel projet "Enseigner le français et l'italien ave...
Etwining europeanqualitylabel projet "Enseigner le français et l'italien ave...
 
Poster mobile200 fastweb maggio 2013
Poster mobile200 fastweb maggio 2013Poster mobile200 fastweb maggio 2013
Poster mobile200 fastweb maggio 2013
 
S. maria
S. mariaS. maria
S. maria
 

Similar a Soluzione esame b del 13 giugno 2012

Esercitazione 3 (14 marzo 2012)
Esercitazione 3 (14 marzo 2012)Esercitazione 3 (14 marzo 2012)
Esercitazione 3 (14 marzo 2012)STELITANO
 
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
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)STELITANO
 
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
 
Ecdl modulo 1 -Fondamenti
Ecdl modulo 1 -FondamentiEcdl modulo 1 -Fondamenti
Ecdl modulo 1 -FondamentiAngela Cristina
 
Algoritmi di ordinamento
Algoritmi di ordinamento Algoritmi di ordinamento
Algoritmi di ordinamento Emilia Calzetta
 
Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)STELITANO
 
Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)STELITANO
 
Corso Programmazione Java Base
Corso Programmazione Java BaseCorso Programmazione Java Base
Corso Programmazione Java BaseK-Tech Formazione
 
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
 
Python@Unina - Exercises
Python@Unina - ExercisesPython@Unina - Exercises
Python@Unina - ExercisesNaLUG
 
Lezione 1 (27 febbraio 2012)
Lezione 1 (27 febbraio 2012)Lezione 1 (27 febbraio 2012)
Lezione 1 (27 febbraio 2012)STELITANO
 
Lezione 1 (27 febbraio 2012)
Lezione 1 (27 febbraio 2012)Lezione 1 (27 febbraio 2012)
Lezione 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
 

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

Esercitazione 3 (14 marzo 2012)
Esercitazione 3 (14 marzo 2012)Esercitazione 3 (14 marzo 2012)
Esercitazione 3 (14 marzo 2012)
 
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)
 
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
 
Riepilogo Java C/C++
Riepilogo Java C/C++Riepilogo Java C/C++
Riepilogo Java C/C++
 
Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)Lezione 12 (28 marzo 2012)
Lezione 12 (28 marzo 2012)
 
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
 
Ecdl modulo 1 -Fondamenti
Ecdl modulo 1 -FondamentiEcdl modulo 1 -Fondamenti
Ecdl modulo 1 -Fondamenti
 
Algoritmi di ordinamento
Algoritmi di ordinamento Algoritmi di ordinamento
Algoritmi di ordinamento
 
7 Sottoprogrammi
7   Sottoprogrammi7   Sottoprogrammi
7 Sottoprogrammi
 
Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)Lezione 16 (2 aprile 2012)
Lezione 16 (2 aprile 2012)
 
Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)Esercitazione 1 (27 febbraio 2012)
Esercitazione 1 (27 febbraio 2012)
 
Corso Programmazione Java Base
Corso Programmazione Java BaseCorso Programmazione Java Base
Corso Programmazione Java Base
 
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
 
Dal c a Java (3/3)
Dal c a Java (3/3)Dal c a Java (3/3)
Dal c a Java (3/3)
 
Python@Unina - Exercises
Python@Unina - ExercisesPython@Unina - Exercises
Python@Unina - Exercises
 
Lezione 1 (27 febbraio 2012)
Lezione 1 (27 febbraio 2012)Lezione 1 (27 febbraio 2012)
Lezione 1 (27 febbraio 2012)
 
Lezione 1 (27 febbraio 2012)
Lezione 1 (27 febbraio 2012)Lezione 1 (27 febbraio 2012)
Lezione 1 (27 febbraio 2012)
 
Tutorial Matlab 2009
Tutorial Matlab 2009Tutorial Matlab 2009
Tutorial Matlab 2009
 
Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)Lezione 8 (12 marzo 2012)
Lezione 8 (12 marzo 2012)
 

Más de 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 22 (7 maggio 2012)
Lezione 22 (7 maggio 2012)Lezione 22 (7 maggio 2012)
Lezione 22 (7 maggio 2012)STELITANO
 
Lezione 21 (2 maggio 2012)
Lezione 21 (2 maggio 2012)Lezione 21 (2 maggio 2012)
Lezione 21 (2 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 14 (2 aprile 2012)
Lezione 14 (2 aprile 2012)Lezione 14 (2 aprile 2012)
Lezione 14 (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 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)Lezione 13 (2 aprile 2012)
Lezione 13 (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
 
Eserc v del 26 marzo 2012
 Eserc v del 26 marzo 2012 Eserc v del 26 marzo 2012
Eserc v del 26 marzo 2012STELITANO
 
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
 

Más de STELITANO (20)

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 22 (7 maggio 2012)
Lezione 22 (7 maggio 2012)Lezione 22 (7 maggio 2012)
Lezione 22 (7 maggio 2012)
 
Lezione 21 (2 maggio 2012)
Lezione 21 (2 maggio 2012)Lezione 21 (2 maggio 2012)
Lezione 21 (2 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 14 (2 aprile 2012)
Lezione 14 (2 aprile 2012)Lezione 14 (2 aprile 2012)
Lezione 14 (2 aprile 2012)
 
Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)
 
Lezione 13 (2 aprile 2012)
Lezione 13 (2 aprile 2012)Lezione 13 (2 aprile 2012)
Lezione 13 (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)
 
Eserc v del 26 marzo 2012
 Eserc v del 26 marzo 2012 Eserc v del 26 marzo 2012
Eserc v del 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
 

Soluzione esame b del 13 giugno 2012

  • 1. Abilità Informatiche Ingegneria Chimica Università di Roma “La Sapienza” Prof. Stelitano Antonino 13 Giugno 2012 compito B 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 Si considerino i tipi di dato scalari primitivi nel linguaggio C: A L’overloading degli operatori permette di denotare operatori diversi con lo stesso simbolo. B E’ possibile applicare l’operatore % (modulo, o resto) a una variabile float e una variabile int. C Nel linguaggio C il vettore e’ un tipo scalare primitivo. D L’applicazione della regola di conversione implicita produce una espressione in cui tutti gli operandi assumono uno stesso tipo. 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 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. 1
  • 2. Domanda 3 Linguaggi di programmazione. A Le istruzioni in linguaggio PASCAL 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 è indipendente dall’architettura HW/SW del computer utilizzato. D Il compilatore serve solo per rilevare gli errori sintattici in un programma. 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 cash D Ad ogni ciclo il registro IR contiene l’istruzione da eseguire nel ciclo successivo Domanda 5 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. 2
  • 3. Domanda 6 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. Domanda 7 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 8 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. 3
  • 4. Domanda 9 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. Domanda 10 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("Miao!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] è 2.0. 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