ESAME 22-06-99 (C)

Questionario cartaceo

Rispondere alle seguenti domande:
  1. È vero che si possono rappresentare più numeri naturali con 20 cifre in base 3 che con 5 cifre in base 5 ?
    Dare una brevissima giustificazione (non più di qualche riga).

  2. Che cosa stampa il seguente programma C?
    #include <stdio.h>
    
    void F(float x, float y)
    {  float w;
       w = x;
       x = y;
       y = w;
    }
    
    float G(float x, float y)
    {  float w = 0.0;   
       w = x;
       x = y;
       y = w;
       return y;
    }
    
    main()
    {  float a = 2.3, b = 7.8;   
       F(a,b);
       printf("%f %f \n", a, b );
       a = G(a,b);
       printf("%f %f \n", a, b );   
    }
  3. Quale dispositivo di memoria di massa potremmo utilizzare per immagazzinare un file di circa cento Mega ?

  4. Completare il seguente frammento di programma C come indicato dai commenti, dove type è un qualunque tipo base del C:
    typedef struct LIST *LISTA;
    struct LIST { type ELEM;
                  LIST * SUCCESSIVO; } ;
              
    void INIZIALIZZA(LISTA l, type e)
    /*questa procedura modifica la lista l in modo che alla fine tutti i suoi 
      elementi avranno la componente ELEM uguale ad e*/
    {...... }

Parte laboratorio

Completare il seguente programma C come indicato dai commenti
#include <stdio.h>

#define MAX 100  /*massimo grado dei polinomi*/

typedef ... POLI;
/*gli elementi del tipo POLI rappresentano i polinomi in una variabile
  di grado massimo MAX con coefficienti interi*/

/* procedura che stampa un polinomio sul file di output standard */

/* procedura che calcola la somma di due polinomi 
  (non stampa niente e lascia immutati i dui polinomi) */

/* procedura che calcola la derivata di un polinomio 
   (non stampa niente e lascia immutato il polinomio) */

main()
{
   POLI P1, P2 ...
   /* assegnare a P1 il polinomio  3 x3 + 7 x - 8 */
   /* assegnare a P2 il polinomio  2 x2 - 7 x + 18 */

   /* stampare P1 e P2 */

   /* stampare la somma di P1 e di P2 */

   /* stampare la derivata di P1 */

   /* (ri)stampare P1 e P2 (devono essere uguali a prima) */
}