Alcuni esempi di domande della prima prova in itinere

Prof. G. Ascia
Esempi di domande della
prima prova in itinere
Fondamenti di Informatica-Ingegneria Telematica
1
Prof. G. Ascia
Dato il seguente frammento di codice:
i=0;
while (i>0 && i<10 )
{ i = i+2;
printf("%d ",i);
}
Cosa viene stampato sul video?
[ ] Risposta 1
0 2 4 6 8 10
[ ] Risposta 2
0 2 4 6 8
[ ] Risposta 3
2 4 6 8
[ ] Risposta 4
Non viene stampato alcun numero
Fondamenti di Informatica-Ingegneria Telematica
2
Prof. G. Ascia
Dato il seguente frammento di codice:
for (i=0; i>10; i++)
printf("%d ", i);
Cosa viene stampato sul video?
[ ] Risposta 1
0 1 2 3 4 5 6 7 8 9 10
[ ] Risposta 2
non viene stampato alcun numero
[ ] Risposta 3
11 12 13 14 15 16 ecc. ecc.
[ ] Risposta 4
0 1 2 3 4 5 6 7 8 9
Fondamenti di Informatica-Ingegneria Telematica
3
Prof. G. Ascia
Dato il seguente frammento di codice:
i=0;
j=0;
while (i<5 && j<=7) {
i++;
j=j+2;
}
Quanto valgono i e j alla fine del ciclo?
[ ] Risposta 1
i=5 j=8
[ ] Risposta 2
i=4 j=8
[ ] Risposta 3
i=5 j=7
[ ] Risposta 4
i=4 j=7
Fondamenti di Informatica-Ingegneria Telematica
4
Prof. G. Ascia
Indicare la corretta sequenza di istruzioni che esprime la
ricerca binaria in un vettore
[ ] Risposta 1:
trovato=0;
inf=0; sup=N-1;
med=(inf+sup)/2;
while(inf<=sup && !trovato)
{ if(num==A[med]) trovato=1;
else if (num<A[med])
sup=med-1;
else inf=med+1;
}
[ ] Risposta 2:
trovato=0;
inf=0; sup=N-1;
while(inf<=sup && !trovato)
{ med=(inf+sup)/2;
if(num==A[med]) trovato=1;
else if (num<A[med])
sup=med-1;
else inf=med+1;
}
[ ] Risposta 3:
trovato=0;
inf=0; sup=N-1;
med=(inf+sup)/2;
while(inf<=sup && !trovato)
{
med=sup/2;
if(num==A[med]) trovato=1;
else if (num<A[med])
sup=med-1;
else inf=med+1;
}
[ ] Risposta 4:
trovato=1;
inf=0; sup=N-1;
med=(inf+sup)/2;
while(inf<=sup && trovato==0)
{
med=(inf+sup)/2;
if(num==A[med]) trovato=1;
else if (num<A[med])
sup=med-1;
inf=med+1;
}
Fondamenti di Informatica-Ingegneria Telematica
5
Prof. G. Ascia
Quali delle seguenti sequenze di codice legge e stampa il
massimo tra 2 numeri?
[ ] Risposta 1
scanf(“%d”,&a);
scanf(“%d”,&b);
max = a;
if (b > a)
max = b;
printf(“%d”,max);
[ ] Risposta 2
scanf(“%d”,&a);
scanf(“%d”,&b);
max = b;
if (b > a)
max = a;
printf(“%d”,max);
[ ] Risposta 3
scanf(“%d”,a);
scanf(“%d”,b);
max = a;
if (b > a)
max = b;
printf(“%d”,max);
[ ] Risposta 4
scanf(“%d”,a);
scanf(“%d”,b);
if (b > a)
max = b;
else max=a;
printf(“%d”,max);
Fondamenti di Informatica-Ingegneria Telematica
6
Prof. G. Ascia
Quali delle seguenti sequenze di codice legge e calcola la
somma di 10 numeri ?
[ ] Risposta 1:
conta = 10; somma = 0;
while (conta <10)
{ printf(“Inserisci un numero”);
scanf(“%d”,&numero);
somma = somma + numero;
contatore = contatore + 1;
}
printf(“%d”,somma);
[ ] Risposta 2:
conta = 0; somma=0;
while (conta <10)
{ printf(“Inserisci un numero”);
scanf(“%d”,numero);
somma = somma + 1;
contatore = contatore +numero;
}
printf(“%d”,somma);
[ ] Risposta 3:
conta = 0; somma = 0;
while (conta >0)
{ printf(“Inserisci un numero”);
scanf(“%d”,&numero);
somma = somma + numero;
contatore = contatore - 1;
}
printf(“%d”,somma);
[ ] Risposta 4:
conta = 10; somma = 0;
while (conta >0)
{ printf(“Inserisci un numero”);
scanf(“%d”,&numero);
somma = somma + numero;
contatore = contatore - 1;
}
printf(“%d”,somma);
Fondamenti di Informatica-Ingegneria Telematica
7
Prof. G. Ascia
Indicare l'errore presente nel seguente codice che esprime il
calcolo del massimo tra 20 numeri.
conta = 1;
scanf(“%d”,&a);
while(conta<20)
{ printf(“Inserisci un numero”);
scanf(“%d”,&a);
conta=conta+1;
if(a>max)
max=a;
}
printf(“%d”,max);
[ ] Risposta 1
L’incremento di conta va messo dopo il confronto if(a>max)
[ ] Risposta 2
L’inizializzazione della variabile conta è sbagliata
[ ] Risposta 3
Manca l’inizializzazione della variabile max
[ ] Risposta 4
La printf va messa dentro il ciclo while
Fondamenti di Informatica-Ingegneria Telematica
8
Prof. G. Ascia
Indicare l'errore presente nel seguente codice che esprime la
ricerca dell’indice dell’elemento minimo
{
for(ind=0;ind<10;ind++)
scanf(“%d”,&A[ind]);
imin=A[0];
for(i=10;i>0;i--)
if(A[i]<A[imin])
imin=i;
printf(“%d”,imin);
}
[ ] Risposta 1
La condizione i>0 del secondo ciclo for è errata
[ ] Risposta 2
La condizione dell’istruzione if (A[i]<A[imin]) è errata
[ ] Risposta 3
L’inizializzazione della variabile imin è errata
[ ] Risposta 4
L’inizializzazione della variabile i è errata
Fondamenti di Informatica-Ingegneria Telematica
9
Prof. G. Ascia
Indicare quale tra le seguenti sequenze esprime
la ricerca sequenziale del valore x in un vettore
[ ] Risposta 1:
scanf("%d",&x);
trovato=0; ind=0;
while(ind<n && !trovato)
if (tab[ind]==x)
trovato=1;
else ind++;
if(ind<n) printf("%d",ind);
[ ] Risposta 2:
scanf("%d",&x);
trovato=0;
while(ind<n && !trovato)
if (tab[ind]!=x)
ind++;
if(ind<n) printf("%d",ind);
[ ] Risposta 3:
scanf("%d",&x);
trovato=0; ind=0;
while(tab[ind]!=x)
ind++;
if(ind<n) printf("%d",ind);
[ ] Risposta 4:
scanf("%d",&x);
trovato=0; ind=n;
while(ind<n && !trovato)
if (tab[ind]==x)
trovato=1;
else ind--;
if(ind<n) printf("%d",ind);
Fondamenti di Informatica-Ingegneria Telematica
10
Prof. G. Ascia
Quali delle sequenti sequenze di istruzioni calcola la somma
dei primi 10 numeri positivi (1+2+3+...+10)?
[ ] Risposta 1:
somma=0;
for (i=0;i<10;i++)
somma=somma+i;
[ ] Risposta 2:
somma=0;
for (i=0;i<10;i++)
somma=i;
[ ] Risposta 3:
somma=0;
for (i=1;i<11;i++)
somma=i;
[ ] Risposta 4:
somma=0;
for (i=10;i>0;i--)
somma=somma+i;
Fondamenti di Informatica-Ingegneria Telematica
11
Prof. G. Ascia
Scrivere la sequenza C che, dati due vettori A e B
di 20 numeri interi, calcoli il massimo per ogni
coppia (A[i], B[i]) e ne visualizzi il valore se
positivo.
Scrivere la sequenza C che dati due vettori A e B
di 10 numeri float, calcoli la media M[i] per ogni
coppia (A[i], B[i]) e visualizzi il massimo tra gli
M[i].
Scrivere la sequenza C che dato due vettori A e B
di 10 numeri double, inverta l’elemento A[i] con
B[i] se il loro prodotto e positivo.
Scrivere la sequenza C che, dato un vettore di 20
elementi, visualizzi la media degli elementi di
indice pari e la somma degli elementi di indice
dispari.
Fondamenti di Informatica-Ingegneria Telematica
12