2005 – 3

Si consideri la seguente funzione void calcola(int* vett, int n) { int x,y; int i, j; for(i=0; i < n; i++) { y=vett[0]; for(j=0; j < n-1; j++) { x=vett[j+1]; vett[j+1]=y; y=x; } vett[0]=y; } } Assumendo che vett contenga il vettore [10,9,8,7,6,5,4,3,2,1], quali sono gli elementi di vett dopo l'esecuzione di calcola (usando 10 ... Leggi tutto

2005 – 2

Si consideri la seguente funzione int funzione() { int contatore=0; int sum=0; while(contatore

2004 – 1

Si consideri il seguente frammento di programma. int calcola(int vett[], int n) { int i, y, x; y=0; x=vett[0]; for(i=0; i < n-1; i++) if(x < vett[i+1]) { y=vett[i+1]-x+y; x=vett[i+1]; } if(x-y > vett[i+1]) y=x-vett[i+1]; return y; } Dire che cosa restituisce la funzione “calcola” assumendo che venga invocata passando un vettore di lunghezza n … Leggi tutto

2004 – 2

Si consideri il seguente frammento di programma bool verifica(int vett[], int n) { int i,j=0; int appoggio[n]; for(i=0; i < n; i++) if(j == 0) { appoggio[j]=vett[i]; j++; { else if(appoggio[j-1] == vett[i]) j--; else { appoggio[j]=vett[i]; j++; } if(j == 0) return true; else return false; } Si considerino i seguenti tre vettori {5,8,1,1,2,4,4,8,8,2,3,9,7,7,9,3,8,2,2,5} ... Leggi tutto

2004 – 5

Si consideri la seguente funzione bool calcola(int numero, int* vettore, int i, int j) { int m=(i+j)/2; int off=vettore[m]-numero; if(off == 0) { return true; } else if(i == j) { return false; } else if(off > 0) { return calcola(numero, vettore, i, m-1); } else { return calcola(numero, vettore, m + 1, j); } } … Leggi tutto

2004 – 4

Si consideri la seguente funzione int calcola(int n) { if(n == 1) { return 1; } else if(n == 2) { return n*calcola(n-1); } else { return n*calcola(n-1)*calcola(n-2); } } Quale valore restituisce se viene richiamata con parametro 5? Risposte: 120 1400 414720 nessuna delle precedenti Soluzione: d (nessuna delle precedenti, 1440) Osserva calcola(1) = 1 calcola(2) … Leggi tutto

2003 – 6

Si consideri la seguente funzione: int A(int a, int b) { int p=0; while(a > 0) { if(a%2 == 1) p=b+p; a=a/2; b=2*b; } return p; } Dire quale sarà il valore tornato dalle chiamate A(4,3) A(7,4) A(35,25) Soluzione: Prova… 0 1 2 3 4 0 0 0 0 0 0 1 0 1 2 … Leggi tutto

2003 – 5

Si consideri la seguente funzione: int A(int n, int m) {   if(n == 0)      return 1;   else      if(n%2 == 0)        return A(n/2,m)*A(n/2,m);      else        return m*A(n-1,m); } Dire quale sarà il valore tornato dalle chiamate A(3,2) A(4,3) A(5,4) Soluzione: 8, 81, 1024. Prova… 0 1 2 3 4 0 1 1 … Leggi tutto

2003 – 3

Si considerino le due seguenti funzioni: int A(int n) {    if(n > 0)      return n+A(n-1);    else      return 0; } int B(int n) {    return(n*(n+1)/2); } Quale delle seguenti affermazioni è vera? Risposte: la funzione A() calcola il fattoriale di un numero mentre la funzione B() calcola la sommatoria di tutti … Leggi tutto

2003 – 2

Si consideri il seguente frammento di programma: void bang(int *a, int l) {    int i=0, t=0, loop=1;    while(loop)    {       if(a[i] > 0)       {           a[t]=a[i];           t++;       }       if(i < l-1)   ... Leggi tutto