0% ont trouvé ce document utile (0 vote)
14 vues4 pages

Contrôle de rattrapage Informatique S4

Le document contient un exercice sur la programmation en C++ avec des questions sur des extraits de code et l'analyse de programmes. Il présente également un exercice à réaliser pour trier et traiter un tableau.

Transféré par

ferdaousse2004
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
14 vues4 pages

Contrôle de rattrapage Informatique S4

Le document contient un exercice sur la programmation en C++ avec des questions sur des extraits de code et l'analyse de programmes. Il présente également un exercice à réaliser pour trier et traiter un tableau.

Transféré par

ferdaousse2004
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université Cadi ayyad ‫ـ ـ ـ اــ ـ ــض‬

Faculté des Sciences ‫آـ ـ ــ ا ـ ـ ـ م ا ـ ـ ـ ـ ـ‬


Semlalia – Marrakech ‫ــ اآــ‬

N° de table N° APOGEE Nom : …………………………………………... NOTE

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

Né(e) le : …./……/… à : …………………….

Filière : SMP S4 Epreuve de : Contrôle de rattrapage d’Informatique Date : 26/06/2015


Durée 2h

Remarque IMPORTANTE : Pour les questions 2 à 7, cochez une seule case. Toute réponse avec 2 cases
cochées et plus sera considerée fausse.

EXERCICE 1 :

Etant données les lignes de programme suivants, répondez aux questions posées :

Question 1 :

int X = 10 , Y = 5 , Z = 10 , W; Donnez l’affichage obtenu :


W = X == ( Y = Z ) ;
W = 1 0.5 pts
cout << "W = " << W ;

int X = 6, Y = 5 , W; Donnez l’affichage obtenu :


W = X == Y++ ;
W = 0 Y = 6 1 pts
cout<< "W= " << W << "Y= " << Y ;

int X = 6, Y = 5 , Z = 10, W; Donnez l’affichage obtenu :


W = Z + (X == ++Y) ; 1 pts
W = 11 Y = 6
cout << "W= " << W << "Y= " << Y ;

Question 2 :

int X = 10 , Z ; Quelle est la valeur de W ? Quelle est la valeur de Z ?


bool W = -1; □ -1 □ 9
Z = X + W ; □ 0 □ 10
.5 pts .5 pts
cout << W << Z ; □ 1 □ 11
□ autre □ autre

exosup.com page facebook


Question 3 :

int A = - 1 ; Quelle est la valeur de A ?


do □ -1
{ □ 0
A = A + 1 ; □ 1 1 pts
} while( A > 0); □ Indéfini
cout << A ;

int A = - 1 ; Quelle est la valeur de A ?


while( A > 0) □ -1
{ □ 0 1 pts
A = A + 1 ; □ 1
} □ Indéfini
cout << A ;

Question 4 :
Cocher la bonne réponse pour s :
int i , s ;
for ( i = 0 , s = 0 ; I < 5 ; i++ ) □ s=0
{ □ s=2
if( i % 2 ) continue; □ s=4 1 pts
s = s + i; □ s=6
} □ s=8
cout << "s = "<< s <<endl;

Question 5:

int i, j; Quel est l’affichage obtenu :


for(i= 1 , j = 0 ; i% 7 ; i += 2) □ i=6 j=3
{ □ i= 7 j=3 1 pts
j++; □ i= 7 j=4
} □ i= 7 j=5
cout <<" i = "<< i <<" j = "<<j; □ i= 8 j=4

Question 6 :
Quelle est la valeur de A ? Quelle est la valeur de B ?
int T[][3]={1,2,3,4,5,6,7,8,9}; □ 1 □ 1
int A , B ; □ 2 □ 2
A = T[0][2] ; □ 3 0.5 pts □ 3 1 pts
B = *( *(T+1) + 1) ; □ 4 □ 4
cout << "A="<< A << "B="<< B ; □ 5 □ 5

