Vous êtes sur la page 1sur 4

Atelier Programmation 1 ___________________________________________________________________________________________

A.U 2010/2011 Technologies de l'Informatique


Niveau L1 (Tronc Commun)

TP N° 3

Les opérations en langage C

Exercice 1 : Evaluer les expressions suivantes en supposant :


A = 20 ; B = 5 ; C = -10 ; D = 2 ; X = 12 ; Y = 15 ;
Notez chaque fois la valeur rendue comme résultat de l'expression et les valeurs des
variables dont le contenu a changé.
Expression Résultat
(5*X)+2*((3*B)+4)
(5*(X+2)*3)*(B+4)
A == (B=5)
A += (X+5)
A != (C *= (-D))
A *= C+(X-D)
A %= D++
A %= ++D
(X++)*(A+C)
A = X*(B<C)+Y*!(B<C)
!(X-D+C)||D
A&&B||!0&&C&&!D
((A&&B)||(!0&&C))&&!D
((A&&B)||!0)&&(C&&(!D))

Exercice 2 : Ecrire un programme qui affiche le quotient et le reste de la division entière de


deux nombres entiers entrés au clavier ainsi que le quotient rationnel de ces nombres.

Exercice 3 : Ecrire un programme qui affiche la résistance équivalente à trois résistances


R1, R2, R3 (type double) :

 si les résistances sont branchées en série :


ܴ௦௘௥௜௘ = ܴ1 + ܴ2 + ܴ3

 si les résistances sont branchées en parallèle :


ܴ1. ܴ2. ܴ3
ܴ௣௔௥௔௟௟௘௟௘ =
ܴ1. ܴ2 + ܴ1. ܴ3 + ܴ2. ܴ3

__________________________________________________________________________
ISETMA 2010/2011
-1-
Atelier Programmation 1 ___________________________________________________________________________________________

Exercice 4 : Ecrire un programme permettant de convertir une température exprimée en


degrés Fahrenheit en degrés Celsius sachant que la conversion entre les degrés Celsius et
Fahrenheit se fait avec la formule Fahrenheit = 32 + (Celsius * 9) /5.

Exercice 5 : Saisir et exécuter ce programme ensuite donner le résultat de l’exécution. Que


remarquez-vous ?

#include <stdio.h>
void main()
{
int int_num1, int_num2, int_num3;
float flt_num1, flt_num2, flt_num3;
int_num1 = 32 / 10; /* le diviseur et dividende sont des entiers */
flt_num1 = 32 / 10;
int_num2 = 32.0 / 10; /* le diviseur est un entier */
flt_num2 = 32.0 / 10;
int_num3 = 32 / 10.0; /* le dividende est un entier */
flt_num3 = 32 / 10.0;
printf("le resultat de 32/10 est: %d\n", int_num1);
printf("le resultat de 32/10 est: %f\n", flt_num1);
printf("le resultat de 32.0/10 est: %d\n", int_num2);
printf("le resultat de 32.0/10 est: %f\n", flt_num2);
printf("le resultat de 32/10.0 est: %d\n", int_num3);
printf("le resultat de 32/10.0 est: %f\n", flt_num3);
}

Exercice 6 : Sans utiliser l'ordinateur, trouvez et notez les résultats du programme ci-dessus.
Vérifiez vos résultats à l'aide de l'ordinateur.

#include <stdio.h>
void main()
{
int x,y,z;
x = 1;
y = 3;
z = 10;
printf("les valeurs : x = %d, y = %d, et z = %d,\n", x, y, z);
x = x + y;
printf("x = x + y donne %d \n", x);
x = 1;
x += y;
printf("x += y donne %d \n", x);
x = 1;
z = z * x + y;
printf("z = z * x + y donne %d \n", z);
z = 10;
z = z * (x + y);
printf("z = z * (x + y) donne %d \n", z);
z = 10;
z *= x + y;
printf("z *= x + y donne %d \n", z);
}

__________________________________________________________________________
ISETMA 2010/2011
-2-
Atelier Programmation 1 ___________________________________________________________________________________________

Exercice 7: Sans utiliser l'ordinateur, trouvez et notez les résultats du programme ci-dessus.
Vérifiez vos résultats à l'aide de l'ordinateur.

#include <stdio.h>
void main()
{
int w, x, y, z, resultat;
w = x = y = z = 1; /* initialisation */
printf("les valeurs : w = %d, x = %d, y = %d, et z = %d,\n", w, x, y,
z);
resultat = ++w;
printf("++w donne: %d\n", resultat);
resultat = x++;
printf("x++ donne: %d\n", resultat);
resultat = --y;
printf("--y donne: %d\n", resultat);
resultat = z--;
printf("z-- donne: %d\n", resultat);
}

Exercice 8 :
Sans utiliser l'ordinateur, trouvez et notez les résultats du programme ci-dessus. Vérifiez vos
résultats à l'aide de l'ordinateur.
#include <stdio.h>
void main()
{
int x, y;
double z;
x = 7;
y = 25;
z = 24.46;
printf("les valeurs : x = %d, y = %d, et z = %.2f,\n", x, y, z);
printf("x >= y donne: %d\n", x >= y);
printf("x == y donne: %d\n", x == y);
printf("x < z donne: %d\n", x < z);
printf("y > z donne: %d\n", y > z);
printf("x != y - 18 donne: %d\n", x != y - 18);
printf("x + y != z donne: %d\n", x + y != z);
}

Exercice 9 : Sans utiliser l'ordinateur, trouvez et notez les résultats du programme ci-dessus.
Vérifiez vos résultats à l'aide de l'ordinateur.

#include <stdio.h>
void main()
{
int x, y;
x = 7;
y = 5;
printf("les valeurs : x = %d, y = %d\n", x, y);
printf("x / y donne: %d\n", x / y);
printf("(float)x / y donne: %f\n", (float)x / y);
}

__________________________________________________________________________
ISETMA 2010/2011
-3-
Atelier Programmation 1 ___________________________________________________________________________________________

Exercice 10 : Soient les déclarations :


long A = 15;
char B = 'A';
short C = 10;

Donner le type et la valeur de chacune des expressions suivantes :


1) C + 3
2) B + 1
3) C + B
4) 3 * C + 2 * B
5) 2 * B + (A + 10) / C
6) 2 * B + (A + 10.0) / C

Exercice 11 : Sans utiliser l'ordinateur, trouvez et notez les résultats du programme ci-
dessus. Vérifiez vos résultats à l'aide de l'ordinateur.

#include <stdio.h>
void main()
{
int N=10, P=5, Q=10, R;
char C='S';
N = 5; P = 2;
Q = N++ > P || P++ != 3;
printf (" N=%d P=%d Q=%d\n", N, P, Q);
N = 5; P = 2;
Q = N++ < P || P++ != 3;
printf (" N=%d P=%d Q=%d\n", N, P, Q);
N = 5; P = 2;
Q = ++N == 3 && ++P == 3;
printf (" N=%d P=%d Q=%d\n", N, P, Q);
N=5; P=2;
Q = ++N == 6 && ++P == 3;
printf (" N=%d P=%d Q=%d\n", N, P, Q);
N=C;
printf (" %c %c\n", C, N);
printf (" %d %d\n", C, N);
printf (" %x %x\n", C, N);
}

Exercice 12 : Ecrire un programme en langage C qui permet de saisir un nombre de deux


chiffre puis afficher son inverse.

__________________________________________________________________________
ISETMA 2010/2011
-4-

Vous aimerez peut-être aussi