Test di autovalutazione 18 

Domanda 1 :

Quali sono le funzioni essenziali per la allocazione dinamica, nel linguaggio C?

malloc() e realloc()

malloc()

malloc() e free()

calloc() e malloc()

 

Domanda 2 :

Quale e' il prototipo della funzione malloc() ? 

  int malloc(size numero_di_byte)

  void  malloc(size_t numero_di_byte);

  int *malloc(size numero_di_byte);

  void * malloc(size_t numero_di_byte);

 

Domanda 3 :

Cosa fa il seguente programma ?

#include <stdio.h>

#include<stdlib.h>

#include<string.h>

main( ){ char  *strin; register int  i;

 strin = malloc(80 * sizeof ( int ));

   if (! strin)

   { printf ( “\nRichiesta di memoria negata”\n);  exit (1); }

  gets (strin);

  for (i=strlen(strin)-1; i>=0; i--)

    printf (“%c”,strin[i]);    free (strin); }

 utilizza un array allocato dinamicamente per acquisire una stringa strin da input (tastiera) e stampa la stringa all’indietro.

utilizza un array  per acquisire una stringa strin da input (tastiera) e stampa la stringa all’indietro.

utilizza un array allocato dinamicamente per acquisire una stringa strin da input (tastiera) e stampa la semistringa un carattere si ed un altro no.

utilizza un array allocato dinamicamente per acquisire una stringa strin da input  e stampa la stringa .

 

Domanda 4 :

Cosa stampera' il seguente programma ?

#include<stdio.h>

main(){int num,  *p; num=350;p=num;printf("%d",*p);} 

  stampera' un valore sconosciuto

  stampera' il valore di num ossia 350

  non stampera' nessun  valore

 stampera' due volte il  valore  350

 

Domanda 5 

Cosa fa il compilatore C all'array numero nel seguente programma ?

#include<stdio.h>

void print_array(int  [] ); /*prototipo funzione print_array*/

main ( )

{

 int  array[20], k;

 for (k=0; k<20; k++)

 array[k]=k;

 print_array (array);

 /*chiamata della funzione print_array con parametro attuale array*/

}

void  print_array (int numero[20])

{

 int  j;

 for (j=0; j<20; j++)

printf (“%d”, numero[j]);

}

 

Notiamo che il programma dichiara numero come un array di 20 elementi interi.

il compilatore C lo lascia come e', poiche’  puo’ essere che un parametro formale riceva un array completo.

 il compilatore C lo lascia come e', poiche’  puo’ essere che un parametro attuale riceva un array completo.

 il compilatore C lo converte in un puntatore intero, poiche’ non puo’ essere che un parametro attuale riceva un array completo.

 il compilatore C lo converte in un puntatore intero, poiche’ non puo’ essere che un parametro formale riceva un array completo.

 

Domanda  6 :

Una variabile e' individuata da un indirizzo ed una funzione da cosa? 

  dall'indirizzo di inizio del codice della funzione

  dall'indirizzo dove viene memorizzato il corpo della funzione

 dall'identificatore del puntatore a funzione 

 dall' indirizzo della parte dichiarativa della funzione      

 

Domanda  7 :

Il nome di un vettore 'nome_array' e' equivalente a che cosa? 

 al puntatore all'indirizzo del suo primo elemento

 a nome_array[0]

 all'indirizzo del suo primo elemento, ossia &nome_array[0]

  all'indirizzo del suo primo elemento, ossia nome_array[0]

 

Domanda  8 :

La seguente dichiarazione :  void(*g[3])(int)={f1,f2,f3}; cosa rappresenta?

il prototipo di un array di  funzioni che riceveranno come argomento un int e che restituiranno void; l'array e' stato inizializzato con i nomi delle tre funzioni

la definizione di un array di 3 puntatori  che riceveranno come argomento un int e che restituiranno void; l'array e' stato inizializzato con i nomi delle tre funzioni

un array di 3  funzioni che riceveranno come argomento un int e che restituiranno void; l'array e' stato inizializzato con i nomi delle tre funzioni

il prototipo di un array di 3 puntatori a funzioni che riceveranno come argomento un int e che restituiranno void; l'array e' stato inizializzato con i nomi delle tre funzioni

_____________________________________________________

                Esito test :                  

 

                        

Risposte esatte su domande affrontate

_____________________________________________________

 return to lesson 18 

_____________________________________________________