Parcours Mathématiques -------------------------- Examen d’informatique (langage C++) : session ordinaire L2-MATHS U.E. : Initiation à la programmation Durée : 2 heures Septembre 2021 Documents autorisés : néant --------------------------------- NB : Pour chaque question, il y a exactement une bonne réponse. On considère que les lignes de code suivantes sont dans le fichier de chaque programme : #include <iostream> using namespace std; Question 1. Soit le code C++ suivant : Question 2. Soit le code suivant : Question 3. Soit le code suivant : int main() { int main() { int main() { int a = 1; int i = a ; int i = 0; int b = 2; cout << "i= " << i << endl; cout << "j= " << i++ << endl; cout <<"a= "<< b << ", b = "<< a << endl; return 0; return 0; return 0; } } } Parmi les affirmations suivantes, indiquer Parmi les affirmations suivantes, indiquer celle qui est Parmi les affirmations suivantes, indiquer celle qui est celle qui est correcte en expliquant ce que correcte en expliquant ce que fait le code. correcte en expliquant ce que fait le code. fait le code. 1. Ce programme ne compile pas 1. Ce programme ne compile pas 1. Ce programme ne compile pas 2. Ce programme compile et affiche à 2. Ce programme compile et affiche à 2. Ce programme compile et l’exécution j= 0 l’exécution a=1, b=2 affiche à l’exécution i= a 3. Ce programme compile et affiche à 3. Ce programme compile et affiche à 3. Ce programme compile et l’exécution j=1 l’exécution a=2, b=1 affiche à l’exécution i =1 Question 4. Soit le code suivant : Question 5. Soit le code suivant : Question 6. Soit le code suivant : int main() { int main() { int main() { int i = 0; int i, j = 0; int a, b; int *ptr; i = j = 6; int *ptr1, *ptr2; ptr = &i; cout << "i= " << i << ", j ="<<j<<endl; a = 5; cout << "val= " << ++*ptr << endl; return 0; b = a; return 0; } ptr1 = &a; } Parmi les affirmations suivantes, indiquer ptr2 = ptr1; Parmi les affirmations suivantes, indiquer celle qui est celle qui est correcte en expliquant ce que b = (*ptr2)++; correcte en expliquant ce que fait le code. fait le code. cout <<"a= "<<a<<", b= "<<b <<", *ptr1= "<<*ptr1<<", 1. Ce programme ne compile pas 1. Ce programme ne compile pas *ptr2= "<<*ptr2 <<endl; 2. Ce programme compile et affiche à 2. Ce programme compile et return 0; l’exécution val= 1 affiche à l’exécution i=6, j=6 } 3. Ce programme compile et affiche à 3. Ce programme compile et Parmi les affirmations suivantes, indiquer celle qui est l’exécution val=0 affiche à l’exécution i=0, j=6 correcte en expliquant ce que fait le code. 4. Ce programme compile et 1. Ce programme ne compile pas affiche à l’exécution i=6, j=0 2. Ce programme compile et affiche à l’exécution a=6, b=5, *ptr1 =6, *ptr2=6 3. Ce programme compile et affiche à l’exécution a=5, b=5, *ptr1 =5, *ptr2=5 4. Ce programme compile et affiche à l’exécution a=6, b=6, *ptr1 =6, *ptr2=6 Question 7. Soit le code suivant : Question 8. Soit le code suivant : Question 9. Soit le code suivant : void trio(int a, int b, int c){ void trio(int &a, int &b, int &c){ #define N 3 a=b+c; a=b+c; int main(){ b=c+a; b=c+a; int tab[N]; c=a+b; c=a+b; int j; } } for(j=0 ; j <N ; j++) int main(){ int main(){ tab[j] = 5; int a=1, b=2, c=3; int a=1, b=2, c=3; for(j = 0; j <N ; j++) trio(a,b,c); trio(a,b,c); cout <<"[" <<j<<"]= "<<tab[j]<<endl; cout <<"a= "<< a <<", b= "<< b <<", c= "<< c <<endl; cout <<"a= "<< a <<", b= "<< b <<", c= return 0; return 0; "<< c <<endl; } } return 0; Parmi les affirmations suivantes, indiquer celle qui est Parmi les affirmations suivantes, indiquer celle qui est } correcte en expliquant ce que fait le code. correcte en expliquant ce que fait le code. Parmi les affirmations suivantes, indiquer 1. Ce programme ne compile pas 1. Ce programme ne compile pas celle qui est correcte en expliquant ce que 2. Ce programme compile et affiche à 2. Ce programme compile et affiche à fait le code. l’exécution : l’exécution a=5, b =4, c=3 1. Ce programme ne compile pas [0] =5 3. Ce programme compile et affiche à 2. Ce programme compile et [1] =5 l’exécution a=5, b =8, c=13 affiche à l’exécution a=1, b =2, [2] =5 4. Ce programme compile et affiche à c=3 3. Ce programme compile et affiche autre l’exécution a=1, b =2, c=3 3. Ce programme compile et chose 5. Ce programme compile et affiche à affiche à l’exécution a=5, b =8, l’exécution a=3, b =6, c=9 c=13