2007 – 4

Si consideri la seguente funzione int ES4(int x) {   if(x/10 == 0)       return x;   else      return x%10+ES4(x/10); } Dire cosa restituisce l’invocazione ES4(ES4(731)). Risposte: 2 9 36 nessuna delle precedenti Soluzione: a (2) Osserva ES4(731): 731/10 = 71, restituisce 731%10+ES4(731/10), 1+ES4(73) ES4(73): 31/10 = 3, restituisce 71%10+ES4(71/10), 7+ES4(3) … Leggi tutto

2007 – 8

Si consideri la funzione int ES8(int m) { int a, b, c, g, t;   a=m*m;   b=a/2;   c=4*b*a;   t=m;   g=m+a+t+t+a;   while(g < b+a+c+c+a)   {     g=g+a+t+t+a;     c=t+a+t+a;   }   return g; } Dire cosa restituisce la chiamata ES8(2) Risposte: 19 32 38 nessuna delle precedenti. ... Leggi tutto

2007 – 9

Si considerino le funzioni mutuamente ricorsive int foo(int n); int ES9(int n) {     if(n%2 == 1)       return foo(n-3);    else       return n; } int foo(int n) {    if(n%2 == 0)     return ES9(2*n);   else      return n; } Dire cosa restituisce la chiamata … Leggi tutto

2007 – 1

Si consideri la seguente funzione int ES1(int a, int b) {   int j;   int k=1;   int p=0;   while(k

2007 – 5

Si consideri la seguente funzione: void ES5(int n, int d) { while(n != 1) if(n%d == 0) { printf(“%d\n”, d); n=n/d; } else ++d; } Dire cosa stampa su schermo la chiamata ES5(210, 2). Risposte: 2 2 3 4 5 6 7 2 3 5 7 8 Nessuna delle precedenti. Soluzione: d (Nessuna delle precedenti). … Leggi tutto

2008 – 7

Si consideri la seguente funzione: int foo(int N) {    int i, R=1; for(i=0; i < N; i++) R=R+R;     return R; } Indicare qual è il valore restituito dall’invocazione di foo(6) Risposte: 32 64 128 nessuno dei precedenti. Soluzione: b (64). La funzione foo() restituisce i risultati foo(0) = 1 foo(1) = 1 ... Leggi tutto

2008 – 8

Si consideri la seguente funzione: int foo(int x) {     int y = 0;     while(x != 0)     {         y *= 10;         y += x % 10;         x /= 10;     }     return y; } Dire … Leggi tutto

2008 – 9

Si consideri la seguente funzione: int ricorsiva(int x) {     if (x == 1)         return x;     else         return ricorsiva(x-1)+2*x-1; } Dire cosa restituisce l’invocazione di ricorsiva(10) Risposte: 28 99 101 nessuna delle precedenti. Soluzione: d (100). La funzione restituisce i valori 1 1+2*2-1 = … Leggi tutto

2008 – 6

Si consideri la seguente funzione: int ricorsiva(int N) {     if(N > 1)         return N*ricorsiva(N – 1);     else         return 1; } Indicare qual è il valore restituito dall’invocazione di ricorsiva(5) Risposte: 5 20 120 nessuno dei precedenti. Soluzione: c (120). La funzione ricorsiva() calcola … Leggi tutto