Informatique III : Langage C
TP2
Exercice 1: Affectation
Quelles seront les valeurs des variables a, b et c, après l'exécution de chacune des instructions
suivantes :
#include<stdio.h>
main()
{
int a,b,c;
a=5;
b=3;
c=a+b;
a=2;
c=b-a;
}
Exercice 2: Affectation
Soient trois variables a, b et c. Ecrivez les instructions permutant leurs valeurs, de sorte que la
valeur de a passe dans b, celle de b dans c et celle de c dans a.
Exercice 3: Arithmétique
Écrire un programme lisant en entrée : heure, minute et secondes et affichant le nombre de
secondes.
Exercice 4: if-else
Écrire un programme prenant en entrée trois nombres et renvoyant le plus petit d'entre eux.
Exercice 5: if-else et switch
Ecrire un programme une fois avec « if-else » et une fois avec « switch » qui lit deux entiers
et un caractère (Le caractère sera *, +, / ou -) et affiche le résultat de l'opération indiquée
appliquée aux deux entiers.
Page 1
Exercice 6: for
Écrire un programme qui lit un entier n et imprime un triangle de * d'une largeur n.
*
**
***
****
*****
******
*******
********
*********
**********
Exercice 7: for
Modifier le programme précédent pour avoir un triangle creux.
*
**
* *
* *
* *
* *
* *
* *
* *
**********
Exercice 8: do-while
Ecrivez un programme qui demande à l'utilisateur de lui fournir un nombre entier positif et
inférieur à 100 et ceci jusqu'à ce que la réponse soit satisfaisante ; le dialogue se présentera
ainsi:
donnez un entier positif inférieur à 100 : 452
donnez un entier positif inférieur à 100 : 0
donnez un entier positif inférieur à 100 : 28
merci pour le nombre 28
Exercice 9: while
Dans le programme de l'exercice précédent, l'utilisateur se voit poser la même question, qu'il
s'agisse d'une première demande ou d'une nouvelle demande suite à une réponse incorrecte.
Améliorez-le de façon que le dialogue se présente ainsi :
donnez un entier positif inférieur à 100 : 452
SVP positif inférieur à 100 : 0
SVP positif inférieur à 100 : 28
merci pour le nombre 28
Page 2
Exercice 10: do-while
Ecrivez un programme qui lit une suite de caractères (terminée par une validation, donc par
un caractère de fin de ligne) et qui affiche le nombre de caractères lus (fin de ligne non
comprise).
Exercice 11: Pointeurs
Essayer de comprendre les codes suivant :
a)
#include <stdio.h>
main()
{
double x;
printf("%d\n",&x);
}
b)
#include <stdio.h>
main()
{
char tab[10000];
printf("%d %d\n",tab,&tab[0]);
}
c)
#include <stdio.h>
main()
{
float x=1.6,y=3.9,m;
float *pt_x=&x;
float *pt_y,*pt_m=&m;
pt_y=&y;
*pt_m=*pt_x * *pt_y;
printf("%d %d %d\n\n", pt_x, pt_y, pt_m);
printf("%f %f %f\n",*pt_x, *pt_y,m);
}
Exercice 12: Tableau et pointeurs
Ecrire de deux façons différentes, un programme qui lit 10 nombres entiers dans un tableau
avant d'en rechercher le plus grand et le plus petit.
a) en utilisant le "formalisme tableau"
b) en utilisant le" formalisme pointeur", à chaque fois que cela est possible.
Page 3