Exercices en langage C C. Delannoy 2 Exe rcices en l angage C P REM I ERE P ART
Exercices en langage C C. Delannoy 2 Exe rcices en l angage C P REM I ERE P ARTI E : EXERCI CES D 'AP P L I CATI O N Cet t e prem iè re part ie v ous propose des exercices, à résoudre, de préf érence, pendant l a ph ase d'ét ude du l angage C l ui- m ê m e. El l e épouse l a st ruct ure d'un cours "cl assique"1, sous l a f orm e de 7 ch apit res : t ypes de base, opérat eurs et expressions ; ent rées-sort ies conv ersat ionnel l es ; inst ruct ions de cont rôl e ; l es f onct ions ; l es t abl eaux et l es point eurs ; l es ch aî nes de caract è res ; l es st ruct ures. Ch aque ch apit re com port e : - des exercices d'appl icat ion im m édiat e dest inés à f acil it er l 'assim il at ion du cours correspondant , - des exercices, sans grande dif f icul t é al gorit h m ique m et t ant en oeuv re l es dif f érent es not ions acquises au cours des précédent s ch apit res. Not ez que l 'ut il isat ion des f ich iers, ainsi que l a gest ion dynam ique ne sont pas abordés dans cet t e prem iè re part ie ; ces deux point s f eront ch acun l 'obj et d'un ch apit re approprié dans l a seconde part ie de l 'ouv rage. 1 Un t el cours v ous est proposé, par exem pl e, dans "Apprendre à program m er en Turbo C" ou dans "C norm e ANSI - Guide com pl et de program m at ion" du m ê m e aut eur, égal em ent aux édit ions Eyrol l es. I : TYP ES D E BASE, O P ERATEURS ET EXP RESSI O NS Exe r cice I .1 ___________________________________________________________________________ Enoncé El im iner l es parent h è ses superf l ues dans l es expressions suiv ant es : a = (x+5) /* expression 1 */ a = (x=y) + 2 /* expression 2 */ a = (x==y) /* expression 3 */ (a<b) && (c<d) /* expression 4 */ (i++) * (n+p) /* expression 5 */ ___________________________________________________________________________ Sol ut ion a = x+5 /* expression 1 */ L 'opérat eur + est priorit aire sur l 'opérat eur d'af f ect at ion =. a = (x=y) + 2 /* expression 2 */ Ici, l 'opérat eur + ét ant priorit aire sur =, l es parent h è ses sont indispensabl es. a = x==y /* expression 3 */ 4 Exe rcices en l angage C L 'opérat eur == est priorit aire sur =. a<b && c<d /* expression 4 */ L 'opérat eur & & est priorit aire sur l 'opérat eur <. i++ * (n+p) /* expression 5 */ L 'opérat eur + + est priorit aire sur * ; en rev anch e, * est priorit aire sur + ; de sort e qu'on ne peut él im iner l es derniè res parent h è ses. Exe r cice I .2 ___________________________________________________________________________ Enoncé Soient l es décl arat ions : char c = '\x01' ; short int p = 10 ; Quel s sont l e t ype et l a v al eur de ch acune des expressions suiv ant es : p + 3 /* 1 */ c + 1 /* 2 */ p + c /* 3 */ 3 * p + 5 * c /* 4 */ ___________________________________________________________________________ Sol ut ion 1) p est d'abord soum is à l a conv ersion "syst ém at ique" sh ort -> int , av ant d'ê t re aj out é à l a v al eur 3 (int ) . L e résul t at 13 est de t ype int . 2) c est d'abord soum is à l a conv ersion "syst ém at ique" ch ar -> int (ce qui about it à l a v al eur 1) , av ant d'ê t re aj out é à l a v al eur 1 (int ) . L e résul t at 2 est de t ype int . I. T ypes de base, opérat e urs e t e xpressions 5 3) p est d'abord soum is à l a conv ersion syst ém at ique sh ort -> int , t andis que c est soum is à l a conv ersion syst ém at ique ch ar -> int ; l es résul t at s sont al ors addit ionnés pour about ir à l a v al eur 11 de t ype int . 4) p et c sont d'abord aux m ê m es conv ersions syst ém at iques que ci-dessus ; l e résul t at 35 est de t ype int . Exe r cice I .3 ___________________________________________________________________________ Enoncé Soient l es décl arat ions : char c = '\x05' ; int n = 5 ; long p = 1000 ; float x = 1.25 ; double z = 5.5 ; Quel s sont l e t ype et l a v al eur de ch acune des expressions suiv ant es : n + c + p /* 1 */ 2 * x + c /* 2 */ (char) n + c /* 3 */ (float) z + n / 2 /* 4 */ ___________________________________________________________________________ Sol ut ion 1) c est t out d'abord conv ert i en int , av ant d'ê t re aj out é à n. L e résul t at (10) , de t ype int , est al ors conv ert i en l ong, av ant d'ê t re aj out é à p. On obt ient f inal em ent l a v al eur 1010, de t ype l ong. 2) On év al ue d'abord l a v al eur de 2* x, en conv ert issant 2 (int ) en f l oat , ce qui f ournit l a v al eur 2.5 (de t ype f l oat ) . Par ail l eurs, c est conv ert i en int (conv ersion syst ém at ique) . On év al ue ensuit e l a v al eur de 2* x, en conv ert issant 2 (int ) en f l oat , ce qui f ournit l a v al eur 2.5 (de t ype f l oat ) . Pour ef f ect uer l 'addit ion, on conv ert it al ors l a v al eur ent iè re 5 (c) en f l oat , av ant de l 'aj out er au résul t at précédent . On obt ient f inal em ent l a v al eur 7.75, de t ype f l oat . 6 Exe rcices en l angage C 3) n est t out d'abord conv ert i en ch ar (à cause de l 'opérat eur de "cast ") , t andis que c est conv ert i (conv ersion syst ém at ique) en int . Puis, pour procéder à l 'addit ion, il est nécessaire de reconv ert ir l a v al eur de (ch ar) n en int . Final em ent , on obt ient l a v al eur 10, de t ype int . 4) z est d'abord conv ert i en f l oat , ce qui f ournit l a v al eur 5.5 (approxim at iv e, car, en f ait , on obt ient une v al eur un peu m oins précise que ne l e serait 5.5 exprim é en doubl e ) . Par ail l eurs, on procè de à l a div ision ent iè re de n par 2, ce qui f ournit l a v al eur ent iè re 2. Cet t e derniè re est ensuit e conv ert ie en f l oat , av ant d'ê t re aj out ée à 5.5, ce qui f ournit l e résul t at 7.5, de t ype f l oat . Rem arque : Dans l a prem iè re déf init ion de Kernigh an et Rit ch ie, l es v al eurs de t ype f l oat ét aient , el l es aussi, soum ises à une conv ersion syst ém at ique en doubl e . Dans ce cas, l es expressions 3 et 4 ét aient al ors de t ype doubl e . Exe r cice I .4 ___________________________________________________________________________ Enoncé Soient l uploads/s3/ exercices-en-langage-c.pdf
Documents similaires










-
38
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Nov 24, 2022
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 0.8859MB