Home- Exercices - Solutions des exercices

 

Page Précédente - Page Suivante


Solutions des Exercices chapitre 4

Exercice 3.1
Evaluer les expressions suivantes en supposant
A=20 B=5 C=-10 D=2 X=12 Y=15


(1) 

(5*X)+2*((3*B)+4) 

-> 98 

/ 

(2) 

(5*(X+2)*3)*(B+4) 

-> 1890 

/ 

(3) 

A == (B=5) 

-> 0 

B=5 

(4) 

A += (X+5) 

-> 37 

A=37 

(5) 

A != (C *= (-D)) 

-> 0 

C=20 

(6) 

A *= C+(X-D) 

-> 0 

A=0 

(7) 

A %= D++ 

-> 0 

D=3 A=0 

(8) 

A %= ++D 

-> 2 

D=3 A=2 

(9) 

(X++)*(A+C) 

-> 120 

X=13 

(10) 

A = X*(B<C)+Y*!(B<C) 

-> 0+15 = 15 

A=15 

(11) 

!(X-D+C)||D 

-> !0||1 = 1 

/ 

(12) 

A&&B||!0&&C&&!D 

-> 1||1&&1&&0 = 1 

/ 

(13) 

((A&&B)||(!0&&C))&&!D 

-> (1||1)&&0 = 0 

/ 

(14) 

((A&&B)||!0)&&(C&&(!D)) 

-> (1||1)&&(1&&0) = 0 

/ 

Exercice 3.2
Soient les déclarations:
       long  A = 15;
       char  B = 'A';        /* code ASCII : 65 */
       short C = 10;

Expression 

Type 

Valeur 

C + 3 

int 

13 

B + 1 

int 

66 

C + C 

int 

75 

3 * C + 2 * B 

int 

160 

2 * B + (A + 10) / C 

long 

132 

  1. (

2 * B + (A + 10.0) / C 

double 

132.5 

Exercice 4.1

Voici les résultats du programme :

       C : x=6 y=2 q=1
       D : x=6 y=3 q=1
       E : x=6 y=2 q=0
       F : x=6 y=3 q=1
       G : S S
       H : 83 83
       I : 53 53

Exercice 4.2

#include <stdio.h> 
main() 
{ 
       int j, m, a, x; 
       printf("Introduisez la date (JOUR, MOIS, ANNéE) : "); 
       x=scanf("%i %i %i", &j, &m, &a); 
       printf("\ndonnées reçues : %i\n j  : %i\n m  :  
                    %i\n a : %i\n", x, j, m, a); 
        
} 

Changez la partie format du programme de façon à séparer les différentes données par le symbole '-'.
Solution:

. . .
RECU=scanf("%i-%i-%i", &JOUR, &MOIS, &ANNEE);
 . . .

Exercice 4.3

a) en employant getchar et printf,

#include <stdio.h>
main()
{
 int C;
 printf("Introduire un caractère \n");
 C = getchar();
  printf("Le caractère %c a le code ASCII %d\n", C, C);
  
}

b) en employant getch et printf.

#include <stdio.h>
#include <conio.h>
 main()
{
 int C;
 printf("Introduire un caractère \n");
 C = getch();
  printf("Le caractère %c a le code ASCII %d\n", C, C);
 
}

Exercice 4.4

Solution:

#include <stdio.h>
main()
{
       int A, B, C, x;
       printf("Donnez trois nombres : : ");
       scanf("%i %i %i", &A, &B, &C);
       /* Affichage à l'aide de tabulations */
       printf("A = %i\tB = %i\tC = %i\n", A, B, C);
       x=A;
       A=C;
       C=B;
       B=x;
       printf("A = %i\tB = %i\tC = %i\n", A, B, C);
        
}

Exercice 4.5

#include <stdio.h>
main()
{
       int A, B;
       printf("Donnez deux nombres: ");
       scanf("%i %i", &A, &B);
       printf("Division entiere =  :  %i\n", A/B);
       printf("Reste   =           :  %i\n", A%B);
       printf("Quotient rationnel :  %f\n", (float)A/B);
 
}

 

Exercice 4.6

