Exercices en langage C/Les opérateurs

Un livre de Wikilivres.

Pour les besoins de certains exercices, on rappelle le tableau de priorité des opérateurs du C :

Catégorie d'opérateurs
Opérateurs
Associativité
fonction, tableau, membre de structure, pointeur sur un membre de structure ( ) [ ] . -> Gauche -> Droite
opérateurs unaires - ++ -- ! ~

* & sizeof (type)

Droite ->Gauche
multiplication, division, modulo * / % Gauche -> Droite
addition, soustraction + - Gauche -> Droite
décalage << >> Gauche -> Droite
opérateurs relationnels < <= > >= Gauche -> Droite
opérateurs de comparaison == != Gauche -> Droite
et binaire & Gauche -> Droite
ou exclusif binaire ^ Gauche -> Droite
ou binaire ǀ Gauche -> Droite
et logique && Gauche -> Droite
ou logique ǁ Gauche -> Droite
opérateur conditionnel ? : Droite -> Gauche
opérateurs d'affectation = += -= *= /= %=

&= ^= |= <<= >>=

Droite -> Gauche
opérateur virgule , Gauche -> Droite

La priorité des opérateurs va décroissante lorsqu'on se déplace du haut du tableau vers le bas du tableau. Quand les opérateurs ont même priorité, c'est la colonne de droite sur la distributivité qui est utilisée.

Analyse de programmes[modifier | modifier le wikicode]

Nous allons présenter dans cette section un ensemble d'exercices destinés à se familiariser avec les opérateurs du langage C.

Exercice 1[modifier | modifier le wikicode]

  • Quelle est la valeur de i après la suite d'instructions :
int i=10;
i = i-(i--);
  • Quelle est la valeur de i après la suite d'instructions :
int i=10;
i = i-(--i);

Exercice 2 : la priorité des opérateurs[modifier | modifier le wikicode]

Enlever les parenthèses des expressions suivantes lorsqu'elles peuvent être retirées.

a=(25*12)+b;
if ((a>4) &&(b==18)) { }
((a>=6)&&(b<18))||(c!=18)
c=(a=(b+10));

Évaluer ces expressions pour a=6, b=18 et c=24. On supposera que les valeurs données le sont pour chacune des lignes : il n'y a pas d'exécution séquentielle comme dans un programme.


Petit programme de calcul[modifier | modifier le wikicode]

Écrivez un programme calcul.c qui calcule la distance entre deux points d'un plan :

  • Lit les coordonnées de deux points : X1 (x1, y1) et X2 (x2, y2).
  • Affiche les données lues
  • Calcule la distance d entre les deux points X1 et X2, avec la formule :

  • Affiche le résultat à l'écran.