Ecole Supérieure de Technologie
et d’Informatique
____*____
Année Universitaire
2009/2010
____*____
Devoir Surveillé
: Programmation 1
Matière
Enseignants : Mme Wiem Yaiche Elleuch, M.Sami Amara
Filière
Sections
: Informatique
: A, B, C, D, E, F, G
: 11 novembre 2009
: 1h30mn
Date
Durée
Documents : non autorisés
Nbr. de pages : 4
NB: Répondre uniquement sur la feuille du sujet du devoir
Exercice 1:
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++)
Publicité
printf("\n %d", k+10j+100i);
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? (3 pts)
0
1
2
i:0, j:0, k:3
10
11
12
i:0, j:1, k:3
i:0, j:2, k:3
i:1, j:2, k:3
(1 pts)
(1 pts)
(1 pts)
1
Réecrire ce même programme en remplaçant for par while (3 pts)
#include <stdio.h>
void main()
{
int i,j,k;
i=0;
while (i<1)
{
j=0;
while(j<2)
Publicité
{
(1 pts: initialisation + cond avancement+avancement)
(1 pts)
k=0;
while (k<3)
{
(1 pts)
printf("\n %d", k+10j+100i);
k++;
}
printf("\n i:%d, j:%d, k:%d",i,j,k);
j++;
}
printf("\n i:%d, j:%d, k:%d",i,j,k);
i++;
}
printf("\n i:%d, j:%d, k:%d \n",i,j,k);
}
2
Exercice 2: (6 pts)
Ecrire un programme qui remplit un tableau de n entiers (différents de zéro), ensuite
l'affiche (utilier do….while pour le remplissage).
#include <stdio.h>
void main()
{
int tab[50], i,n, x;
i=0;
(0.5 pts)
printf("saisir nbre elt ");
scanf("%d",&n);
(0.5 pts)
do
Publicité
{
printf("saisir un entier différent de 0 ");
scanf("%d",&x);
if (x!=0)
{
tab[i]=x;
i++;
}
}
while(i<n);
(3 pts)
for (i=0; i<n;i++)
printf("%d \n", tab[i]);
(2 pts)
}
3
Exercice 3: (8 pts)
Ecrire un programme qui remplit un tableau de n entiers relatifs, et l'affiche. Ensuite copier
les éléments positifs ou nuls dans un tableau tpos et les éléments négatifs dans un tableau
tneg. Afficher les tableaux tpos et tneg. Afficher la somme et la moyenne des éléments de
tpos et de tneg.
#include <stdio.h>
void main()
{
int tab [10], tpos[10], tneg[10], i,j=0,k=0,n, som1=0, som2=0; (0.5 pts)
printf("saisir nbre d' elets");
scanf("%d",&n);
(0.5 pts)
(0.5 pts)
(0.5 pts)
for(i=0;i<n;i++)
scanf("%d",&tab[i]);
Publicité
for(i=0;i<n;i++)
printf("%d",tab[i]);
for(i=0;i<n;i++)
{
if (tab[i]>0)
{
tpos[j]=tab[i];
j++;
(1 pts)
tneg[k]=tab[i];
k++;
(1 pts)
}
else
{
}
}
for(i=0;i<j;i++)
printf("%d ",tpos[i]);
for(i=0;i<k;i++)
printf(" %d",tneg[i]);
(1 pts)
(1 pts)
for(i=0;i<j;i++)
som1+=tpos[i];
for(i=0;i<k;i++)
som2+=tneg[i];
printf("\n la somme de tpos est %d, la moyenne %f", som1, som1/j); (1 pts)
printf("\n la somme de tneg est %d, la moyenne %f", som2, som2/k); (1 pts)
}
4