Devoir Surveillé en Programmation 1

Computer Science · exam

Browse all programmation documents

Ecole Supérieure de Technologie et

d’Informatique

____*____

Université 7 Novembre à Carthage

A.U 2010/2011

____*____

Devoir Surveillé

Matière : PROGRAMMATION 1

Enseignants : W. Yaiche Elleuch, S. Amara, H. Fkaier

Filière / Classe : Informatique Appliquée (1ère année)

Date : 10 novembre 2010

Durée : 1h30

Documents : non autorisés

CIN : …………………… Salle :……………….

Nom : …………………… Prénom :.……………………..

Section : …………..

RÉPONDRE SUR CETTE FEUILLE

Exercice 1 : ( 6 pts)

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++)

printf("%d \n", i+j);

for (k=1; k<3; k++)

printf("%d \n", i+j+k);

}

1 pts

Si on l’exécute, qu’est ce qu’il affiche

2

3

3

Advertisement

4

7

8

1 pts

1 pts

1

Remplacer for par while

#include<stdio.h>

void main()

{

int i,j,k;

i=1;

while (i<3)

{

j=1;

while (j<3)

{

printf("%d \n", i+j);

j++;

2 pts

Les 2 whiles doivent être

correctement imbriquées

}

i++;

}

k=1;

while (k<3)

{

printf("%d \n", i+j+k);

k++;

}

}

1 pts

(7 pts)

Advertisement

Exercice 2

Ecrire un programme qui lit un texte se terminant par #, et affiche le nombre de mots

contenant au moins 3 voyelles majuscules (A, E, I, O, U, Y), et au moins 5 lettres majuscules.

Les mots sont séparés par un ou plusieurs séparateurs (‘ ‘ | ‘,’ | ‘ ;’ | ‘.’).

Exemple

azeEUYAgf,,, AEIML EUYGFd#

Le nombre de mots est 2

#include<stdio.h>

void main()

{

char c, preced=' '; int nb_voy=0, nb_mots=0, nb_maj=0;

while( (c=getchar())!='#')

{

0.5 pts

if (c==' ' || c==',' || c==';'|| c=='.')

{

0.5 pts

if (preced !=' ' && preced!= ',' && preced !=';' && preced !='\n')

if(nb_voy>=3 && nb_maj>=5) nb_mots++;

2 pts

2

}

else

{

if(c=='A' || c=='E' || c=='I'|| c=='O' || c=='U' || c=='Y')

nb_voy++;

1 pts

if(c>='A' && c<='Z') nb_maj++;

1 pts

}

preced=c;

0.5 pts

}

if(nb_voy>=3 && nb_maj>=5) nb_mots++;

Advertisement

1 pts

printf("Le nombre de mots est %d", nb_mots);

0.5 pts

}

Exercice 3

(7 pts)

Ecrire un programme qui remplit un tableau tab1 de n éléments (n doit être pair), et le remplit

par des entiers qui doivent être compris entre 0 et 10 (inclus).

Utiliser do…while pour faire le contrôle sur n et sur les entiers.

Le programme remplit un deuxième tableau tab2 à partir de tab1, et ce en additionnant chaque

deux éléments consécutifs de tab1 ensemble (exemple : 5+3=8 ; 2+9=11 ; 4+1=5 ; etc).

Afficher tab2.

Exemple :

tab1 :

3

9

2

1

7

4

6

5

9

8

tab2 :

8

11

5

13

17

3

#include<stdio.h>

void main()

{

Advertisement

int tab1[100],tab2[50],i=0,j=0,n;

1 pts

do

{

printf("saisir le nombre d'éléments");

scanf("%d",&n);

}

while (n%2!=0);

1 pts

printf("\n remplissage de tab 1 \n"); // une solution parmi d’autres

do

{

scanf("%d", &tab1[i]);

if(tab1[i]>=0 && tab1[i]<=10) i++;

2 pts

}

while(i<n);

for(i=0; i<n-1; i=i+2)

{

tab2[j]=tab1[i]+tab1[i+1];

j++;

}

printf("\n affichage de tab 2 \n");

2 pts

for(j=0; j<n/2; j++)

printf("\n %d ", tab2[j]);

1 pts

}

4