FRAMES    NOFRAMES

Test introduttivo al corso di FI-ODL

 

"per gli studenti di fondamenti di informatica I"

Questo test introduttivo serve  per  valutare il livello base della preparazione dei partecipanti al corso.

Non ci si aspetta che tutti rispondano esattamente a tutte le domande ...

alla fine del corso un altro test verifichera' se la preparazione ha avuto i miglioramenti attesi, cioe' se il corso e' stato utile. 

I dati risultanti dal test  non verranno divulgati, se non in forma aggregata. 

Vi invitiamo alla compilazione e   Buon lavoro.

________________________________________________

Compilate il questionario  in tutte le sue parti ed inviate subito.

Cognome :      

Nome :                

Num. di matricola :                 

E-mail  :           

Corso :           

Leggete attentamente le domande del test e date la/le vostra/e risposta/e .


1) Per quanto tempo la memoria RAM di un personal computer conserva le informazioni?


Finchè  lo hard disk funziona in modo corretto ossia non vi sono settori danneggiati


Fintanto che il computer è alimentato

Fintanto che la scheda madre del computer  è alimentata con una batteria tampone
 

2) Che cosa e' la ALU ?

  Il processore del computer

  L' unita' legale aritmetica di un computer

  L' unita' aritmetico-logica

  L'unita' che si occupa della conversione da analogico a digitale 


3)  Il seguente numerale A1F0 in base 16 a quale numero in base 10 corrisponde ?

  38256

  45258

  33366

 41456

4) Il seguente pseudocodice, supponendo n>0: 

int a, b,n, somma=0;   leggi a,b,n ;  if(a!=b) allora       

somma=(somma+1) * n *(n+1)/2);   write(somma);     

quale problema risolve ?

 stampa il valore [n*(n+1)/2 +1] * [n*(n+1)/2] soltanto se a e' diverso da b.
 stampa la somma dei numeri naturali  da 1 fino ad n soltanto se a e' diverso da b.
non funziona in quanto nella dichiarazione alla variabile somma abbiamo assegnato il valore zero.


5) La rappresentazione degli interi relativi  X , nell' intervallo  

[-(b^n )/2, (b^n)/2  ) , tramite il residuo modulo b^n di X, e' detta:


Rappresentazione in base b degli interi

Rappresentazione Ascii dei numeri in base b

Rappresentazione in complemento alla base b

Rappresentazione in modulo di un un intero in base b

6) Quali linguaggi di programmazione conosce ?

Pascal

C

C++ 

Java

Perl

Javascript

Nessuno

Inserite eventuali altri linguaggi di vostra conoscenza

 

7) Quale problema risolve il seguente algoritmo , se r e' un numero intero maggiore di 1 ?

1) leggi r;   2) cont <--- 1;   3) cont = r * cont; 4) somma= 1;

5) se (cont <= r)

 { somma <--- somma + cont;  cont <---  cont * 2; }

6) stampa somma;

Stampa della somma di tutti i numeri da 1 fino ad r+1

Stampa del valore r+1

Stampa,  del valore 2r + 1

Stampa,  del valore  2r

8) Quali fra i sotto-elencati sono dei sistemi operativi e che conosce :
  Microsoft internet explorer

  UNIX

  DOS

  NETSCAPE COMMUNICATOR

  WINDOWS 98 

  FRONT PAGE 2000

  LINUX


9) La seguente funzione C :  

long int F (int k){if(k==0) return 1;  else return k*F(k-1); }  cosa utilizza  e  per calcolare che cosa ?

usa la ricorsione  per calcolare la somma dei numeri interi da 1 fino a k.
usa la ricerca binaria e  calcola la somma dei numeri interi da 1 fino a k.

usa la ricorsione  per calcolare il fattoriale di k.

usa la ricorsione  per calcolare il fattoriale di k, ma la funzione e' non corretta.

 

10) Come puo' essere usata una stringa in un programma in linguaggio C ?

Soltanto attraverso un array di caratteri monodimensionale

 Attraverso una matrice il cui tipo e' char

Attraverso un vettore di caratteri e con un puntatore a carattere

Attraverso un vettore di caratteri avente dimensione pari alla lunghezza della stringa.

 

11) Eseguite ognuna delle seguenti attivita':

