15 ottobre 2007

Risultato test online

Come si può vedere, il risultato non è completamente incoraggiante. Consiglio di confrontare con le proprie risposte, e approfondire gli argomenti su cui avete fatto errori.
Le risposte corrette le ho segnate in rosso. Le risposte più quotate sono segnate in grassetto.

La domanda 3, in cui la risposta più data non è quella corretta, è la più preoccupante!
Per le altre domande, spesso la percentuale di risposte sbagliate è davvero alta!







Response Summary

Total Started Survey:
43
Total Completed Survey:
40 (93%)

Page: Passaggio di parametri
1. int cubo(int x);

Response
Percent
Response
Count
x per valore, ritorno per valore 76.7% 33
x per riferimento, ritorno per valore 14.0% 6
x per valore, ritorno per riferimento 4.7% 2
x per riferimento, ritorno per riferimento 4.7% 2

answered question 43

skipped question 0

2. Per cambiare il segno di una variabile int mediante una funzione la cui chiamata nel main è la seguente: CambioSegno(i); l’intestazione della funzione deve essere:

Response
Percent
Response
Count
void CambioSegno(int x); 19.1% 8
void CambioSegno(int& x); 66.7% 28
int CambioSegno(int* px); 14.3% 6

answered question 42

skipped question 1

3. Il parametro attuale a in: main() { int a; f(a); } è passato:

Response
Percent
Response
Count
per valore 52.4% 22
per riferimento
0.0% 0
non si può stabilire senza guardare la dichiarazione della funzione 47.6% 20

answered question 42

skipped question 1

4. In questo programma: void f(int val, int& rif) { val++; rif++; } main() { int i = 1; int j = 1; f(i,j); cout <<>

Response
Percent
Response
Count
1 1 7.1% 3
1 2 78.6% 33
2 1 4.8% 2
2 2 9.5% 4

answered question 42

skipped question 1


Page: Passaggio di parametri con puntatori
5. Si consideri il passaggio del parametro nel seguente programma: void f(int* v) { // ... } main() { int v[1000]; f(v); } Si tratta di:

Response
Percent
Response
Count
passaggio per valore dell’array v 5.0% 2
passaggio per valore del puntatore alla prima locazione dell’array 60.0% 24
passaggio per riferimento dell’array 12.5% 5
pass per riferimento del puntatore alla prima locazione 22.5% 9

answered question 40

skipped question 3

6. Questa funzione: int* f() { int l; // ... return &l; }

Response
Percent
Response
Count
è corretta 22.5% 9
crea un errore a runtime perché l’indirizzo restituito al chiamante non esiste più 30.0% 12
rende il programma imprevedibile perché il contenuto della locazione puntata può essere cambiato 47.5% 19

answered question 40

skipped question 3

7. void f(int*& p) { p++; }

Response
Percent
Response
Count
corretta, modifica il parametro attuale 47.5% 19
corretta, incrementa l’oggetto puntato dal parametro attuale 35.0% 14
errata 17.5% 7

answered question 40

skipped question 3


Page: Memoria dinamica
8. delete p;

Response
Percent
Response
Count
dichiara libera la locazione di memoria puntata da p 87.2% 34
cancella il contenuto della locazione puntata da p 7.7% 3
cancella il contenuto del puntatore p 5.1% 2

answered question 39

skipped question 4

9. int* v = new int[100]; Data questa dichiarazione si può affermare che v[0] e *v:

Response
Percent
Response
Count
sono equivalenti 72.5% 29
indicano rispettivamente un int e un puntatore 17.5% 7
sono equivalenti, ma la seconda è sconsigliabile 10.0% 4
solo la seconda è corretta
0.0% 0

answered question 40

skipped question 3

10. In questa funzione, il cui scopo è quello di allocare un array di 100 elementi interi e associarne l'indirizzo della prima locazione al parametro attuale: void Alloca(...p) { p = new int[100]; } i puntini di sospensione vanno sostituiti con:

Response
Percent
Response
Count
int* 37.5% 15
int& 12.5% 5
int*& 42.5% 17
nessuna delle precedenti 7.5% 3

answered question 40

skipped question

Nessun commento: