Elenco quiz del primo esonero FAT

Viene riportato l'elenco dei 40 quiz assegnati alla prima prova d'esonero. Il simbolo 'X' contrassegna la risposta esatta.


Fondamenti di Informatica (Ambiente e Territorio)
Elenco delle domande assegnate alla prima prova d'esonero
13-Apr-00
1   Con riferimento ad un programma scritto in un linguaggio ad alto livello, la sua esecuzione (run) può avvenire:
A anche se il programma non è stato ancora compilato
B solo se il programma è stato compilato
XC solo se il programma è stato dapprima compilato e poi collegato (linking)
D solo se il programma è stato dapprima collegato (linking) e poi compilato
2 I valori rappresentabili in binario tramite otto bit sono:
XA 256
B 255
C 128
D 127
3   I valori rappresentabili in binario tramite due byte sono:
A 32768
B 32767
XC 65536
D 65535
4   Il massimo valore rappresentabile in complemento a due tramite due byte è:
A 65536
B 65535
C 32768
XD 32767
5   Denominando INT_MAX e INT_MIN rispettivamente il massimo e il minimo valore attribuibile a una variabile di tipo int è vero che:
A INT_MAX == -INT_MIN
XB INT_MAX == -INT_MIN - 1
C INT_MAX == -INT_MIN + 1
D INT_MAX == INT_MAX + INT_MIN (cioè INT_MIN == 0)
6   Il valore di una variabile di tipo signed char appartiene a:
A {0,1,...,255}
B {'a','b',...,'z','A','B',...,'Z'}
XC {-128,-127,...,-1,0,1,...,126,127}
D {-127,-126,...,-1,0,1,...,126,127}
7   Si chiama overflow quel fenomeno per cui:
A il risultato di una operazione è così piccolo da essere approssimato con zero
B il risultato di una operazione è pari al massimo int rappresentabile
XC il risultato di una operazione non può essere rappresentato tramite i bit disponibili per quella variabile, nemmeno se si accettano piccole approssimazioni
D il risultato di una operazione è superiore al massimo valore rappresentabile del tipo della variabile stessa
8   La differenza di due variabili int può causare overflow?
A mai
B sempre
XC solo se i valori delle variabili hanno segno diverso
D solo se i valori delle variabili hanno lo stesso segno
9   Un byte è:
A un carattere
B una sequenza di otto caratteri
XC una sequenza di otto bit
D una sequenza di sette bit, secondo lo standard ASCII
10   Il cosiddetto "bus" di un elaboratore viene usato per:
XA rendere possibile la comunicazione fra le varie componenti dell'elaboratore
B mandare alla CPU il segnale di clock
C consentire la comunicazione fra i registri della CPU
D la domanda è mal posta poiché gli elaboratori non hanno il bus
11   (DOPPIA) Si assuma di rappresentare numeri in complemento a due. Se la rappresentazione di un numero mediante cinque bit è 10011, la sua rappresentazione mediante sette bit è:
A 10011
B 110011
C 1010011
XD 1110011
12   La rappresentazione in "virgola mobile" di un valore reale si basa sulla:
A tecnica di rappresentazione in complemento a due
XB notazione esponenziale normalizzata
C definizione di razionale (rapporto fra due interi), visto che in realtà si possono rappresentare solo razionali
D suddivisione di un numero reale in parte intera e parte decimale, che vengono rappresentate separatamente
13   La somma di un float e di un unsigned long int è sempre di tipo:
XA float
B unsigned long int
C double, a causa dell'elevato numero di bit usati per gli unsigned long int
D la domanda è mal posta in quanto il tentativo di somma genera un errore in compilazione
14   L'assegnazione A = B, dove A e B sono variabili di tipo char, è:
XA una delle operazioni disponibili per i tipi interi ed ha come risultato il valore di B
B una delle operazioni disponibili per i tipi interi ed ha come risultato il valore di A prima dell'assegnazione
C una istruzione ANSI C e non ha risultato alcuno
D una istruzione ANSI C che ha come risultato zero se l'istruzione ha avuto buon fine (è stata cioè eseguita correttamente) e un valore non nullo se si è verificato un errore (il valore non nullo rappresenta il codice dell'errore)
15   (TRIPLA) Quale delle seguenti espressioni è sempre falsa (contraddizione):
A !((!X || Y || !Z) && (X || !Y || Z))
XB ((X && Y) || (!X && !Y)) && ((!X && Y) || (X && !Y))
C (!(X || (Y && !Z))) && (Y || !Z)
D (!X && !Z) || (X && !Z) || (!X && Y && Z)
16   (TRIPLA) Quale delle seguenti espressioni è sempre vera (tautologia):
A Z && !Z
B !Z || !X || !Y
XC (X || !Y) || (!X && Y)
D (X && !Y) || (!X && Y)
17   (DOPPIA) Quale delle seguenti eguaglianze è falsa:
A !(!X || Y) == X && !Y
B X || (Y && !Z) == (X || Y) && (X || !Z)
XC (X && !Y) || (X && !Z) == X && (!Y || Z)
D X && Z && X == Z && X && Z && X
18   Il software di base è
A l'ambiente di sviluppo
XB il sistema operativo corredato da alcuni strumenti di base
C il firmware
D un qualunque software con interfaccia a finestre
19   L'algoritmo di ricerca binaria o dicotomica:
XA consente ricerche efficienti su array ordinati
B ordina un array in senso crescente o decrescente
C consente ricerche efficienti su array qualsiasi
D verifica l'ordinamento di un array
20   Il Contatore di Programma (Program Counter) è un registro della CPU che contiene:
A il numero di istruzioni eseguite da un programma
B l'indirizzo della parola di RAM contenente l'istruzione corrente
C il numero di programmi eseguiti dalla CPU
XD l'indirizzo della parola di RAM contenente la prossima istruzione da eseguire
21   Il mouse è:
A un dispositivo di output
B un dispositivo di puntamento
XC un dispositivo di input
D un'interfaccia utente
22   Per assegnare il valore della variabile X alla variabile Y è necessario scrivere:
A Y == X;
B Y += X;
C X = Y;
XD Y = X;
23   Quale fra le seguenti istruzioni non è un ciclo?
XA Istruzione if
B Istruzione while
C Istruzione do-while
D Istruzione for
24   (DOPPIA) Il frammento di programma C
for(I=1; (I>=1)&&(I<=20); I++) {
  I=0;
  printf("ciao\n");
}
dove I è una variabile int di 32 bit:
XA cicla all'infinito
B scrive sullo schermo la stringa "ciao" esattamente 20 volte
C è sintatticamente scorretto poiché viene assegnato il valore 0 alla variabile I, che è la variabile di controllo del ciclo
D scrive sullo schermo la stringa "ciao" esattamente una volta
25   Il frammento di programma C
I=0;
while(I<10);
I++;
printf("%u", I);
dove I è una variabile di tipo unsigned int, scrive sullo schermo:
XA niente, perché cicla all'infinito
B 10
C tutti gli interi da 0 a 9
D niente, perché è sintatticamente scorretto (la stringa di formato sarebbe dovuta essere "%d")
26   (DOPPIA) Il frammento di programma C che segue:
SOMMA=0;
for(I=1; I<=10; I++)
  SOMMA=SOMMA+I;
