Vous êtes sur la page 1sur 6

Srie dexercices

Exercice 1 :
Soit le programme suivant :
#include<stdio.h>
main()
{ int I, n,som
som =0;
for(I=0;I<4,I++)
{
printf("donner un entire") ;
scanf("%d",&n) ;
som+=n ;
}
printf("Somme :%d\n",som) ;
}
Ecrire un programme ralisant exactement la mme chose, en employant, la place de linstruction
for :
a) une instruction while .
b) une instruction do while.

Exercice 2 :
Ecrire un programme qui calcule les racines carres de nombre fourni en donne. Il sarrtera
lorsquon lui fournira la valeur 0. Il refusera la valeur ngative.

Exercice 3 :
Calculer la somme des n premiers termes de la srie harmonique cest dire la somme :
1+1/2+1/3+1/4++1/n.
La valeur de n sera lue en donne.

Exercice 4 :
Afficher un triangle isocle form dtoiles. La hauteur de la ligne (nombre de lignes) sera fournie en
donne.

Exercice 5 :
Ecrire un programme qui dtermine la nime valeur de la suite de Fibonnaci dfinie comme suit :
U1= 1
U2=1
Un =Un-1 +Un-2 pour n>2

Exercice 6 :
Ecrire un programme se servant dune fonction F pour afficher la table de valeurs de la fonction
dfinie par :
F(x) = sin(x) +ln(x) -x
Soit x de type entier compris entre 1 et 10.

Exercice 7 :
Ecrire une fonction qui reoit en argument 2 nombres flottants et un caractre et qui fournit un
rsultat correspondant lune des 4 oprations appliques ses deux premiers arguments, en fonction
de la valeur du dernier savoir addition pour le caractre +, soustraction pour - , multiplication pour
* et division pour /(tout autre caractre que lun des 4 cits sera interprt comme addition) on ne
tiendra pas compte des divisions par 0.
Ecrire un programme (main) utilisant cette fonction pour effectuer les 4 oprations sur 2 nombres
donnes.

Exercice 8 :
Un nombre entier positif est dit premier sil na que deux diviseurs distincts : 1 et lui-mme. crire
les deux fonctions C suivantes :
 EstPremier (n) retourne 1 si n est premier et 0 sinon.
 PremierSuiv (n) retourne le nombre premier strictement suprieur n (cette fonction doit appeler
la fonction EstPremier dj ralise).
Exemples :
EstPremier (2) ;  le rsultat est 1
EstPremier (4) ;  le rsultat est 0
PremierSuiv (2) ;  le rsultat est 3
PremierSuiv (29) ;  le rsultat est 31
crire le programme C qui liste tous les nombres premiers compris entre 1 et 20. Ce programme doit
appeler la fonction PremierSuiv dj ralise.

Exercice 9 :
Saisir une suite de caractres, compter et afficher le nombre de lettres e et despaces.

Exercice 10 :
La fonction kbhit appartient la bibliothque conio.h. Une fonction quivalente peut exister avec
dautres compilateurs. La fonction kbhit teste si un caractre a t frapp au clavier.
Tant que ce nest pas vrai kbhit renvoie 0 (ceci signifie que la valeur de la fonction kbhit est 0).

Exemple:

while(kbhit() == 0) /*tant quaucun caractre na t frapp excuter la boucle*/


{ ..... }
Cette criture est quivalent :
while(!kbhit()); /* tant que kbhit est faux, excuter la boucle */
{ ..... }

crire un programme qui affiche le carr des entiers 1, 2, 3 ......, toutes les 500 ms tant quaucun
caractre na t frapp au clavier. Gnrer la temporisation laide dune boucle for et dun
dcompteur.

Page 2 / 6
Corrig des exercices

Exercice 1 :
a)
#include<stdio.h>
main()
{ int I, n,som
som =0;
while(i<4)
{
printf("donner un entire") ;
scanf("%d",&n) ;
som+=n ;
i++;
}

printf("Somme :%d\n",som) ;
}

b)
#include<stdio.h>
main()
{ int I, n,som
som =0;
do
{
printf("donner un entire") ;
scanf("%d",&n) ;
som+=n ;
i++ ;
}while(i<4) ;
printf("Somme :%d\n",som) ;
}

