ESTI
A.U. 2011-2012
Série les structures alternatives et répétitives
1ère année licence informatique – langage C (pgm1)
Exercice 1 : (extrait du DS de l’AU : 2009/2010)
Soit le programme suivant:
#include <stdio.h>
void main()
{
int i,j,k;
for (i=0;i<1; i++)
{
for(j=0; j<2;j++)
{
for (k=0;k<3; k++)
printf("\n %d", k+10j+100i);
Publicité
printf("\n i:%d, j:%d, k:%d",i,j,k);
}
printf("\n i:%d, j:%d, k:%d",i,j,k);
}
printf("\n i:%d, j:%d, k:%d \n",i,j,k);
}
Si on exécute ce programme, qu'est ce qu'il affiche?
Réecrire ce même programme en remplaçant for par while
Exercice 2 : (extrait du DS de l’AU : 2010/2011)
Soit le programme suivant.
#include<stdio.h>
void main()
{
int i,j,k;
for (i=1;i<3; i++)
for (j=1;j<3; j++)
Publicité
printf("%d \n", i+j);
for (k=1; k<3; k++)
printf("%d \n", i+j+k);
}
Si on l’exécute, qu’est ce qu’il affiche
Exercice 3 :
Ecrire un programme qui résoud l’équation du second degré ax2+bx+c=0. (a, b et c sont saisis
au clavier).
Exercice 4 :
Ecrire un programme qui affiche au choix (selon le caractère à saisir au clavier +, ou *, ou /)
la table d’addition, ou de multiplication ou de division. (Soigner l’affichage)
1
Exercice 5 :
Ecrire un programme qui lit un caractère au clavier (utiliser getchar), et le convertit en
miniscule s’il est majuscule, et inversement.
Exercice 6 :
Publicité
Ecrire un programme qui lit un texte formé par des 0 et des 1, ensuite remplace le 1 par 0 et
inversement. Si le caractère est différent de 0 ou de 1, il reste inchangé.
Exemple :
1a00011z01#
0a11100z10
Exercice 7 :
Ecrire un programme qui accepte un texte qui se termine par #, et affiche sur chaque ligne un
mot du texte.
Exemple :
azerty qsdfg wxcvb #
azerty
qsdfg
wxcvb
Exercice 8 :
Ecrire un programme qui lit un texte se terminant par # (on suppose que les caractères sont
des 0 et des 1 seulement), ensuite effectue une compression selon l’approche suivante :
Publicité
Chaque suite de n caractères identiques est remplacée par : n^<le caractère>#
Exemple :
111000001111000000#
3^1#5^0#4^1#6^0#
Exercice 9
Ecrire un programme qui accepte un texte qui se termine par #, et affiche le nombre de mots
formés par des caractères alphabétiques, et le nombre de mots formés par des chiffres.
Exemple :
Azer ghj234 567 8765 der4565 9876#
Le nombre de mots alphabétiques est 1, le nombre de mots chiffres est 3
2