ESAME 27-09-99 (C)

Questionario cartaceo

Rispondere alle seguenti domande:
  1. Esprimere usando la base 7 il risultato della somma dei seguenti due numeri,
    che sono a loro volta espressi in base 5:

    22, 11

  2. Che cosa stampa il seguente programma C?
    #include <stdio.h>
    
    int aaa(int *x, int *y)
    { int *a;
      
      a = x;
      *a = *y;
      *y = *x;  }
    
    main(){
      int i, j;
      
      i = 3;
      j = 4;
      aaa(&i, &j);
      printf("i = %d, j = %d\n", i, j);
    }
  3. Presentare precisamente la sintassi dei numeri civici italiani utilizzando o una grammatica BNF oppure dei diagrammi sintattici.
    Si ricorda che un numero civico è composto da un numero naturale positivo,
    eventualmente dall'indicazione rosso o nero,
    eventualmente dall'indicazione della scala (il carattere '\' seguito da una lettera),
    e poi dal numero dell'interno (un naturale positivo).

    Esempi di numeri civici sono
    33r 11, 12\B 4, 13 13 .

  4. Completare il seguente frammento di programma C come indicato dai commenti:
    #include <stdio.h>
    #include <stdlib.h>
    
    typedef struct LL *LISTA;
    struct LL { int NUMERO;  LISTA SEGUITO; } ;
              
    LISTA TOGLI(LISTA l, int x)
    /*questa funzione elimina ogni occorrenza di x da l, dire se l sara' modificata o no */
    {......}

Parte laboratorio

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

/*gli elementi del tipo INSIEME rappresentano gli insiemi di numeri reali 
la cui cardinalita' e' al piu' 50*/

typedef  INSIEME  ..........

/* la costante VUOTO  rappresenta l'insieme vuoto */
............


/* il sottoprogramma CARDINALITA ritorna la cardinalita' di un insieme */
............


/* il sottoprogramma UNIONE realizza l'unione di due insiemi
   chiarire come trattare l'errore */
............

/* il sottoprogramma APPARTIENE controlla se un elemento appartiene ad un insieme */
............


main()
{  
   INSIEME  I1, I2, I3;
   
   /* assegnare ad I1 l'insieme vuoto*/
   /* assegnare ad I2 l'insieme { 3.5, 7.0, 4.0 }*/
   /* assegnare ad I3 l'insieme { 3.1, 7.0, 4.4, 8.8 }*/
   /*controllare se 3.0 appartiene ad  I2 U I3 */
   /* stampare la cardinalita' di  I3 U I2 U I1  */
}