2001 – 7

Supponete che i e j siano variabili intere, e che s e t siano vettori di interi.
Assumete che, in un dato istante, i=j=0 e che il contenuto dei due vettori sia il seguente:

s={0, 1, 2, 3}
t={3, 2, 1, 0}

Se viene eseguita la seguente istruzione:

s[i++]=t[++j]+1;

Quali valori avranno alla fine le variabili i e s?

  1. i=0, s=[3, 2, 1, 0]
  2. i=1, s=[2, 1, 0, 3]
  3. i=1, s=[4, 3, 2, 1]
  4. i=1, s=[3, 1, 2, 3]
  5. i=0, s=[3, 1, 2, 3]
  6. nessuno dei precedenti.

Soluzione: 4 (i=1, s=[3, 1, 2, 3]).


L’istruzione è equivalente a

j=j+1;
s[i]=t[j]+1;
i=i+1;

quindi

  • i = 0
  • j = 0+1 = 1
  • s[0] = t[1]+1 = 2+1 = 3
  • i= 0+1 = 1