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 <= r)
{
   s=s+c;
   c=c*2;
}
printf("La variabile s vale %d\n", s);

Quale delle seguenti affermazioni è vera?

  1. Viene visualizzata la somma di tutti i numeri da 1 fino a r+1
  2. Viene visualizzato il valore r+1
  3. Viene visualizzato il valore r+1 solo se r >= 1
  4. Viene visualizzato il valore 2r+1

Soluzione: b (viene visualizzato il valore r+1).


Osserva

  • c = 1
  • c = r*c = r*1 = r
  • s = 1
  • (c <= r) = (r <= r): Sì
  • s = s+c = 1+r
  • c = c*2 = r*2