Voici une séquence que vous devez introduire dans un programme C pour exécution, avant de choisir les affirmations justes.
float f ;
f=3/2 ;
printf("la valeur de 3/2 est=%f\n", f);
float f ; f=3/2 ; printf("la valeur de 3/2 est=%f\n", f);
La valeur affichée est la valeur de f.
f contient bien la valeur 1.
La valeur affichée est correcte.
La valeur affichée est bien celle de f, mais ce n'est pas celle que l'on espère.
L'opération réalisée pour calculer donne un résultat erroné.
L'opération est exacte dans le domaine de données considéré, c'est-à-dire des entiers.
Le type de f est le type entier.
Non, f est déclarée comme float.
Une conversion est à l'origine de ce résultat.
La division est réalisée entre 2 entiers. Cette division est une division entière et le résultat est entier. Il y a bien conversion au moment de l'affectation, mais celle-ci n'est pas à l'origine de cette « erreur ».
L'opération réalisée n'est pas celle que l'on souhaite.
Le type de la variable f est un float. Il est donc visible que l'on attend un résultat réel pour la division.
Le résultat s'explique par la présence d'une combinaison de types.
Les paramètres de l'opérateur '\' sont entiers. L'opération donne un résultat entier, déposé dans f après conversion en flottant.