Devoir Surveillé: Programmation 1

Page 1 sur 4Lecteur de document UniversityLib

Devoir Surveillé: Programmation 1

Computer Science · exam

Voir tous les documents en programmation

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