a) Scrivete l'intestazione di una funzione chiamata  scambia  che  riceva  come parametri due puntatori ai numeri in virgola mobile n ed m e che non restituisca alcun valore.

b) Scrivete il prototipo per la funzione della parte a)

12) Determinate quali fra le seguenti affermazioni sono vere e quali sono false: (facoltativamente potete scrivere la motivazione della risposta)

a) Un array mono-dimensionale puo' immagazzinare valori di molti tipi differenti.

   motivazione :

b) La funzione, che usa l'algoritmo di ordinamento selection-sort, per ordinare un array di 5 elementi interi, utilizza nel caso peggiore 10 confronti.

   motivazione : 

c) Supponiamo di avere la seguente: dichiarazione int new_array[15]; e' corretto leggere da input gli elementi del vettore attraverso la seguente istruzione: 

for(i=0;i<15;i++) scanf("%i",&new_array[i]); con i definito di tipo intero.

   motivazione :

d) Avendo la seguente dichiarazione: int *new_array;e' corretto leggere da input gli elementi del vettore attraverso la seguente istruzione:

for(i=0;i<15;i++) scanf("%d",(new_array+i)); con i definito di tipo intero.

   motivazione :

 

13) Cosa fa il programma in linguaggio C seguente:

#include<stdio.h>

void distanza(float *x1,float *x2, float *y1, float *y2);
float x; 
float m; 
int main()
{
char car;
float a,b,c,d;
printf("\n__________________________");
printf("\ninserite il punto x1 : " );
scanf("\n%f",&a);
printf("\ninserite il punto x2 : ");
scanf("\n%f",&b);
printf("\ninserite il punto y1 : " );
scanf("\n%f",&c);
printf("\ninserite il punto y2 : ");
scanf("\n%f",&d);
distanza(&a,&b,&c,&d);
scanf("\n%c",&car);

return(0);
}

void distanza(float *x1, float *x2, float *y1, float *y2)
{
float y;
int cont=0;
char car;
m=(*y2-*y1)/(*x2-*x1);
x=-20;
 while(x<=20)
 {
 y=m*(x)+(*y1) -(*x1)*m;
 cont++;
 printf("\n%d) y= %.2f per x= %.2f ",cont,y,x);
  if(cont%18==0)
  {
  printf("\nInserite un carattere per la schermata   successiva\n");
  scanf("\n%c",&car);
  }
 x=x+0.25;
 }
}

Traccia il grafico per punti, della funzione matematica passante per due punti nel piano cartesiano, utilizzando una funzione in cui i punti sono passati come puntatori a reali,al variare del valore della variabile indipendente x da -20 a +20 con incrementi di 0.25.

 Calcola il valore numerico, della funzione matematica passante per due punti nel piano cartesiano, utilizzando una funzione in cui i punti sono passati come variabili di tipo float, al variare del valore della variabile indipendente x da -20 a +20 con incrementi di 0.25.

Calcola il valore numerico, della funzione matematica passante per due punti nel piano cartesiano, utilizzando una funzione in cui i punti sono passati come puntatori a reali,al variare del valore della variabile indipendente x da -20 a +20 con incrementi di 0.25.

Traccia il grafico per punti, della funzione matematica passante per due punti nel piano cartesiano, utilizzando una funzione in cui i punti sono passati come variabili di tipo  float ,al variare del valore della variabile indipendente x da -20 a +20 con incrementi di 0.25.

 

14) Un vettore elementare di nome vector, di 10 caratteri, come si puo' dichiarare nel linguaggio C?

 

15) la seguente dichiarazione int k[8]; cosa rappresenta?

 

16) (11001.1001) corrisponde a in base 10.

 

17) B1E7 esadecimale corrisponde a in base 2.

 

18) Cosa succede ai parametri attuali , di una funzione, dopo la cessata attivazione: nel passaggio per valore ed in quello per  indirizzo?

 

 19) Perche' nel passaggio di un array ad una funzione, quest'ultimo viene sempre passato per indirizzo nel linguaggio C?

 

20) Si assuma di rappresentare numeri in complemento a due. Se la rappresentazione di un numero mediante quattro bit e' 1101, la sua rappresentazione mediante sei bit e':

  001101

011101

101101

111101

 

 

 

                 
 
   Controlli la correttezza dei dati ed invii il modulo

   N.B.  Il modulo va  inviato una sola volta