2006 – 2

Si consideri la seguente funzione: #define N 5 int vett1[N]; int vett2[N]; void calcola() { int temp, i; for(i=0; i < N; i++) vett1[i]=N-i-1; for(i=0; i < N; i++) { temp=vett1[i]; vett2[temp]=i; } } Indicare il contenuto del vettore vett2 al termine dell’esecuzione della funzione calcola(). Risposte: [0,1,2,3,4] [3,1,4,2,0] [4,3,2,1,0] nessuna delle precedenti. Soluzione: c ([4,3,2,1,0]). ... Leggi tutto

2005 – 6

Data la seguente funzione che inizializza i valori di un array bi-dimensionale “matrice”: #define N 5 void inizializza() { int matrice[N][N]; int riga, colonna; for(riga=0; riga < N; riga++) { for(colonna=0; colonna < N; colonna++) { if(riga == colonna) matrice[riga][colonna]=1; else if(riga+colonna == N-1) matrice[riga][colonna]=1; else if(riga < colonna) matrice[riga][colonna]=0; else matrice[riga][colonna]=matrice[colonna][riga]; } } for(riga=0; ... Leggi tutto

2005 – 5

Cosa stampa il seguente programma? #include int funzione1(int arr[]) { int i=1; while(arr[i] != -1) i=i*2; return i; } int funzione2(int arr[], int f, int k) { int i=0; int m; while(i k)) f=m-1; else i=m+1; } return -1; } main() { int arr[10]={1,2,4,8,-1,-1,-1,-1,-1,-1}; int f=funzione1(arr); int a=funzione2(arr, f, 4); int b=funzione2(arr, f, 7); printf(“a=%d,b=%d\n”, … Leggi tutto

2005 – 4

Cosa stampa il seguente programma? #include int funzione(int arr[], int dim) { int i=0; int t=0; if(dim%2 == 1) { while(i < dim) { t=arr[i]; arr[i]=arr[dim-i-1]; arr[dim-i-1]=t; i=i+1; } } else { while(i < dim/2) { t=arr[i]; arr[i]=arr[dim-i-1]; arr[dim-i-1]=t; i=i+1; } } return arr[0]; } main() { int arr1[10]={1,2,3,4,5,6,7,8,9,10}; int arr2[11]={1,2,3,4,5,6,7,8,9,10,11}; int a=funzione(arr1, 10); int ... Leggi tutto

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