Lire un type
Exercice · niveau 2 · informatique (MP2I/MPI), chapitre 1 — Le langage C
Énoncé
Que valent a, b, c et d après ces quatre lignes ? Justifier chaque réponse.
int a = 7 / 2;
double b = 7 / 2;
double c = 7.0 / 2;
int d = -7 / 2;Corrigé
avaut : les deux opérandes sont entiers, la division est entière.bvaut — et non . La division est faite avant l'affectation : est calculé en entiers, donne , et ce est ensuite converti endouble. Le type de la variable receveuse n'influence pas le calcul.cvaut : dès qu'un opérande est flottant, l'autre est converti et la division est réelle.dvaut : en C99, la division entière tronque vers zéro, pas vers .
La deuxième ligne est le piège : on croit demander une division réelle, on obtient une division entière déguisée. Pour l'éviter, on écrit 7.0 / 2 ou (double) 7 / 2.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.