1. 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’.
2. 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=%dn",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
3. 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
4. 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 %cn", 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("%dnn", *(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