Soluzione esonero del 4 aprile 2012
description
Transcript of Soluzione esonero del 4 aprile 2012
Abilità Informatiche
Ingegneria Chimica
Università di Roma “La Sapienza”
Esonero del 4 Aprile 2012
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
Nome: Cognome:
Matricola:
Domanda 1 Si consideri l’architettura di un Personal Computer:
A Il clock è un circuito che emette una serie di impulsi con una frequenza costante.
B Durante un ciclo di esecuzione il registro PC contiene l’indirizzo dell’istruzione da eseguire nel ciclo corrente. C L’accesso ai registri della CPU è più lento rispetto all’accesso alla cache di primo livello.
D L’IR contiene il programma correntemente in esecuzione.
Domanda 2 Si consideri il seguente programma C:
#include <stdio.h>
main()
{int x; float y; char z, w;
x=4; y=-2; z=’B’; w=’C’;
x=( x%(int)y ?++x: w-z); /* istruzione 1 */
y=x++/y; /* istruzione 2 */
w=z+=1; w-=z; /* istruzione 3 */
}
A Immediatamente dopo l’esecuzione dell’istruzione 2, la variabile x ha il valore 4.
B Immediatamente dopo l’esecuzione dell’istruzione 3, le variabili z e w hanno lo stesso valore.
C Immediatamente dopo l’esecuzione dell’istruzione 3, la variabile z ha valore ’C’.
D Immediatamente dopo l’esecuzione dell’istruzione 3, la variabile w ha valore ’0’.
Domanda 3
Dato il seguente frammento di programma:
int a=1, b=7;
if ((--a > 0) || b++)
printf("%d %d", a, b);
else printf("%d %d", a+1, b+2);
Il frammento di programma:
A stampa 1 e 9
B stampa 12 e 15
C stampa 0 e 8
D stampa 1 e 12
Domanda 4
Nei linguaggi di programmazione quale affermazione è vera?
A L’esecuzione di un programma interpretato è tipicamente più veloce dell’esecuzione dello stesso programma compilato. B Un programma scritto in linguaggio assembler necessita di un traduttore.
C Un programma compilato e linkato è sicuramente privo di errori.
D Le istruzioni in linguaggio assembler sono espresse mediante una sequenza di bit.
Domanda 5
Indicare cosa viene stampato a video:
int func (int , int, int);
int main (void){
printf("Risultato=%d\n",func(7,4,8)); return 0;
}
int func (int a, int b, int c) {
int indice, ris=-1;
for (indice=a+b; indice>=c; indice-=a-1) ris+=indice*(-1);
return ris; }
A: Risultato= -54
B: Risultato= 1
C: Risultato=-12 D: L’esecuzione del programma genera un ciclo infinito
Domanda 6
Cosa dà in Output il seguente codice?
void computa (int*, int, int );
int main() {
int vettore[100]={6,12,23,1,4,2};
computa(vettore, 2, vettore[4]);
printf("elemento=%d \n \n", vettore[4]);
return 0; }
void computa (int *vett, int size, int fattore){
int i=2, j=0;
do {
vett[j++]=i*fattore*i;
i++;
}while (i<= size); }
Indicare cosa viene stampato a video quando eseguito: A: • elemento=5
B: • elemento=23
C: • elemento=4
D: • Il frammento di programma è errato
Domanda 7
Considerata la seguente procedura, indicare l’output
int main(void){ int a[5][3];
int *p, *q;
int i,j,m=8;
for(i=0; i<15; i++) a[0][i] = --m;
for(i=0; i < 3; i++){
for(j=1; j < 5;j++) printf("%5d",a[i][j]);
printf("\n");
}
8 2 4 7
3 6 2 2
-2 -1 -2 -3
6 5 4 3
3 2 1 0
0 -1 -2 -3
3 5 5
3 2 1
5 -1 6
-3 -4 -5 -6 -7 -8
2 6 1
4 3 2 1 0 3
-2 -3 -4
-5 -6 -7
Domanda 8
Indicare l’OUTPUT del seguente codice:
void f(int *l);
int main (void){
int x[5]={14, 7, -4, 6, 1}; f(x);
printf("%d",x[3]);
return 0;
}
void f(int *a) { a[1]=++a[4];
a[2]=a[19]*(-3);
}
A : • 5
B : • 1 C : • 6
D : • 23
Domanda 9
int main() { char *g;
char vett[10][20];
g = vett[2]; *g='2';
printf("%d %c\n", g== &vett[2][0], vett[2][0]-'0'+'F');
}
A: • il frammento di programma è sintatticamente scorretto
B: • il frammento di programma è corretto e stampa 1 B
C: • il frammento di programma è corretto e stampa 1 H D: • il frammento di programma è corretto e stampa 0 C
Domanda 10
Indicare l’output del seguente frammento di programma:
int main (void){
int vet[10],a, *p;
p=vet; for (a=0; a < 10; a++)
vet[a]=a;
printf("%d\n\n", *(4+p)+13);
}
A: • il frammento di programma è sintatticamente scorretto
B: • il frammento di programma è corretto e stampa 17 C: • il frammento di programma è corretto e stampa 11
D: • il frammento di programma è corretto e stampa il quinto elemento del vettore