#include <stdio.h>
main()
{
   double R1, R2, R3, RESISTANCE;
   printf("Donnez les valeurs de R1, R2 et R3 : ");
   scanf("%lf %lf %lf", &R1, &R2, &R3);
   RESISTANCE =R1+R2+R3;
   printf("Resistance branches en série: %f\n", RESISTANCE);
   RRES=(R1*R2*R3)/(R1*R2+R1*R3+R2*R3);
   printf("Resistance branches en parallele  : %f\n", RESISTANCE);
   
}

On peut aussi ne pas utiliser la variable RESISTANCE, pour cela le programme sera comme suit :

#include <stdio.h>
main()
{
   double R1, R2, R3;
   printf("Donnez les valeurs de R1, R2 et R3 : ");
   scanf("%lf %lf %lf", &R1, &R2, &R3);
   printf("Resistance branches en série: %f\n",
                                                  R1+R2+R3);
   printf("Resistance branches en parallele  : %f\n",
                            (R1*R2*R3)/(R1*R2+R1*R3+R2*R3));
    
}

Exercice 4.7

#include <stdio.h>
#include <math.h>
 main()
{
        /* On va déclarer P comme rationnel Pour ne pas perdre de précision lors de la division, */
   int A, B, C;
   double P;  /* ou bien: float P; */
   printf("donnez les valeurs de A, B et C : ");
   scanf("%i %i %i", &A, &B, &C);
        /* On va convertir A en double, les autres opérandes */
        /* sont converties automatiquement. */
   P=((double)A+B+C)/2;
   printf("Surface du triangle S = %f\n",
                                 sqrt(P*(P-A)*(P-B)*(P-C)));
/* sqrt calcule la racine carré d’un nombre*/
}

 

Exercice 4.8

a) en utilisant 5 variables

#include <stdio.h>
main()
{
  
 int  A, B, C, D;
 float SOM; 
  printf("Entrez valeur de A : ");
 scanf("%d", &A);
 printf("Entrez valeur de  B: ");
 scanf("%d", &B);
 printf("Entrez valeur de C: ");
 scanf("%d", &C);
 printf("Entrez valeur de D : ");
 scanf("%d", &D);
 SOM = (float)A+B+C+D;
  printf(" %d + %d + %d + %d = %ld\n", A, B, C, D, SOM);
  
}

b) en utilisant 2 variables (perte des valeurs entrées)

main()
{
  
 int  A;
 long SOM;
 SOM = 0;
  printf("donnez le premier   nombre : ");
 scanf("%d", &A);
 SOM+=A;
  printf("donnez le deuxième  nombre : ");
 scanf("%d", &A);
 SOM+=A;
  printf("donnez le troisième nombre : ");
 scanf("%d", &A);
 SOM+=A;
  printf("donnez le quatrième nombre : ");
 scanf("%d", &A);
 SOM+=A;
  printf("La somme des nombres entrés est %ld\n", SOM);
 
}

Exercice 4.9

a)

#include <stdio.h>
main()
{
 int PRIXNET, TVA;
 double PRIXTTC;
  printf("Entrez le prix net du produit: ");
 scanf("%d", & PRIXNET);
 printf("Entrez le taux de la TVA (en %) : ");
 scanf("%d", &TVA);
 PRIXTTC = PRIXNET +(double) PRIXNET *TVA/100;
  printf("Le prix TTC est %.2lf Francs\n", PRIXTTC);
 
}

b)

#include <stdio.h>
main()
{
 int  TVA;
 double PRIXNET, PRIXTTC; /* donnée et résultat du type double */
 printf("Entrez le prix TTC du produit: ");
 scanf("%lf", & PRIXTTC);
 printf("Entrez le taux de la TVA (en %)  : ");
 scanf("%d", &TVA);
                        
 PRIXNET = PRIXTTC *100/(100+TVA);
  printf("Le prix net est %.2lf DH\n", PRIXNET);
}

Exercice 4.10

#include <stdio.h>
#include <math.h>
 main()
{
 int XA, YA, XB, YB;
 double DIST;
 
 printf("Donnez les coordonnées du point A :  XA,YA  ");
 scanf("%d,%d", &XA, &YA);
 printf("Donnez les coordonnées du point B :  XB,YB  ");
 scanf("%d,%d", &XB, &YB);
 DIST=sqrt(pow(XA-XB,2)+pow(YA-YB,2));
 printf("La distance entre A(%d,% d) et B(%d, %d) est %.2f\n",
XA, YA, XB, YB, DIST);
  return 0;
}


 


Home- Exercices - Solutions des exercices
Copyright © 2019