MEDIA=SOMMA/10;
printf("%f",MEDIA);
in cui le variabili I e SOMMA sono di tipo int e la variabile MEDIA è di
tipo float, scrive sullo schermo:
XA 5.000000
B 5.5
C 0.55E1
D 55E-1
27   (DOPPIA) Dopo l'esecuzione del frammento di programma C che segue:
for(I=0; I<5; I++)
  if(A[I]==B[I])
    EGUALI=1;
  else
    EGUALI=0;
in cui A e B sono due array di 5 int ciascuno e le altre variabili sono di tipo int:
A EGUALI vale 1 se e solo se i due array sono fra loro uguali (le componenti omologhe hanno gli stessi valori); altrimenti vale 0
XB EGUALI vale 1 se e solo se le quinte componenti dei due array sono fra loro uguali; altrimenti vale 0
C è sintatticamente scorretto in quanto in C non esistono operazioni fra array
D EGUALI vale sicuramente 0, perché all'ultima iterazione si tenta di accedere a componenti inesistenti degli array, per cui il confronto ha sempre esito negativo
28   (TRIPLA) Dopo l'esecuzione del frammento di programma C che segue:
for(I=0; I<5; I++)
  if(A[I]=B[I])
    EGUALI=1;
  else
    EGUALI=0;
in cui A e B sono due array di 5 int ciascuno e le altre variabili sono di tipo int:
A EGUALI vale 1 se e solo se i due array sono fra loro uguali (le componenti omologhe hanno gli stessi valori); altrimenti vale 0
XB EGUALI vale 0 se e solo se B[4] è 0; altrimenti vale 1
C è sintatticamente scorretto poiché in C non esistono operazioni fra array
D è sintatticamente scorretto poiché in C il test di eguaglianza si effettua con l'operatore == e non con l'operatore =
29   (DOPPIA) Il frammento di programma C che segue:
I=0;
while(I>=0)
  I++;
