Différences entre les versions de « Exercices en langage C/Types »

Ajout Exercices sur les caractéristiques numériques des types du langage C
(Tranfert depuis WV)
 
(Ajout Exercices sur les caractéristiques numériques des types du langage C)
{{Exercices en langage C}}
 
==AffichageExercice 1 : longueurs en octet des types du langage C==
Écrivez un programme taille.c qui affiche à l'écran la taille des différents types de données en octet du langage C sur votre architecture machine.
 
Vous utiliserez l'opérateur ''sizeof(type)''.
 
<div style="width:70%">{{Boîte déroulante|titre=Solution|contenu =
Code retour : 0 (EXIT_SUCCESS)
Pour produire un exécutable avec le compilateur libre GCC :
gcc -Wall -std=c99 -o taille.exe taille.c
Pour exécuter, tapez : ./taille.exe
 
}
</source>
 
'''Résultats affichés sur ma machine''' :
<pre>
MacMini-TM:~/Documents/developpement/c thierry$ ./taille.exe
Taille des types en octet :
- type char : 1
- type short : 2
- type int : 4
- type long : 4
- type long long : 8
- type float : 4
- type double : 8
- type long double : 16
</pre>
}} </div>
 
==Exercice 2 : caractéristiques numériques des types du langage C==
Écrivez un programme limites.c qui affiche à l'écran les caractéristiques numériques des différents types du langage C.
 
Vous utiliserez les constantes symboliques des includes [[w:en:Limits.h|limits.h]] et [[w:en:float.h|float.h]].
 
<div style="width:70%">{{Boîte déroulante|titre=Solution|contenu =
'''Correction'''
 
'''Correction'''
<source lang="c">
***************************************************************************
Nom ......... : limites.c
Role ........ : Imprime les caractéristiques numériques
pour les types du langage C
Auteur ...... : Thierry46
Version ..... : V1.0 du 11/1/2008
Licence ..... : GNU GPL
 
Compilation :
gcc -Wall -std=c99 -o limites.exe limites.c
Pour exécuter, tapez : ./limites.exe
***************************************************************************/
#include <stdio.h>
#include <stdlib.h>
// Pour les limites lies aux entiers
#include <limits.h>
// Pour les limites lies aux nombres reels
#include <float.h>
 
int main(int argc, char *argv[])
{
// Impression des limites pour les nombres entiers
(void)printf("INT_MIN = %d\n", INT_MIN);
(void)printf("INT_MAX = %d\n", INT_MAX);
(void)printf("LONG_MIN = %ld\n", LONG_MIN);
(void)printf("LONG_MAX = %ld\n", LONG_MAX);
 
// Impression des limites pour les réels
(void)printf("FLT_EPSILON = %e\n", FLT_EPSILON);
(void)printf("FLT_MIN = %e\n", FLT_MIN);
(void)printf("FLT_MAX = %e\n", FLT_MAX);
(void)printf("DBL_EPSILON = %le\n", DBL_EPSILON);
(void)printf("DBL_MIN = %le\n", DBL_MIN);
(void)printf("DBL_MAX = %le\n", DBL_MAX);
 
return EXIT_SUCCESS;
} /* int main(... */
</source>
 
'''Résultats affichés sur ma machine''' :
<pre>
MacMini-TM:~/Documents/developpement/c thierry$ ./limites.exe
INT_MIN = -2147483648
INT_MAX = 2147483647
LONG_MIN = -2147483648
LONG_MAX = 2147483647
FLT_EPSILON = 1.192093e-07
FLT_MIN = 1.175494e-38
FLT_MAX = 3.402823e+38
DBL_EPSILON = 2.220446e-16
DBL_MIN = 2.225074e-308
DBL_MAX = 1.797693e+308
</pre>
}} </div>
 
227

modifications