Exercice 2 :
#include<stdio.h>
#include<math.h>
main()
{ double x;
do
{
printf("donner un nombre positif :") ;
scanf("%le",&x) ;
if (x<0)
printf ("SVP positif \n");
if (x >0)
printf (sa rcine carre est : %le \n,sqrt(x));
}while (x) ;
}

Exercice 3 :
#include<stdio.h>
main()
{
Page 3 / 6
int nt,i;
float som;
do
{
printf("combien de termes :") ;
scanf("%d",&nt) ;
}while (nt<1) ;

for (i=1,som=0;i<=nt;i++)
som+ = (float)1/i;
printf(somme des %dpremiers termes =%f ,nt,som) ;
}

Exercice 4 :
#include<stdio.h>
#define car *
main()
{
int nlignes ;
int nl ;
int nesp ;
int j ;
printf(combien de lignes ?") ;
scanf("%d",&nlignes) ;
for(nl=0 ;nl<nlignes ;nl++)
{
nesp=nlignes nl -1 ;
for (j=0 ;j<nesp ;j++)
putchar( );
for (j=0;j<2*nl+1;j++)
putchar(car);
putchar(\n);
}
}

Exercice 5 :
#include<stdio.h>
main()
{
int u1,u2,u3;
int n;
int i;
do
{
printf(rang du terme demand ? ) ;
scanf("%d",&n) ;
}while(n<3) ;
u2=u1=1;
i=2;
while(i++ < n)
{
u3=u1+u2;
u1=u2;
u2=u3;

Page 4 / 6
}
printf( valeur du terme de rang %d:%d,n,u3);
}

Exercice 6 :
#include <stdio.h>
#include<math.h>
void main()
{
double fonct (int x) ;
int i ;
printf(\t X \tF(X) \n \n);
for( i=1 ;i<=10 ;i++)
printf(\t %d\t %.3f\n,i,fonct(i));
}
double fonct(int x)
{
double a ;
a= sin(x)+log(x)-sqrt(x) ;
return(a);
}

Exercice 7 :
#include <stdio.h>

float oper (float v1, float v2, char op)


{
float res;
switch(op)
{
case + : res = v1+v2;
break;
case -: res = v1-v2;
break;
case *: res = v1*v2;
break;
case /: res =v1/v2;
break;
default: res = v1+v2;
}
return(res);
}
void main()
{
float oper(float,float,char);
float x,y;
printf(donner deux nombres rels : ) ;
scanf( %e %e,&x,&y) ;
printf(leur somme est %e \n,oper(x,y,+)) ;
printf(leur difference est %e \n,oper(x,y,-)) ;
printf(leur produit est %e \n,oper(x,y,*)) ;
printf(leur quotient est %e \n,oper(x,y,/)) ;
}

Page 5 / 6
Exercice 8 :
int EstPremier (int x)
{ int i;
for (i = 2; i <= (int)(x/2); i++)
if ((x % i) == 0) return (0);
return (1);
}

int PremierSuiv (int x)


{ int i;
for (i = x+1; ; i++)
if (EstPremier (i)) return (i);
return (0);
}

Exercice 9 :
#include <stdio.h>
#include <conio.h>
void main()
{
char c,compt_espace= 0,compt_e= 0;
printf("ENTRER UNE PHRASE:\n");/* lutilisateur saisit la totalite de sa phrase */

while((c=getchar())!=\n) /* lors du 1er passage, getchar ne prend */


/* en compte que le 1er caractere */
{ /* les autres sont ranges dans le tampon */
if(c==e)compt_e++; /* et recuperes par getchar lors */
/* des autres passages */
if(c== )compt_espace++;
}

printf("NOMBRE DE e: %d\n",compt_e);
printf("NOMBRE DESPACE: %d\n",compt_espace);
printf("POUR SORTIR FRAPPER UNE TOUCHE ");
getch();
}

Exercice 10 :
#include <stdio.h>
#include <conio.h>
void main()
{
int i = 0;
float x,tempo=5000000;
printf("POUR SORTIR DE CE PROGRAMME FRAPPER UNE TOUCHE ...\n");
do
{
printf("i = %d i*i = %d\n",i,i*i);
for(x=tempo;x>0;x--);
i++;
}
while(kbhit()==0); /* on peut aussi crire while(!kbhit()); */

Page 6 / 6