Vous êtes sur la page 1sur 4

TD3- Les Structures de contrôle itératives

Exercice 1 : A l’aide d’une arithmétique appliquée sur un pointeur « p ». Créer un programme C


permettant de saisir et stocker en mémoire « n » valeurs puis les affichées. Le nombre de valeur « n » est
saisi à l’entrée.

Exercice 2 : Modifier le programme précédent pour calculer et afficher les valeurs saisies divisées par leur
moyenne.

Exercice 3 : Donner la valeur de « sum » après exécution des programmes suivants :

main() { main()
int i, j, sum = 0, n = 5; {int *p, i, sum=0;
for (i = 0 ; i<n ; i++) p=(int*)malloc(5*sizeof(int));
{ *p=0 ;
for(j = i ; j>0 ; j--) for(i=1; i<5; i++)
{sum++ ; } {
} *(p+i)=++*p
printf("sum = %d", sum); sum+=++*p;
} }
printf("sum = %d", sum);
}

Exercice 4 : Trouver le nombre de valeur de « n » après l’exécution du programme suivant :


main()
{int *p, n, sum=0;
p=(int*)malloc(sizeof(int));
*p=0 ;
n=1;
while(sum<25)
{
p=(int*)realloc(p, (n+1)*sizeof(int));
*(p+n)=++*p;
sum+=++*p;
n++;
}
printf("n = %d", n);
system("pause");
}

Exercice 5 : Ecrire un programme C qui demande à l’utilisateur un nombre compris entre deux entiers a et
b jusqu’à ce que la réponse convienne. Tant que l’utilisateur saisi une valeur non comprise entre a et b on
doit lui donner la possibilité de saisir une autre valeur. a et b sont saisis à l’entrée.

Exercice 6 : Ecrire un programme C qui demande à l’utilisateur un nombre compris entre deux entiers a et
b jusqu’à ce que la réponse convienne. En cas de réponse Supérieure à b, on fera apparaître un message : «
Plus petit ! », et inversement, « Plus grand ! » si le nombre est inférieur à a.

Exercice 7 : Ecrire un programme qui simule l’opération de la division entière entre deux entiers positifs.
Ces derniers sont saisis à l’entré. On divise le plus grand par le plus petit, sans utiliser l’opérateur « / ».
Afficher le quotient et le reste.

1
Exercice 8 : Ecrire un programme C qui demande un nombre de départ, et qui ensuite affiche les dix
nombres suivants. Par exemple, si l'utilisateur entre le nombre 17, le programme affichera les nombres de 18
à 27.

Exercice 9 : Ecrire un programme C qui demande un nombre de départ, et qui ensuite écrit la table de
multiplication de ce nombre, présentée comme suit (cas où l'utilisateur entre le nombre 7) :
Table de 7 :
7x1=7
7 x 2 = 14
7 x 3 = 21

7x 10 = 70

Exercice 10 : Ecrire un programme C qui demande un nombre de départ, et qui calcule la somme des
entiers jusqu’à ce nombre. Par exemple, si l’on entre 5, le programme doit calculer :
1 + 2 + 3 + 4 + 5 = 15
NB : l’affichage doit être :
Donner le nombre x : 5
La somme est : 1 + 2 + 3 + 4 + 5 = 15

Exercice 11 : Calculez la racine carrée X d'un nombre réel positif A par approximations successives en
utilisant la relation suivante:
𝐴
𝑋𝑖+1 = (𝑋𝑖 + )⁄2
{ 𝑋𝑖
𝑋1 = 𝐴
La précision du calcul 𝜀 est à entrer par l'utilisateur.
a) Assurez-vous lors de l'introduction des données que la valeur pour A est un réel positif.
b) Affichez lors du calcul toutes les approximations calculées :
La 1ère approximation de la racine carrée de ... est ...
La 2e approximation de la racine carrée de ... est ...
La 3e approximation de la racine carrée de ... est ...

Exercice 12 : Ecrire un programme C qui demande successivement 20 nombres à l’utilisateur, et qui lui
dise ensuite quel était le plus grand parmi ces 20 nombres. Le programme doit afficher aussi le nombre des
maximums ainsi que leurs positions.

NB : l’affichage doit être :

Exercice 13 : Réécrire le programme C précédent, mais cette fois-ci on ne connaît pas d’avance combien
l’utilisateur souhaite saisir de nombres. La saisie des nombres s’arrête lorsque l’utilisateur entre un zéro.
Ajouter dans le programme C la recherche du nombre maximum ainsi que sa position.

2
Exercice 14 : On considère la suite définie par :
𝑈1 = 1
{
𝑈𝑛 = 3𝑈𝑛−1 + 5 𝑝𝑜𝑢𝑟 𝑛 ≥ 2
Écrire un programme C qui permet de:
i) obtenir la valeur et le rang du premier terme de cette suite supérieur ou égal à 10000.
ii) calculer la somme de ses n premiers termes.

U devient > 10000 pour n=9


U9=22961
La somme est : U1+ U2+ U3+ U4+ U5+ U6+ U7+ U8+ U9 = 34420

Exercice-15 bis : Ecrire un programme C qui permet de calculer et afficher la somme d’un nombre entier
décimal avec son retourné. Le retourné d’un nombre entier écrit en décimal (abcd)10 est (dcba)10. Vous
pouvez utiliser dans ce programme la fonction powf(x, n) de la bibliothèque <math.h> qui permet de de
calculer la puissance n d’un réel x. ci-dessous un exemple d’affichage :

Exercice 16 : Ecrire un programme C permettant d’afficher à la sortie un triangle rectangle d’étoile. Le


nombre de ligne est donné par l’utilisateur.
Entrer le nombre de ligne : 5

Exercice 17 : Ecrire un programme C permettant d’afficher à la sortie un triangle isocèle formé d’étoiles.
Le nombre de ligne est donné par l’utilisateur.

3
Exercice 18 : Ecrire un programme C permettant d’afficher à la sortie un arc de cercle formé d’étoiles. Le
nombre de ligne est donné par l’utilisateur.
Entrer le nombre de ligne : 8

Exercice 19 : Ecrire un programme C permettant de convertir un nombre d’une base quelconque « b » vers
la base décimale.

Exercice 20 : changer le programme précédent pour avoir l’affichage suivant :

Exercice 21: Ecrire un programme C qui permet de trouver et d’afficher les nombres d’Armstrong existant
dans un intervalle [1, N]. La valeur de N est donnée à l’entrée. Un nombre d’Armstrong est un entier naturel
qui est égal à la somme des cubes des chiffres qui le composent. On utilisera la fonction pow(x,y)(= x^y ) de
la bibliothèque math.h.
Exemple d’affichage :
N = 500
Les Nombres de Armstrong dans [1, 500] sont :
1 = 1^3
153 = 3^3 + 5^3 + 1^3
370 = 0^3 + 7^3 + 3^3
371 = 1^3 + 7^3 + 3^3
407 = 7^3 + 0^3 + 4^3

Vous aimerez peut-être aussi