Vous êtes sur la page 1sur 3

Examen Session de Rattrapage

Filière : SMI
Module : Programmation II
Semestre: 4
//Téléphones, Documents non autorisés//

Exercice 1 : (réponse Vrai=2, Faux=-2, pas de réponse =0)


1. Soit le programme suivant
int t[3] = { 7 , 8 , 9 ,10};
Que vaut t[2]+t[3]
a) 15
b) 17
c) 19
d) ca dépend (l’élément d’indice 3 est situé dans la mémoire après le tableau : on ne peut pas
connaitre sa valeur a priori)
2. Qu’affiche le programme suivant
void f(int x) { x = 1729; int y = x; y = 12;
printf("%d", y); }
main() { f(123); }
a) 1729
b) 12
c) 123
d) Rien (y est interne au bloc, la fonction n’est pas compilable)
3. Qu’affiche le programme suivant ?
int main() { int x = 2;
switch (x) { case 1: x = 4; case 2: x = 5; case 3: x = 6; default: {} }
printf("%d\n", x); return 0; }
a) 2
b) 5
c) 6 (il manque les break)
d) rien car il n’est pas correct
4. Quelle est la valeur affichée ?
void fonction(int a[]) { a[1] = 10;}
int main(void) { int T[]={1,2,3};
fonction(T);
printf("%d", T[1] ); return 0;}
a) 10
b) 1
c) 2
d) c'est une erreur
5. Quelle est la valeur affichée ?
1
A.U : 2014/2015
void fonction (int x) { x = x + 10; printf ("%d ", x);}

int fonction2 (int y) { return y + 20; }

int main (void) { int x = 1; fonction (x);


printf ("%d ", x); x = fonction2 (x);
printf ("%d\n", x); return 0;}
a) 11 11 31
b) 11 11 21
c) 11 1 21
d) C’est une erreur

Exercice 2: (10 pt)


1. Qu’affiche le programme suivant ?
int main (void) {
int i = 1, j=2, k=3;
int *a1, *a2;
a1=&i, a2=&k;
*a1=*a2++;
printf ("1)\t%d %d %d \n",i, j, k);
a2=&j;
*a1-=*a2;
printf ("2)\t%d %d %d \n",i, j, k);
++*a2;
printf ("3)\t%d %d %d \n",i, j, k);
*a1*=*a2;
printf ("4)\t%d %d %d \n",i, j, k);
i=++*a2**a1;
printf ("5)\t%d %d %d \n",i, j, k);
a1=&j;
*a2=*a1/=*a2;
printf ("6)\t%d %d %d \n",i, j, k); }

2. Soit P un pointeur qui pointe sur un tableau A.


Qu’affichent les cas suivants:
main()
{
int A[] = {12, 23, 34, 45, 56, 67, 78, 89, 90};
int *P; P = &A[1];
printf("1)\t %d \n",*P+2 );
printf("2)\t %d \n",*(P+2));
printf("3)\t %d \n",&A[7]-P );
printf("4)\t %d \n",(*P-A[2])); }

2
A.U : 2014/2015
Correction
EXO1
1)
c) 19
2)
b)=12
3)
c) 6 (il manque les break)
4)
a) 10
5)
c) 11 1 21

Exo2
1)

2)

3
A.U : 2014/2015

Vous aimerez peut-être aussi