Remonter Suivant

1  Premiers abords du langage C

Ces premiers exercices abordent les notions d'identificateurs du langage, les valeurs entières, les expressions et les opérateurs simples.

Exercice 1
  [Identificateurs]   Indiquer si les identificateurs suivants sont valides :

                                
foo-1           _foo_bar        3cavaliers
foo.            tête            ___A_ 
_               a               while


Exercice 2
  [Validité d'expressions]   On suppose les variables entières suivantes définies et affectées des valeurs indiquées :

A=20    B=5     C=-10   D=2     X=12    Y=15
Évaluez les expressions valides parmi les expressions suivantes :

5*X+2*3*B/4     A == B = 3      A += X + 2      A != C *= -D
A %= D++        A %= ++D        (X++) * A+C     A-A == B-B
!(X-D+C) || D   A && B || !0    C=12--          (1<<(2<<1))==((1<<2)<<1)
Corriger les expressions invalides en utilisant le parenthésage. On se référera au tableau 1 qui liste les opérateurs et leurs priorités.


Table 1 : Opérateurs du langage C

16 ()   []   ->   . G
15 ++   -- (postfixé) D
14 !   ~   ++   -- (préfixé)   - (unaire) D
  * (indirection)   & (adresse)  sizeof D
13 * (multiplication)   /   % G
12 +   - G
11 <<   >> G
10 <   <=   >   >= G
9 ==  != G
8 & (et bit à bit) G
7 ^ G
6 | G
5 && G
4 || G
3 ?: D
2 =   +=   -=   *=   /=   %=   >>=   <<=   &=   ^=   |= D
1 , G



Exercice 3
  [Typage entiers et conversion]   Soient les déclarations suivantes :

long int i = 15;
char c = 'A';
short int j = 10;
Évaluez et donnez le type des expressions valides suivantes :

c+1                     c+i                     c+j 
3*c+2*c                 2*c+(i+10)/j            2*c+(i+10.0)/j
j=(i+10.0)/j            c = 666                 j *= 3.14


Remonter Suivant