2010 – 3

Si considerino i 3 seguenti frammenti di programma, dove le variabili i, k, n e p sono di tipo int, e n è inizializzata con un valore positivo maggiore di #define TRUE 1 #define FALSE 0 p=TRUE; k=n; for(i=2; i < k; i++) if(n%i == 0) { printf("Il numero %d non e' primo\n",n); p=FALSE; break; } ... Leggi tutto

2010 – 1

Si consideri il seguente frammento di programma: int r, c, s; printf(“Inserisci un numero intero compreso fra -10000 e 10000: “); scanf(“%d”, &r); c=1; c=r*c; s=1; if(c

2006 – 3

Considerate le seguenti sei funzioni, con argomento N (un intero non negativo). Ciascuna di esse calcola un qualche valore scelto tra: N, 2N, N2, N3, 2N, N! Dovete stabilire qual è il valore calcolato da ogni funzione (potrebbero esserci doppioni: più funzioni potrebbero calcolare lo stesso valore; notate inoltre che N! denota il fattoriale di … Leggi tutto

2006 – 5

Cosa stampa il seguente programma, con input 5? int main() { float x,y,z; x=0; y=0; scanf(“%f”, &z); do { x=x+1; y=y+1/x; } while(!(y > z)); printf (“%f\n”,x); } Risposte: 5 12 25 nessuna delle precedenti. Soluzione: d (nessuna delle precedenti). Il programma calcola la somma 1+1/2+1/3+1/4+… finché non raggiunge il valore 5 e visualizza quanti … Leggi tutto

2006 – 4

Si consideri la seguente funzione: int f(int n) { if(n == 0) return 0; if(n%2 == 0) return 2*f(n/2); else return 2*f(n/2)+2; } Indicare qual è il valore restituito dall’invocazione f(f(2)). Risposte: 2 4 6 nessuna delle precedenti. Soluzione: d (nessuna delle precedenti). Osserva f(0): 0 f(1): 2*f(0)+2 = 2*0+2 = 2 f(2): 2*f(1) = 2*2 … Leggi tutto

2014 – 5

Siano A e B due insiemi di uguale cardinalità N (cioè con uguale numero di elementi) contenenti ciascuno N numeri interi diversi tra loro. I numeri dei due insiemi A e B vengono memorizzati, ordinati per valori crescenti, nei due vettori v e w. Si dica che insieme calcola nel vettore z il seguente codice: … Leggi tutto

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