exosup.com page facebook


Question 7 :

int T[3][4] , i , j , A , B ; Quelle est la valeur de A ? Quelle est la valeur de B ?


for ( i = 0 ; i< 3 ; i++) □ 1 □ 3
for ( j = 0 ; j < 4 ; j ++) □ 11 □ 10
T[i][j] = 10*i + j ; .5 pts .5 pts
□ 12 □ 13
A = *(*T + 1); □ 23 □ 23
B = *(*(T+2) + 3); □ erreur □ erreur

Question 8 :

main()
{
int T[ ] = { -4 , -3 ,- 2 , -1 , 0 , 1 , 2 , 3 , 4 , 5 } ;
int *P, A , B;
P = T + 4 ; //Ligne 1
P+=T[5] ; //Ligne 2
++P ; //Ligne 3
P=P + T[0] ; //Ligne 4
++*P ; //Ligne 5
}
Pour chacune des lignes 1 à 5, vers quel élément de T « pointe » le pointeur P, et quelle est la valeur de *P ?

Exemple :
Ligne 1 : P pointe sur T[4] et *P vaut 0

Donnez les réponses pour les autres lignes :


.25 pts
Ligne 2 : .5 pts P pointe sur T[5] et *P vaut 1
Ligne 3 : .5 pts P pointe sur T[6] et *P vaut 2 .25 pts
Ligne 4 : .5 pts P pointe sur T[2] et *P vaut −2 .25 pts
Ligne 5 : .5 pts P pointe sur T[2] et *P vaut −1
.25 pts

EXERCICE II

Réaliser un programme qui permet de :


1) Déclarer un tableau d’entiers T, de taille N = 30.
2) Affecter des valeurs aléatoires, comprises entre 1 et 100, aux éléments du tableau T.
3) Afficher le tableau T.
dans la suite des questions, ne plus afficher T, car aucun autre affichage de T n’est demandé.
4) Donner le nombre d’éléments impairs de T.
5) Eliminer les dédoublements des éléments du tableau; et donner N, la nouvelle taille du tableau.
6) Réorganiser le tableau de telle façon à grouper les éléments impairs dans la première partie et les
éléments pairs dans la deuxième partie de tableau T.

exosup.com page facebook


#include<iostream>
#include<cstdlib> .25 pts
#include<ctime>
using namespace std;
int main()
{
///Question 1 .5 pts
int T[30],i,j,k,N=30, Ni,C;

///Question 2 .5 pts
srand(time(0));
for(i=0;i<N;i++) T[i]=rand()%100+1; 1. pts

///Question 3
for(i = 0;i < N; i++) cout <<T[i]<< "\t"; .75 pts

///Question 4
for(i=0,Ni=0;i<N;i++) 1 pts
if(T[i]%2)
Ni++;
cout << "\nNombre d'éléments impairs : " << Ni <<endl; .5 pts

///Question 5

Proposition 1 Proposition 2

for(i=0;i<N;i++) for(k=0,i=0;i<N;i++)
for(j=i+1;j<N;j++) {
if(T[i]==T[j]) for(test=0,j=i+1;j<N;j++)
1. pts { if(T[i]==T[j]) test=1;
for(k=j;k<N-1;k++) if(test==0)
T[k]=T[k+1]; T[k]=T[i], k++;
N--; }
j--; N = k;
}

cout << "\nNouvelle taille N de T : " << N <<endl;

///Question 6
Proposition 1 Proposition 2
i=0;
j=N-1; for(i=1;i<N;i++)
while(i<j) if(T[i]%2)
{ {
while(T[i]%2) i++; for(C=T[i],j=i;j>0;j--)
1.5 pts
while(T[j]%2==0) j--; T[j]=T[j-1];
if (i<j) T[0]=C;
C=T[i],T[i]=T[j],T[j]=C; }
}
return 0;
}

exosup.com page facebook

Vous aimerez peut-être aussi