Esercitazione 2
Esercizio 1. Scrivere un programma C costituito da una funzione main di prototipo
int main (void);
e da tre funzioni ausiliarie
void bit_stampa (int a);
/* stampa la rappresentazione binaria di a */
int bit_somma (int x, int y);
/* somma x e y bit a bit */
int bit_meno (int x);
/* calcola -x */
Nella implementazione delle tre funzioni: 1) i considerano solo i primi 16 bit della rappresentazione interna di un intero, 2) si utilizzano solo gli operatori bit a bit (&,|,^,~).
La funzione main() lavora su due variabili intere, a1 e b1, ed interagisce con l'utente per leggere nuovi valori per a1 e b1. Dopodichè, utilizza le funzioni ausiliarie per calcolare a1+b1, -a1 e per stampare il risultato.
Suggerimento : usare gli array globali per contenere le tabelline di somma e riporto.
Esercizio 2. Scrivere un programma C che calcola il segmento di somma massima (SSM) di una array.
Ad esempio l'array [2,-4,2,-1,6-3] ha come SSM il segmento [2,-1,6] di valore 7.
Esercizio 3. Scrivere una funzione
double polinomio (double a, double b, double c);
che restituisce la radice positiva del polinomio ax2 + bx + c.
Esercizio 4. Scrivere un programma C che legge una sequenza di studenti da tastiera nel formato
nome cognome numero_di_matricola,
(tre stringhe di caratteri), li memorizza in un array di strutture opportunamente definito e li stampa in ordine alfabetico.
Esercizio 5. Scrivere un programma C che legge una stringa (modificatore %s ) e trasforma tutti i caratteri minuscoli in maiuscoli.
Esercizio 6. Scrivere un programma C che stampa la codifica binaria ASCII di tutti i caratteri minuscoli (da 'a' a 'z').
Esercizio 7. Scrivere un programma C che stampa la lunghezza in byte dei tipi base int, short, long ed i valori del massimo e del minimo numero rappresentabili da int.