2017 – 1

Si consideri la seguente funzione:

int fun(int p) 
{
   printf("%d -> ", p);
   if(p%2 == 0)
      printf("condizione 1\n");
   if(p == 7)
      printf("condizione 2\n");
   else if((p-5)%2 == 0) 
      printf("condizione 3\n");
   return p;
}

Quale delle seguenti affermazioni è errata?

  1. La funzione, se p è pari, scrive a video il valore di p seguito dalla stringa ‘’-> condizione 1’’ e ritorna p
  2. La funzione, se p non è dispari, scrive a video il valore di p seguito dalla stringa ‘’-> condizione 2’’ e ritorna p
  3. La funzione, se p è 7, scrive a video il valore di p seguito dalla stringa ‘’-> condizione 2’’ e ritorna p
  4. La funzione, se p è dispari, scrive a video p seguito dalla stringa ‘’-> condizione 2’’ o “→ condizione 3” e ritorna p