UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS
Sedia: Linguagens de Programação I
Anno Scolastico: 2015/2016
Eesercizi 1ª Classe
Nella risoluzione di esercizi dovrebbe essere usato il linguaggio di programmazione C
Oltre alla corretta attuazione dei requisiti, tiene conto dei seguenti aspetti:






Il codice dovrebbe essere ben frastagliata.
Il codice dovrebbe compilare senza errori o avvisi.
Prendere nota dei nomi dati alle variabili che sono indicatori di ciò che
rappresentano.
Evitare di utilizzare le costanti magiche.
Evitare la duplicazione di codice.
Considerare l'utilizzo di funzioni per migliorare la leggibilità, evitare
duplicazioni e creare soluzioni più generici.
1. Indicare quali tipi di dati minimamente adeguate per rappresentare i seguenti
valori:














101
0x3
20.5F
10U
071
-0.04L
-5000L
10.3
-2.2e1L
423UL
-2.2e1
‘\b’
‘s’
‘\040’
2. Indicare i tipi di dati che devono essere utilizzati per rappresentare le variabili
con valori nei seguenti intervalli:
 Numeri interi compresi tra 0 e 10000
 Numeri interi compresi tra -10000 e 10000
 Caratteri ASCII
 Valori logici (vero e falso)
 Numeri reali positivi
Definire i tipi di dati (typedef) e / o costanti più adatto a rappresentare questi tipi di
dati.
LPI
LPI – 1ª Classe
Pag. 2 di 3
3. Indicare quali delle seguenti affermazioni sono corrette. Deve giustificare
quelle che considerare errati.





int x, X;
int a, b;
char c, double d;
char char;
char int;
4. Indicare quale delle seguenti assegnazioni sono corrette, sapendo che tutte le
variabili sono interi. Deve giustificare quelle che considerare errati.






y=max(3,4);
v-t=4;
d=i+6;
x=4+7;
h+3;
r-2=6;
5. Considerare un programma (eseguito in un ambiente a 32 bit) con le seguenti
variabili e rispettive inizializzazioni:
unsigned char c = 254;
unsigned short int i = 65534;
unsigned int j = 4294967294;
float f = 3.4028E38;
Utilizzando il debugger (senza l'utilizzo di printf ()) verifica:


Qual è il valore effettivo di f
Qual è il valore delle variabili, quando aggiunge 2 a ciascun.
6. Utilizzare il operatore sizeof () per indicare il numero di byte che una variabile
di ciascuno dei seguenti tipi occupa in memoria.
 char
 unsigned char
 short int
 unsigned short int
 unsigned int
 int
 long int
 float
 double
LPI
Pag. 2 di 3
LPI – 1ª Classe
Pag. 3 di 3
7. Qual è il risultato del seguente programma utilizzando le varie versioni della
funzione stampa()? Giustificano si sono trovati qualche problemi nel codice.
#include <stdio.h>
void stampa() {….}
int main(void) {
stampa();
return 0;
}
void stampa() {
void stampa() {
int x, y=5;
int y=5;
if (y==5){
if (y==5){
printf(“%d”,x);
x=5;
printf(“%d”,x);
}
}
}
}
void imprime() {
int x=10, y=5;
if (y==5){
int x=5;
printf(“%d”,x);
}
}
LPI
Pag. 3 di 3