2014 – 3

È dato il seguente programma: #include int max(int a, int b) { if(a > b) return a; return b; } int f(int a, int b) { if(a == b) return b; if(a < 0) return -b; return max(f(a-1,2*b), f(a-1,2*b+1)); } void main() { printf("%d ", f(8,0)); } Cosa viene visualizzato a video dall'esecuzione di main()? ... Leggi tutto

2014 – 2

È dato il seguente programma: #include int f[10]; int i; int main() { f[0]=5; f[1]=3; for(i=0; i < 8; i++) f[i+2]=f[i]-f[i+1]; for(i=0; i < 10; i++) printf("%d, ", f[i]); } Cosa viene visualizzato a video dall'esecuzione di main()? 5, 3, 2, 1, 1, 0, 1, -1, 2, -3, 5, 3, 2, 1, 1, 1, 0, ... Leggi tutto

2014 – 1

È dato il seguente programma: #include void main() { int i, c; c=0; i=0; while(i < 100) { c++; if(c%2 != 0) i++; else i=i+c; } printf("c=%d\n", c); } Cosa viene visualizzato a video dall'esecuzione di main()? il ciclo while non termina mai, quindi non viene visualizzato nulla c=19 c=18 c=17 Soluzione: b (c=19) Osserva i ... Leggi tutto

2009 – 8

Si consideri il seguente frammento di programma: #define N 15 main() { int i, j; char frase[]; char t; i=1; do { for(j=0; j < N; j++) { t=frase[j]; frase[j]=frase[(j+i)%N]; frase[(j+i)%N]=t; } i += 1; } while(frase[8] != ' '); printf("%s\n", frase); } Quale tra le seguenti stringhe di 15 caratteri utilizzate per inizializzare il ... Leggi tutto

2009 – 7

È dato il seguente frammento di programma: void ricorsiva(int n) { int m; m=n/2; if(m != 0) ricorsiva(m); printf(“%1d”, n%2); } main() { ricorsiva(729); } Cosa viene visualizzato a video dall’esecuzione di main()? Soluzione: 1011011001 Osserva la sequenza di chiamate ricorsive e i valori visualizzati r(729) = r(364)1 = r(182)01 = r(91)001 = r(45)1001 = r(22)11001 = r(11)011001 = r(5)1011001 = r(2)11011001 … Leggi tutto

2009 – 6

Si consideri il seguente frammento di programma: main() { int i=3, j=0; do { i=(i+2*i)%10; j += 1; } while(i != 7); printf(“j=%d\n”, j); } Cosa viene visualizzato a video dall’esecuzione di main()? Soluzione: j=2 La variabile j conta quante volte viene eseguito il ciclo do while() che dipende dal valore della variabile i i = … Leggi tutto

2009 – 5

Si consideri il seguente frammento di programma: main() { int M[3][3][3]; int i, j, k; for(i=0; i < 3; i++) for(j=0; j < 3; j++) for(k=0; k < 3; k++) M[i][j][k]=i+k; for (i=0; i < 3; i++) { for(k=0; k < 3; k++) for(j=0; j < 3; j++) printf("%3d", M[i][j][k]); printf("\n"); } } Quale tra ... Leggi tutto

2009 – 4

Si consideri il seguente frammento di programma: main() { int a=3; int b=2; int c; c=a*b/4*(a/b)*4+a*(b/4*a)/(b*4); printf(“c=%d\n”, c); } Cosa viene visualizzato a video dall’esecuzione di main()? Soluzione: 4 Osserva c = a*b/4*(a/b)*4+a*(b/4*a)/(b*4) = 3*2/4*(3/2)*4+3*(2/4*3)/(2*4) = 6/4*(1)*4+3*(0*3)/8 = 1*1*4+3*0/8 = 4

2009 – 3

Si consideri il seguente frammento di programma: void foo(int *a, int b) { b = b * *a; *a = *a * b; } main() { int a=2; int b=3; foo(&a, b); foo(&b, a); printf(“a=%d, b=%d\n”, a, b); } Cosa viene visualizzato a video dall’esecuzione di main()? Soluzione: a=12, b=108 La funzione foo() chiamata con gli … Leggi tutto

2011 – 7

È dato il seguente programma: #include void f(int T[], int i, int dim) { if(i < dim) { f(T, 2*i+1, dim); printf("%d", T[i]); f(T, 2*i+2, dim); } } main() { int Q[8]={1, 2, 3, 4, 5, 6, 7, 8}; printf("ris = "); f(Q, 0, 8); } Cosa viene visualizzato a video dall'esecuzione di main()? Soluzione: ... Leggi tutto