Vous êtes sur la page 1sur 4

© Mr HousNi * housni14@gmail.

com

Contrôle Continu de Langage C


Durée: 1h30mn

Questions de cours

1. Y a-t-il une différence entre Algorithme et Programmation, si oui laquelle?


2. Quelle est la différence entre compilation et exécution?
3.C'est quoi le but de la déclaration des variables, et quel est sa signification de point de
vue mémoire?
4. Quel est le rôle de l'utilisation des tableaux dans la programmation?

Exercice 1

Ecrivez un programme qui permet de calculer Fact = n!, sachant que n! = 1x2x3x...x(n-1)xn

Exercice 2

Ecrivez un programme qui permet de:

1. Déclarer un tableau qui contient N éléments.


2. Remplir ce tableau alétoirement par des nombres entres 0 et 30 en utilisant la fonction
rand().
3. En utilisant le modulo (Z=X%Y c-à-d Z est le reste de la division de X par Y, exp: 5%2=1).
Afficher séparément les multiples de 2, 3 et 5 appartenant à ce tableau.

Exercice 3

Ecrivez un programme qui demande un nombre décimal et affiche sa conversion en binaire,


en se servant de l'opérateur div (/ exp: 5/2=2), et de l'opérateur modulo (% 5%2=1).

1/4
© Mr HousNi * housni14@gmail.com

Corrigé

Questions de cours

1. L'algorithme est une suite d'opérations permettant de résoudre un problème. La


programmation est la traduction de l'algorithme écrit en langage ordinaire en langage de
programmation tel que le C.

2. La compilation est la conversion du programme écrit en C par exemple en langage machine,


ce qui ressemble à des suites de 0 et de 1 compréhensibles par le matériel. L'éxécution est
faire exécuter le programme par la machine.

3. La déclaration des variables permet leurs manipulation dans le corps du programme, et cela
signifie qu'on a réservé des emplacements dans la mémoire principale (RAM) qu'on a
nommé avec les noms de ces variables.

4. L'utilisation des tableaux en programmation permet d'entrer plusieurs valeurs consécutives,


et de les manipuler par leurs indices.

Exercice 1

/*
programme calculant le factoriel d'un nombre n
*/

#include <stdio.h> // fonctions d'entrées/sorties


#include<stdlib.h> // fonctions générales

main()
{
// déclaration des variables
int n;
int i;
int Fact=1;

// lecture de la valeur de n
printf("Donner n: ");
scanf("%d",&n);

// calcul de factoriel
for(i=1;i<=n;i++) Fact=Fact*i;

// affichage de factoriel
printf("\n%d!=%d\n\n",n,Fact);

// pause systeme
system("PAUSE");
}

2/4
© Mr HousNi * housni14@gmail.com

Exercice 2

/*
Programme qui déclare un tableau de dimension N donnée par
l'utilisateur, et qui remplie ce tableau avec des valeurs aléatoires
comprises entre 0 et 30, et qui affiche séparément les multiples de 2, 3
et 5 appartenant à ce tableau
*/

#include <stdio.h>
#include <stdlib.h>
#include<time.h>

main()
{
int N; // la taille du tableau
int i; // le compteur

// lecture de N
printf("Donner N: ");
scanf("%d",&N);

int t[N]; // déclaration du tableau

srand(time(NULL)); /* initialisation du générateur des valeurs


aléatoires */

// remplissage et affichage du tableau


for(i=0;i<N;i++) {
t[i]=rand()%31;
printf("%d, ",t[i]);
}

// affichage des multiples de 2, 3 et 5 appartenant au tableau


printf("\nLes multiples de 2 dans le tableau sont:\n");
for(i=0;i<N;i++) if(t[i]%2==0) printf("%d ",t[i]);
printf("\nLes multiples de 3 dans le tableau sont:\n");
for(i=0;i<N;i++) if(t[i]%3==0) printf("%d ",t[i]);
printf("\nLes multiples de 5 dans le tableau sont:\n");
for(i=0;i<N;i++) if(t[i]%5==0) printf("%d ",t[i]);

// passage à la ligne et pause systeme


printf("\n");
system("PAUSE");
}

3/4
© Mr HousNi * housni14@gmail.com

Exercice 3
/*
Programme qui lit un entier N et le convertit en binaire
*/

#include <stdio.h>
#include <stdlib.h>

main()
{
int N, M; // l'entier N
int cmpt=0; // compteur pour la boucle while
int i; //compteur

// lecture de N
printf("Donner N: ");
scanf("%d",&N);
M=N;
// calcul de la taille du tableau de conversion
while(M!=0){
cmpt++;
M=M/2;
}

// déclaration du tableau
int t[cmpt];

// conversion binaire de N
cmpt=0;
while(N!=0){
t[cmpt]=N%2;
cmpt++;
N=N/2;
}

// affichage de la conversion binaire de N


for(i=cmpt-1;i>=0;i--) printf("%d",t[i]);

// passage à la ligne et system pause


printf("\n");
system("PAUSE");
}

4/4