successivo precedente inizio fine indice generale aiuto indice analitico volume parte
Per lo svolgimento della verifica può essere usata una calcolatrice comune; inoltre possono essere usati fogli di brutta copia, per annotare i calcoli intermedi.
Quando viene richiesto di indicare valori numerici, non si deve specificare la base.
1) [-0.72..0.24] Si indichino quali sono le righe errate, dal punto di vista sintattico, contenute nell'estratto di codice seguente. Se un errore riguarda un'istruzione suddivisa su più righe, si indichi solo la prima di queste righe.
1 /* bla bla bla bla bla bla bla bla */ 2 3 /* bla bla bla bla bla // bla bla */ 4 bla bla bla */ 5 6 // bla bla bla bla bla /* bla bla // 7 bla bla bla // 8 9 /* bla bla bla bla bla /* bla bla */ bla bla bla */ 10 // bla bla bla bla bla bla bla bla 11 12 // bla bla bla bla bla // bla bla // bla bla bla
2) [-0.64..0.24] Si indichino quali sono le righe errate, dal punto di vista sintattico, contenute nell'estratto di codice seguente. Se un errore riguarda un'istruzione suddivisa su più righe, si indichi solo la prima di queste righe.
1 a = b + 123 + b-- * 6; 2 c = d * 34 3 d = e * 4 + 4 f 5 ; 6 ; 7 { a = 123 + b; ) 8 { c = d * 34; 9 d = e * 4 + 10 f } 11 ;
3) [-0.16..0.24] Segue un elenco di nomi di variabili o di funzioni (non ha importanza distinguere). Si indichino quali sono i nomi che non possono essere usati.
uno-due-tre
uno+due+tre
uno_due_tre
uno2tre
1due3
4) [-0.25..+0.25] Cosa fanno le istruzioni seguenti?
printf ("Ciao"); printf (" "); printf ("mondo!"); printf ("\n");
5) [-0.25..+0.25] A cosa serve la sequenza \n che appare nell'esempio seguente?
printf ("bla bla\n bla bla");
6) [-0.24..0.24] Si indichino quali sono le righe errate, contenute nell'estratto di codice seguente.
1 printf ("Imponibile: %d, IVA %211\n.", 1000, 211); 2 printf ("Imponibile: %d, IVA 211.", 1000); 3 printf ("Imponibile: %d, IVA %d", 1000, 200); 4 printf ("Imponibile: %d, IVA %d.\n", 1000, 211, 11);
7) [-0.25..+0.25] Cosa rappresenta una variabile scalare di tipo char?
8) [-0.25..+0.25] Come si definisce una variabile scalare di tipo a virgola mobile, molto più ampio del tipo normale?
unsigned
short
long
signed long
unsigned long
long long
signed long long
unsigned long long
char
signed char
unsigned char
short int
signed short int
unsigned short int
int
signed int
unsigned int
long int
signed long int
unsigned long int
long long int
signed long long int
unsigned long long int
float
double
long double
9) [0..0.25] Si scriva la sequenza corretta, in ordine di rango crescente, dei tipi indicati. Vanno inserite esattamente quattro cifre numeriche, senza spazi e senza altri caratteri.
10) [-0.25..+0.25] Dovendo rappresentare valori da -3333310 a +3333310, è possibile usare una variabile scalare di tipo short int a 16 bit?
11) [-0.25..+0.25] Dovendo rappresentare valori da -3333310 a +3333310, è possibile usare una variabile scalare di tipo unsigned long long a 64 bit?
12) [-0.25..+0.25] Dovendo rappresentare valori da -3333310 a +3333310, è possibile usare una variabile scalare di tipo double a 32 bit?
13) [-0.25..+0.25] Indicare il tipo corrispondente alla costante 123ULL.
14) [-0.25..+0.25] Indicare il tipo corrispondente alla costante 123.45L.
15) [0..0.25] Si scriva la costante che esprime il valore 123 di tipo unsigned int. Non viene proposto alcun suggerimento.
16) [0..0.25] Seguendo il suggerimento, si scriva il valore in base dieci corrispondente alla costante 024.
17) [0..0.25] Seguendo il suggerimento, si scriva il valore in base dieci corrispondente alla costante 0x24.
18) [-0.25..+0.25] Cosa individua il tipo void?
19) [-0.25..+0.25] Supponendo di poter creare una variabile di tipo void, quale intervallo di valori le si potrebbe assegnare?
20) [-0.25..+0.25] Indicare il tipo del risultato prodotto dall'espressione 123.45L/45.
21) [-0.25..+0.25] Indicare il tipo del risultato prodotto dall'espressione a = 123.45/45, sapendo che la variabile a è di tipo unsigned int.
22) [0..0.25] Osservando la porzione di codice indicata, si scriva il valore contenuto nella variabile b. Si indichi il valore in base dieci.
int a = 4; int b; b = (--a) * 2; ++b;
23) [0..0.25] Osservando la porzione di codice indicata, si scriva il valore contenuto nella variabile b. Si indichi il valore in base dieci.
int a = 7; int b = a % 3; b = b + a;
24) [0..0.25] Osservando la porzione di codice indicata, si scriva il valore contenuto nella variabile c. Si indichi il valore in base dieci.
int a = 7; unsigned char b = 7 int c = b >= a;
25) [0..0.25] Osservando la porzione di codice indicata, si scriva il valore contenuto nella variabile c. Si indichi il valore in base dieci.
int a = 4; unsigned char b = a++; int c = (b = 5) == a;
26) [0..0.25] Osservando la porzione di codice indicata, si scriva il valore contenuto nella variabile c. Si indichi il valore in base dieci.
int a = 4; unsigned char b = (4 < a); int c = a && b;
27) [0..0.25] Osservando la porzione di codice indicata, si scriva il valore contenuto nella variabile c. Si indichi il valore in base dieci.
int a = -4; unsigned char b = (4 < a); int c = a || b;
28) [0..0.25] Osservando la porzione di codice indicata, si scriva il valore contenuto nella variabile c. Si indichi il valore in base dieci, specificando il segno.
int a = -1; int c = a << 1;
29) [0..0.25] Osservando la porzione di codice indicata, si scriva il valore contenuto nella variabile c. Si indichi il valore in base dieci.
int a = 2; int b = 4; int c = a | b;
30) [0..0.25] Osservando la porzione di codice indicata, si scriva il valore contenuto nella variabile c. Si indichi il valore in base dieci.
int a = 5; int b = 6; int c = a & b;
31) [-0.25..+0.25] Indicare il tipo del risultato prodotto dall'espressione 123.4L / ((int) a).
32) [0..0.25] Osservando la porzione di codice indicata, si scriva il valore contenuto nella variabile c. Si indichi il valore in base dieci, specificando il segno.
int a = -10; int b = 5; int c = (a *= 2, b += 10, c = a + b);
33) [-0.25..+0.25] Osservando il programma indicato, cosa viene visualizzato?
1 #include <stdio.h> 2 int main (void) 3 { 4 int x = 4; 5 if (x % 3) 6 { 7 printf ("Sono felice :-)\n"); 8 } 9 else 10 { 11 printf ("Sono triste :-(\n"); 12 } 13 getchar (); 14 return 0; 15 }
Sono felice :-)
Sono triste :-(
34) [-0.25..+0.25] Osservando il programma indicato, cosa viene visualizzato?
1 #include <stdio.h> 2 int main (void) 3 { 4 int w = 3; 5 switch (w++) 6 { 7 case 0: printf ("domenica\n"); break; 8 case 1: printf ("lunedì\n"); break; 9 case 2: printf ("martedì\n"); break; 10 case 3: printf ("mercoledì\n"); break; 11 case 4: printf ("giovedì\n"); break; 12 case 5: printf ("venerdì\n"); break; 13 case 6: printf ("sabato\n"); break; 14 case 7: printf ("domenica\n"); break; 15 } 16 getchar (); 17 return 0; 18 }
domenica
lunedì
martedì
mercoledì
giovedì
venerdì
sabato
35) [0..0.25] Osservando il programma indicato, cosa contiene la variabile k alla fine del ciclo?
1 #include <stdio.h> 2 int main (void) 3 { 4 int j = 7; 5 int k = 7; 6 while (j > 4) 7 { 8 j--; 9 k++; 10 } 11 printf ("La variabile k contiene %d\n", k); 12 getchar (); 13 return 0; 14 }
36) [0..0.25] Osservando il programma indicato, cosa contiene la variabile k alla fine del ciclo?
1 #include <stdio.h> 2 int main (void) 3 { 4 int j = 10; 5 int k = 7; 6 for (j = 7; j >= 4; j--) 7 { 8 k++; 9 } 10 printf ("La variabile k contiene %d\n", k); 11 getchar (); 12 return 0; 13 }
37) [-0.25..+0.25] Selezionare il prototipo della funzione mia() che restituisce un intero normale senza segno e richiede due parametri: il primo di tipo intero con segno e il secondo di tipo a virgola mobile normale.
int mia (unsigned char x, float y);
signed int mia (unsigned int z, double a);
unsigned int mia (char b, double c);
float mia (double d, double e);
double mia (char f, unsigned int g);
unsigned int mia (int b, double c);
38) [-0.96..0.24] Si indichino quali sono le righe errate, contenute nell'estratto di codice seguente. Se un errore riguarda un'istruzione suddivisa su più righe, si indichi solo la prima di queste righe. Se l'errore riguarda un problema di incompatibilità tra due porzione del codice indicato, si indichino entrambe le righe che generano tale conflitto.
1 float fattoriale 2 (unsigned int x) 3 { 4 unsigned int f = x; 5 unsigned int i; 6 for (i = (x - 1); i > 0; i--) 7 { 8 f = f * i; 9 } 10 return i 11 }
39) [-0.25..+0.25] Osservando l'estratto di codice successivo, si vuole sapere se il prototipo e la descrizione della funzione sono compatibili.
1 unsigned int mia_funzione (unsigned int ma, float mi, 2 char mo); 3 4 unsigned int 5 mia_funzione (unsigned int ma, float mi, char mo) 6 { 7 unsigned long int i; 8 ...omissis... 9 return i; 10 }
«a2» 2013.11.11 --- Copyright © Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net