Soluzione esonero del 4 aprile 2012

403 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
403
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Soluzione esonero del 4 aprile 2012

  1. 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 è esattaNome: Cognome: Matricola:Domanda 1Si 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 2Si 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. 2. Domanda 3Dato il seguente frammento di programma:int a=1, b=7;if ((--a > 0) || b++)printf("%d %d", a, b);elseprintf("%d %d", a+1, b+2);Il frammento di programma:A stampa 1 e 9B stampa 12 e 15C stampa 0 e 8D stampa 1 e 12Domanda 4Nei 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 5Indicare 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= -54B: Risultato= 1C: Risultato=-12D: L’esecuzione del programma genera un ciclo infinito
  3. 3. Domanda 6Cosa 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=5B: • elemento=23C: • elemento=4D: • Il frammento di programma è erratoDomanda 7Considerata la seguente procedura, indicare l’outputint 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. 4. Domanda 8Indicare 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:• 5B:• 1C:• 6D:• 23Domanda 9int 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 scorrettoB: • il frammento di programma è corretto e stampa 1 BC: • il frammento di programma è corretto e stampa 1 HD: • il frammento di programma è corretto e stampa 0 CDomanda 10Indicare 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 scorrettoB: • il frammento di programma è corretto e stampa 17C: • il frammento di programma è corretto e stampa 11D: • il frammento di programma è corretto e stampa il quinto elemento del vettore

×