|
Wiki
UniCrema
Materie per semestre
Materie per anno
Materie per laurea
Help
|
|
Uni.DomandeC History
Hide minor edits - Show changes to output
Changed line 220 from:
[[Torna al Laboratorio di C->Uni.LaboratorioC]] | [[!Programmazione]]
to:
[[Torna al Laboratorio di C->Uni.LaboratorioC]] | [[!Programmazione]].
Changed line 220 from:
[[!Programmazione]] | [[!UniCrema]]
to:
[[Torna al Laboratorio di C->Uni.LaboratorioC]] | [[!Programmazione]]
Added lines 2-3:
%titolo%''':: Laboratorio C - Domande e risposte ::'''
Deleted lines 218-221:
\\
----- [[<<Torna all'elenco delle lezioni -> LaboratorioC]]
Changed line 222 from:
to:
[[!Programmazione]] | [[!UniCrema]]
Changed line 222 from:
to:
Changed lines 220-222 from:
[[<<Torna all'elenco delle lezioni -> LaboratorioC]]
to:
[[<<Torna all'elenco delle lezioni -> LaboratorioC]] ---- [[!C]]
Changed lines 215-216 from:
NOTA: Le funzioni fprintf() e printf() sono simili, solo che la funzione printf() stampa a monitor, mentre la funzione fprintf() stampa su una stringa
to:
NOTA: Le funzioni sprintf() e printf() sono simili, solo che la funzione printf() stampa a monitor, mentre la funzione sprintf() stampa su una stringa
Changed lines 145-146 from:
* '''Falso, e' sinonimo di cattiva progettazione del codice, generano errori imprevisti e difficili da debuggare, sono da evitare come la peste.'''
to:
* '''Falso, è sinonimo di cattiva progettazione del codice, generano errori imprevisti e difficili da debuggare, sono da evitare come la peste.'''
Added line 1:
(:title Laboratorio C - Domande e risposte:)
Added lines 217-221:
\\
----- [[<<Torna all'elenco delle lezioni -> LaboratorioC]]
Changed lines 45-47 from:
to:
Changed lines 52-54 from:
to:
Changed lines 59-64 from:
- if
- union
- enum
- '''void'''
- '''double'''
to:
* if * union * enum * '''void''' * '''double'''
Changed lines 69-72 from:
- dal programma stesso
- '''dal sistema operativo'''
- da nessuno dei due, e' pronta dall'avvio della macchina
to:
* dal programma stesso * '''dal sistema operativo''' * da nessuno dei due, e' pronta dall'avvio della macchina
Changed lines 77-79 from:
- sullo heap
- '''sullo stack'''
- nell'area del programma
to:
* sullo heap * '''sullo stack''' * nell'area del programma
Changed lines 83-85 from:
to:
Changed lines 90-91 from:
- '''x e' un indirizzo, mentre x[0] e' il primo dato contenuto nell'array'''
- Nessuna, sono entrambi riferimenti all'indirizzo prima cella
to:
* '''x e' un indirizzo, mentre x[0] e' il primo dato contenuto nell'array''' * Nessuna, sono entrambi riferimenti all'indirizzo prima cella
Changed lines 95-99 from:
- nulla, la riga e' sbagliata
- '''un puntatore a float'''
- un puntatore flottante
- un puntatore con un cast a float
to:
* nulla, la riga e' sbagliata * '''un puntatore a float''' * un puntatore flottante * un puntatore con un cast a float
Changed lines 104-105 from:
- '''Che pi e' una cella che conterra' l'indirizzo della variabile i'''
- Che saranno la stessa cosa e potro' intercambiarli nel codice.
to:
* '''Che pi e' una cella che conterra' l'indirizzo della variabile i''' * Che saranno la stessa cosa e potro' intercambiarli nel codice.
Changed lines 109-111 from:
- '''uno strumento che il compilatore usa per definire i tipi di dato in ingresso e uscita alla funzione'''
- una funzione solo abbozzata, appunto allo stato di prototipo
- una nota per gli sviluppatori futuri
to:
* '''uno strumento che il compilatore usa per definire i tipi di dato in ingresso e uscita alla funzione''' * una funzione solo abbozzata, appunto allo stato di prototipo * una nota per gli sviluppatori futuri
Changed lines 115-117 from:
- '''Vero'''
- Falso, finisce con una graffa aperta a cui segue il codice della funzione
to:
* '''Vero''' * Falso, finisce con una graffa aperta a cui segue il codice della funzione
Changed lines 122-123 from:
- '''Falso, il prototipo puo' non contenere il nome dei parametri formali, quindi non sempre sono uguali'''
- Vero, sono sempre uguali
to:
* '''Falso, il prototipo puo' non contenere il nome dei parametri formali, quindi non sempre sono uguali''' * Vero, sono sempre uguali
Changed lines 127-128 from:
- '''si inseriscono solo a scopo documentativo, il compilatore li ignora e guarda solo il TIPO dei dati passati'''
- devono sempre essere inclusi altrimenti il compilatore non riesce ad usarlo
to:
* '''si inseriscono solo a scopo documentativo, il compilatore li ignora e guarda solo il TIPO dei dati passati''' * devono sempre essere inclusi altrimenti il compilatore non riesce ad usarlo
Changed lines 132-133 from:
- '''Vero, il codice delle funzioni potrebbe essere gia' compilato in una libreria'''
- Falso, se alla fine vogliamo compilare il nostro codice che usa quelle funzioni allora nel file incluso deve esserci TUTTO il codice
to:
* '''Vero, il codice delle funzioni potrebbe essere gia' compilato in una libreria''' * Falso, se alla fine vogliamo compilare il nostro codice che usa quelle funzioni allora nel file incluso deve esserci TUTTO il codice
Changed lines 137-139 from:
- '''Falso, proprio non si vedono e quindi non esiste questo problema'''
- Vero, meglio usare sempre nomi diversi
to:
* '''Falso, proprio non si vedono e quindi non esiste questo problema''' * Vero, meglio usare sempre nomi diversi
Changed line 144 from:
- '''Falso, e' sinonimo di cattiva progettazione del codice, generano errori imprevisti e
to:
* '''Falso, e' sinonimo di cattiva progettazione del codice, generano errori imprevisti e
Changed lines 146-147 from:
- Vero, e' sempre consigliabile definire molte variabili globali. Infatti avendo il nome TUTTO IN MAIUSCOLO non possono essere confuse con le altre
to:
* Vero, e' sempre consigliabile definire molte variabili globali. Infatti avendo il nome TUTTO IN MAIUSCOLO non possono essere confuse con le altre
Changed lines 152-154 from:
to:
Changed lines 159-161 from:
to:
Changed lines 166-168 from:
to:
Changed lines 173-175 from:
to:
Changed lines 180-182 from:
to:
Changed lines 187-190 from:
- alloca n interi in memoria
- '''alloca n byte in memoria'''
- alloca la memoria della variabile n
to:
* alloca n interi in memoria * '''alloca n byte in memoria''' * alloca la memoria della variabile n
Changed lines 196-199 from:
to:
Changed lines 205-207 from:
- '''al tempo relativo che il programma e' stato effettivamente in esecuzione'''
- ad un tempo assoluto
to:
* '''al tempo relativo che il programma e' stato effettivamente in esecuzione''' * ad un tempo assoluto
Changed lines 212-214 from:
to:
Changed lines 113-115 from:
16. Il prototipo di una funzione finisce sempre con un ";".
- Vero
to:
''16. Il prototipo di una funzione finisce sempre con un ";".''
- '''Vero'''
Changed lines 118-124 from:
NOTA:E' la definizione che non termina con il “;”, ma dalle parentesi graffe.
----------------------------------------------------------------------
17. La definizione di una funzione ha come prima riga il prototipo della funzione stessa.
- Falso, il prototipo puo' non contenere il nome dei parametri formali, quindi non sempre sono uguali
to:
NOTA: E'la definizione che non termina con il “;”, ma con delle parentesi graffe. ---- ''17. La definizione di una funzione ha come prima riga il prototipo della funzione stessa.''
- '''Falso, il prototipo puo' non contenere il nome dei parametri formali, quindi non sempre sono uguali'''
Changed lines 124-129 from:
----------------------------------------------------------------------
18. Nel prototipo i parametri formali ...
- si inseriscono solo a scopo documentativo, il compilatore li ignora e guarda solo il TIPO dei dati passati
to:
---- ''18. Nel prototipo i parametri formali...''
- '''si inseriscono solo a scopo documentativo, il compilatore li ignora e guarda solo il TIPO dei dati passati'''
Changed lines 129-134 from:
----------------------------------------------------------------------
19. I file che includiamo con la direttiva #include possono essere delle semplici collezioni di prototipi di funzioni.
- Vero, il codice delle funzioni potrebbe essere gia' compilato in una libreria
to:
---- ''19. I file che includiamo con la direttiva #include possono essere delle semplici collezioni di prototipi di funzioni.''
- '''Vero, il codice delle funzioni potrebbe essere gia' compilato in una libreria'''
Changed lines 134-139 from:
----------------------------------------------------------------------
20. Le variabili che definiamo in una funzione sono visibili all'esterno e quindi dobbiamo stare attenti con i nomi delle variabili perche' non si confondano con quelli del main.
- Falso, proprio non si vedono e quindi non esiste questo problema
to:
---- ''20. Le variabili che definiamo in una funzione sono visibili all'esterno e quindi dobbiamo stare attenti con i nomi delle variabili perche' non si confondano con quelli del main.''
- '''Falso, proprio non si vedono e quindi non esiste questo problema'''
Changed lines 140-147 from:
NOTA:Le variabili dichiarate all'interno di un blocco muoiono quando il blocco viene chiuso, quindi non si vedono!
----------------------------------------------------------------------
21. Usare delle variabili globali e' sempre una buona idea che risolve spesso problemi di strutturazione del codice
- Falso, e' sinonimo di cattiva progettazione del codice, generano errori imprevisti e difficili da debuggare, sono da evitare come la peste.
to:
NOTA: Le variabili dichiarate all'interno di un blocco muoiono quando il blocco viene chiuso, quindi non si vedono! ---- ''21. Usare delle variabili globali e' sempre una buona idea che risolve spesso problemi di strutturazione del codice''
- '''Falso, e' sinonimo di cattiva progettazione del codice, generano errori imprevisti e difficili da debuggare, sono da evitare come la peste.'''
Changed lines 148-153 from:
NOTA:Se dichiariamo delle variabili globali e all'interno di un blocco utilizziamo lo stesso nome per una variabile, possiamo avere spiacevoli imprevisti. Quindi è meglio non utilizzare le variabili globali.
----------------------------------------------------------------------
22. La funzione fscanf non puo' essere usata per leggere i dati dallo standard input:
to:
NOTA: Se dichiariamo delle variabili globali e all'interno di un blocco utilizziamo lo stesso nome per una variabile, possiamo avere spiacevoli imprevisti. Quindi è meglio non utilizzare le variabili globali. ---- ''22. La funzione fscanf non puo' essere usata per leggere i dati dallo standard input:''
Added lines 153-166:
- '''falso'''
NOTA: La funzione fscanf è utilizzata per leggere da file! ---- ''23. Tutti i file devono essere aperti prima di essere letti o scritti, per questo motivo stdin, stdout e lo standard error devono essere aperti con una fopen prima di essere usati:''
- vero - '''falso'''
NOTA: E' vero che i file prima di essere letti o scritti devono essere aperti, ma è falso che che devono essere aperti gli stdin e stdout e lo standard error. ---- ''24. Tutti i file devono essere chiusi prima della uscita dal main con fclose:''
- '''vero'''
Changed lines 169-175 from:
NOTA:La funzione fscanf è utilizzata per leggere da file!
----------------------------------------------------------------------
23. Tutti i file devono essere aperti prima di essere letti o scritti, per questo motivo stdin, stdout e lo standard error devono essere aperti con una fopen prima di essere usati:
- vero
to:
NOTA: Prima di operare sui file bisogna aprirli (con una fopen();) ci si opera e infine bisogna chiuderli (con una fclose();). ---- ''25. Per trovare un record in un file ad accesso casuale non e' necessario scorrere tutti gli altri record nel file''
- '''vero'''
Changed lines 176-181 from:
NOTA:E' vero che i file prima di essere letti o scritti devono essere aperti, ma è falso che che devono essere aperti gli stdin e stdout e lo standard error.
----------------------------------------------------------------------
24. Tutti i file devono essere chiusi prima della uscita dal main con fclose:
to:
NOTA: Basta utilizzare la funzione fseek(); la quale ci permette di spostare la testina su un byte qualunque del file. ---- ''26. La funzione fseek deve essere usata solo per trovare l'inizio del file:''
Added lines 181-212:
- '''falso'''
NOTA: Per trovare l'inizio del file bisogna utilizzare la funzione rewind();. ---- ''27. L'istruzione malloc(n):''
- alloca n interi in memoria - '''alloca n byte in memoria''' - alloca la memoria della variabile n
NOTA: Gli passiamo il numero dei byte, per questo è corretta la seconda! Es: v = (*int)malloc (sizeof(int)); ---- ''28. Dopo l'istruzione x = (4>9) ? 7 : 88; la variabile intera x contiene:''
- 7 - '''88''' - (4>9)
NOTA: Osserviamo l'istruzione: la dobbiamo interpretare così: 4 è maggiore di 9 ? se si x vale 7 altrimenti x=88. ---- ''29. La funzione clock() restituisce un valore che si riferisce''
- '''al tempo relativo che il programma e' stato effettivamente in esecuzione''' - ad un tempo assoluto
NOTA: E' la funzione time() che ci restituisce un tempo assoluto. ---- ''30. La funzione sprintf() e' equivalente alla printf eccetto che l'output sara' memorizzato su una stringa invece che stampato a terminale.''
- '''vero'''
Changed lines 215-279 from:
NOTA:Prima di operare sui i file bisogna aprirli (con una fopen();) ci si opera e in fine bisogna chiuderli (con una fclose();).
----------------------------------------------------------------------
25. Per trovare un record in un file ad accesso casuale non e' necessario scorrere tutti gli altri record nel file
- vero - falso
NOTA:Basta utilizzare la funzione fseek(); la quale ci permette di spostare la testina su un byte qualunque del file.
----------------------------------------------------------------------
26. La funzione fseek deve essere usata solo per trovare l'inizio del file:
- vero - falso
NOTA:Per trovare l'inizio del file bisogna utilizzare la funzione rewind();.
----------------------------------------------------------------------
----------------------------------------------------------------------
27. L'istruzione malloc(n):
- alloca n interi in memoria - alloca n byte in memoria - alloca la memoria della variabile n
NOTA:Gli passiamo il numero dei byte,per questo è corretta la seconda! Es: v = (*int)malloc (sizeof(int));
----------------------------------------------------------------------
28. Dopo l'istruzione x = (4>9) ? 7 : 88; la variabile intera x contiene:
- 7 - 88 - (4>9)
NOTA:Osserviamo l'istruzione:la dobbiamo interpretare così: 4 è maggiore di 9 ? se si x vale 7 altrimenti x=88.
----------------------------------------------------------------------
29. La funzione clock() restituisce un valore che si riferisce
- al tempo relativo che il programma e' stato effettivamente in esecuzione - ad un tempo assoluto
NOTA:E' la funzione time() che ci restituisce un tempo assoluto.
----------------------------------------------------------------------
30. La funzione sprintf() e' equivalente alla printf eccetto che l'output sara' memorizzato su una stringa invece che stampato a terminale.
- vero - falso NOTA:Le funzioni fprintf() e printf() sono simili, solo che la funzione printf() stampa a monitor, mentre la funzione fprintf() stampa su una stringa
to:
NOTA: Le funzioni fprintf() e printf() sono simili, solo che la funzione printf() stampa a monitor, mentre la funzione fprintf() stampa su una stringa
Added lines 1-249:
Le risposte corrette sono quelle in '''grassetto'''.
---- ''1. Un programma scritto in Fortran, C o Java è''
* '''un file di testo''' * una sequenza di istruzioni * un insieme di 0 e 1 * una sequenza di numeri binari che il processore puo' interpretare
NOTA: Andava bene anche la seconda, però la risposta completa è: ”un file di testo”, dato che all'interno del programma inseriamo anche delle dichiarazioni. ---- ''2. La definizione di una etichetta puo' essere posta:''
* ovunque, tanto e' una sostituzione che avviene a livello di pre-compilazione, ma e' prassi inserirla sopra il main del programma * '''solo sopra il main del programma'''
NOTA: Le etichette vanno dichiarate prima del main perchè sono necessarie prima delle compilazione del programma ---- ''3. La seguente porzione di codice (x=8) è''
* '''una espressione''' * una istruzione
NOTA: Una espressione non termina mai con il “;”. Se fosse stata (x=8); sarebbe stata una istruzione. ---- ''4. Quali delle seguenti espressioni sono vere (anche piu' di una)?''
* Una espressione non ha mai effetti sulle variabili * (x==3) e' una istruzione di controllo * '''Un'istruzione è un'espressione con un punto e virgola alla fine'''
NOTA: La prima non può essere perché ad esempio l'espressione “i++” ha degli effetti sulle variabili;la seconda nemmeno, perché (x==3) è una espressione e non una istruzione. Quindi è la terza! ---- ''5. L'espressione 'a[x = n *2, y = n++] = (b = 27) + (c = (f = e - 3));' è corretta?''
* Sì * '''No'''
NOTA: Non è corretta perché è una istruzione e non un espressione (termina con il “;”). ---- ''6. Qualunque dato allocato in un programma C in esecuzione e' semplicemente un insieme di bit:''
- '''sì''' - no
NOTA: Il programma durante l'esecuzione diventa un sequenza di bit! ---- ''7. Una variabile carattere memorizzata in un programma C in realta' e' scritta come un numero intero:''
- no - '''sì'''
NOTA: Ogni carattere ha un corrispondente valore in numeri interi (secondo il codice ASCII). ---- ''8. Quale delle seguenti parole riservate serve per dichiarare variabili di tipo built-in?''
- if - union - enum - '''void''' - '''double'''
NOTA: I tipi di dato “built-in” sono quei dati già esistenti in c. La prima è errata perchè non è un tipo di variabile; union e enum non sono parole di tipo built-in. Le risposte corrette sono le ultime due. ---------------------------------------------------------------------- ''9. La memoria che viene impiegata da un programma è stata allocata:''
- dal programma stesso - '''dal sistema operativo''' - da nessuno dei due, e' pronta dall'avvio della macchina
NOTA: E' il sistema operativo che deve allocare la memoria per i programmi! ---- ''10. Le funzioni allocano i loro parametri formali:''
- sullo heap - '''sullo stack''' - nell'area del programma ---- ''11. Il segmento di memoria che contiene il programma puo' crescere se il programma ha necessità''
- '''No''' - Si'
NOTA: Quando scriviamo le istruzione di un programma al momento della compilazione le istruzioni vengono tradotte in linguaggio macchina, ma rimangono quelle. Quindi lo spazio non aumenta e non diminuisce! ---- ''12. Avendo dichiarato int x[100]; che differenza c'e' tra x e x[0]?''
- '''x e' un indirizzo, mentre x[0] e' il primo dato contenuto nell'array''' - Nessuna, sono entrambi riferimenti all'indirizzo prima cella ---- ''13. Avendo la seguente dichiarazione: float * p; si evince che p è:''
- nulla, la riga e' sbagliata - '''un puntatore a float''' - un puntatore flottante - un puntatore con un cast a float
NOTA: L'istruzione è chiaramente un puntatore a float dato che c'è il simbolo '*'. Se non ci fosse stato il simbolo '*' p sarebbe stata una semplice variabile di tipo float. ---- ''14. Avendo definito int i; e int *pi; cosa vuole dire che e' possibile fare in modo che pi punti a i?''
- '''Che pi e' una cella che conterra' l'indirizzo della variabile i''' - Che saranno la stessa cosa e potro' intercambiarli nel codice. ---- ''15. Il prototipo di una funzione è:''
- '''uno strumento che il compilatore usa per definire i tipi di dato in ingresso e uscita alla funzione''' - una funzione solo abbozzata, appunto allo stato di prototipo - una nota per gli sviluppatori futuri ---- 16. Il prototipo di una funzione finisce sempre con un ";".
- Vero - Falso, finisce con una graffa aperta a cui segue il codice della funzione
NOTA:E' la definizione che non termina con il “;”, ma dalle parentesi graffe.
----------------------------------------------------------------------
17. La definizione di una funzione ha come prima riga il prototipo della funzione stessa.
- Falso, il prototipo puo' non contenere il nome dei parametri formali, quindi non sempre sono uguali - Vero, sono sempre uguali
----------------------------------------------------------------------
18. Nel prototipo i parametri formali ...
- si inseriscono solo a scopo documentativo, il compilatore li ignora e guarda solo il TIPO dei dati passati - devono sempre essere inclusi altrimenti il compilatore non riesce ad usarlo
----------------------------------------------------------------------
19. I file che includiamo con la direttiva #include possono essere delle semplici collezioni di prototipi di funzioni.
- Vero, il codice delle funzioni potrebbe essere gia' compilato in una libreria - Falso, se alla fine vogliamo compilare il nostro codice che usa quelle funzioni allora nel file incluso deve esserci TUTTO il codice
----------------------------------------------------------------------
20. Le variabili che definiamo in una funzione sono visibili all'esterno e quindi dobbiamo stare attenti con i nomi delle variabili perche' non si confondano con quelli del main.
- Falso, proprio non si vedono e quindi non esiste questo problema - Vero, meglio usare sempre nomi diversi
NOTA:Le variabili dichiarate all'interno di un blocco muoiono quando il blocco viene chiuso, quindi non si vedono!
----------------------------------------------------------------------
21. Usare delle variabili globali e' sempre una buona idea che risolve spesso problemi di strutturazione del codice
- Falso, e' sinonimo di cattiva progettazione del codice, generano errori imprevisti e difficili da debuggare, sono da evitare come la peste. - Vero, e' sempre consigliabile definire molte variabili globali. Infatti avendo il nome TUTTO IN MAIUSCOLO non possono essere confuse con le altre
NOTA:Se dichiariamo delle variabili globali e all'interno di un blocco utilizziamo lo stesso nome per una variabile, possiamo avere spiacevoli imprevisti. Quindi è meglio non utilizzare le variabili globali.
----------------------------------------------------------------------
22. La funzione fscanf non puo' essere usata per leggere i dati dallo standard input:
- vero - falso
NOTA:La funzione fscanf è utilizzata per leggere da file!
----------------------------------------------------------------------
23. Tutti i file devono essere aperti prima di essere letti o scritti, per questo motivo stdin, stdout e lo standard error devono essere aperti con una fopen prima di essere usati:
- vero - falso
NOTA:E' vero che i file prima di essere letti o scritti devono essere aperti, ma è falso che che devono essere aperti gli stdin e stdout e lo standard error.
----------------------------------------------------------------------
24. Tutti i file devono essere chiusi prima della uscita dal main con fclose:
- vero - falso
NOTA:Prima di operare sui i file bisogna aprirli (con una fopen();) ci si opera e in fine bisogna chiuderli (con una fclose();).
----------------------------------------------------------------------
25. Per trovare un record in un file ad accesso casuale non e' necessario scorrere tutti gli altri record nel file
- vero - falso
NOTA:Basta utilizzare la funzione fseek(); la quale ci permette di spostare la testina su un byte qualunque del file.
----------------------------------------------------------------------
26. La funzione fseek deve essere usata solo per trovare l'inizio del file:
- vero - falso
NOTA:Per trovare l'inizio del file bisogna utilizzare la funzione rewind();.
----------------------------------------------------------------------
----------------------------------------------------------------------
27. L'istruzione malloc(n):
- alloca n interi in memoria - alloca n byte in memoria - alloca la memoria della variabile n
NOTA:Gli passiamo il numero dei byte,per questo è corretta la seconda! Es: v = (*int)malloc (sizeof(int));
----------------------------------------------------------------------
28. Dopo l'istruzione x = (4>9) ? 7 : 88; la variabile intera x contiene:
- 7 - 88 - (4>9)
NOTA:Osserviamo l'istruzione:la dobbiamo interpretare così: 4 è maggiore di 9 ? se si x vale 7 altrimenti x=88.
----------------------------------------------------------------------
29. La funzione clock() restituisce un valore che si riferisce
- al tempo relativo che il programma e' stato effettivamente in esecuzione - ad un tempo assoluto
NOTA:E' la funzione time() che ci restituisce un tempo assoluto.
----------------------------------------------------------------------
30. La funzione sprintf() e' equivalente alla printf eccetto che l'output sara' memorizzato su una stringa invece che stampato a terminale.
- vero - falso NOTA:Le funzioni fprintf() e printf() sono simili, solo che la funzione printf() stampa a monitor, mentre la funzione fprintf() stampa su una stringa
|
|