printf("%d",I);
in cui la variabile I è di tipo int (due byte), scrive sullo schermo:
A niente, poiché il while cicla all'infinito
XB -32768, poiché I va in overflow
C 0, poiché il ciclo non viene eseguito
D niente, poiché è sintatticamente scorretto (manca il corpo del ciclo)
30   (DOPPIA) Il frammento di programma C che segue:
if(A<=B)
  D=A;
else
  D=B;
if(D<=C)
  MIN=D;
else
  MIN=C;
XA assegna a MIN il minimo fra A, B e C
B assegna a MIN il minimo fra A e C
C assegna a MIN il minimo fra B e C
D assegna a MIN il minimo fra A e C
31   (DOPPIA) Con riferimento ai frammenti di programma C che seguono, dire se e quando essi risultano equivalenti, producono cioè lo stesso valore finale nella variabile i (di tipo int).
/* frammento 1 */
i=1;
while(i>=0)
  i=i+i;
/* frammento 2 */
for(i=4; i>0; i=2*i);
XA i due frammenti sono equivalenti
B i due frammenti sono equivalenti solo quando il tipo int viene memorizzato con due byte
C i due frammenti non sono equivalenti, in quanto il secondo ciclo non termina mai (dopo il for, c'è subito ';')
D i due frammenti non sono equivalenti, in quanto il secondo ciclo è sintatticamente scorretto (dopo il for, c'è subito ';').
32   Cosa è una stringa standard in C?
XA un array di char contenente uno zero
B un array di int contenente uno zero
C un array di char avente zero nell'ultima cella
D un array di char avente '0' nell'ultima cella.
33   (DOPPIA) Con riferimento al frammento di programma C che segue, quanto vale la variabile A dopo l'esecuzione del frammento (tutte le variabili sono di tipo char)?
A='2'; x='N'; y='S';
if((x=='s')||(x=='S'))
  if((y=='s')||(y=='S'))
    A='1';
  else A='0';
XA '2'
B '1'
C '0'
D non si può dire, poiché il programma è sintatticamente scorretto
34   La seguente scrittura in C:
typedef enum {1,2,3,5,7,11,13,17,19} PRIMI;
A definisce un tipo enumerativo, il cui nome è PRIMI, su un domino di nove valori
B dichiara una variabile enumerativa, il cui nome è PRIMI, che può assumere nove diversi valori
C definisce un tipo enumerativo, il cui nome è enum PRIMI, su un domino di nove valori
XD è sintatticamente scorretta
35   Quale differenza c'è in C fra '0' e "" (il codice ASCII della cifra 0 è 48)?
A nessuna, poiché in RAM hanno la stessa identica rappresentazione (l'intero 48)
B la differenza è solo teorica in quanto, anche se '0' è un carattere e "" è una stringa, in memoria hanno la stessa identica rappresentazione (l'intero 48)
XC il carattere '0' è memorizzato in un byte il cui valore numerico è 48, mentre la stringa (vuota) "" è memorizzata in un byte il cui valore numerico è 0
D '0' è una costante di tipo carattere, "" è una espressione sintatticamente scorretta
36   Se x e y sono due variabili C di tipo char, il test x<y
A è vero se x contiene una stringa più breve di quella contenuta in y
B è sintatticamente scorretto
XC è vero se e solo se l'intero memorizzato in x è inferiore a quello memorizzato in y
D è sempre falso
37   In C, se Z è un array di 27 unsigned short, la scrittura Z[27]=0;
A è sintatticamente scorretta
XB è semanticamente scorretta
C è corretta
D azzera Z
38   Quale fra le seguenti scritture dichiara una variabile STRINGA adatta alla memorizzazione di una matrice 3x4 di short int?
A typedef short int STRINGA[3][4];
XB short int STRINGA[3][4];
C short int STRINGA[2][3];
D typedef short int STRINGA[2][3];
39   Per utilizzare una costante PIGR di valore 3.1415 all'interno di un programma C quale direttiva del pre-processore può essere usata?
XA #define PIGR 3.1415
B #define PIGR 3.1415;
C #define PIGR = 3.1415
D #define PIGR = 3.1415;
40   Quale delle seguenti asserzioni è falsa?
XA ogni ciclo a condizione finale viene eseguito zero o più volte
B ogni ciclo a condizione iniziale viene eseguito zero o più volte
C un ciclo a condizione finale può andare in loop (infinite iterazioni)
D un ciclo a condizione iniziale può andare in loop (infinite iterazioni)


Last Updated on 26-04-2000
By Fabrizio d'Amore
Email: damore@dis.uniroma1.it