Modèle de concours : Technicien — 3e grade — Ministère de l'Équipement et de l'Eau — Informatique
📝 Texte des questions (extrait automatiquement des pages scannées)
Ce texte est extrait automatiquement des images de l'épreuve et peut contenir des erreurs de lecture — les images ci-dessus font foi.
— صفحة 1 —
69. Quel est le résultat de fun(1) où la fonction fun est définie comme suit:
int fun(int n) {
}
if (n = 4)
else
return n;
return 2 fun(n+1);
fun(1)=39
70. Qu'est-ce qui s'affiche à l'écran quand on appelle la fonction crazy(3,4,5) ?
void crazy(int n, int a, int b) {
}
if (n < 0) return;
crazy(n-1, a, b+n);
printf("%d", n-a+b);
crazy(n-1, b, a+n);
71. Que contient le tableau t1 à la fin de ce programme:
#include <stdio.h>
int main() {
}
int ti[10];
int 12[] (-4, 6, -2, -1, 10, 5, -3, 8, 7, 9};
int i,j = 0;
for(i=0; i<10; i++)if(t2[i] > 0) ti[j++]
while(j<10) (t1[j++] = 0; }
e.com
for(i=0; i<10; i++) { printf("%d
72. Quels résultats fournira ce program
#include <stdio.h>
main() {
int t[3];
int i, j;
int adt;
[i]); }
for (i 0,5 0; i < 3; i++) t[i]++; /* 1 */
for (i 0; i < 3; i++) printf("%d", t[i]);
=
printf("/");
/* 2 */
for (i=0; i < 3; i++) printf("%d ", *(t + 1)); //* 3 */
printf("/");
for (adt t; adt <t+3; adt++) printf("%d ", adt); /* 4 */
printf("/");
5
for (adt t2; adt >t; adt--) printf("%d ", adt); /* 5 */
wadifa-info.com
Bon Courage I
8/8
نماذج المباريات من موقع وظيفة إنفو
✅ Correction proposée
Il s'agit d'une correction proposée, rédigée par l'équipe wadifa-info pour vous aider à comprendre la méthode — ce n'est pas un corrigé officiel de l'administration organisatrice.
Ce modèle est une épreuve de langage C (technicien de 3e grade — spécialité informatique). Les questions ci-dessous proviennent de la dernière page (8/8). Voici une correction méthodologique proposée : les réponses sont ici certaines, car elles résultent du déroulement pas à pas du programme et non d'une estimation.
Question 69 — quel est le résultat de fun(1) ?
Réponse : 32
La fonction retourne n si n == 4, et sinon 2 * fun(n+1). Déroulons :
- fun(4) = 4
- fun(3) = 2 × fun(4) = 2 × 4 = 8
- fun(2) = 2 × fun(3) = 2 × 8 = 16
- fun(1) = 2 × fun(2) = 2 × 16 = 32
⚠️ Certaines copies de ce modèle qui circulent portent une réponse manuscrite « 39 » — elle est fausse. La bonne réponse est 32, et vous pouvez le vérifier en déroulant les appels comme ci-dessus.
Question 70 — qu'affiche l'appel crazy(3,4,5) ?
Réponse : 7 6 -1 4 5 4 1
La fonction exécute trois étapes dans l'ordre : appel à gauche, puis affichage de n-a+b, puis appel à droite (un parcours de type in-order). Déroulement :
- crazy(3,4,5) → appelle crazy(2,4,8)
- crazy(2,4,8) → crazy(1,4,10) affiche 1-4+10 = 7
- puis affiche 2-4+8 = 6
- puis crazy(1,8,6) affiche 1-8+6 = -1
- puis affiche 3-4+5 = 4
- puis crazy(2,5,7)
- crazy(1,5,9) affiche 1-5+9 = 5
- puis affiche 2-5+7 = 4
- puis crazy(1,7,7) affiche 1-7+7 = 1
Question 71 — quel est le contenu du tableau t1 à la fin du programme ?
Réponse : 6 10 5 8 7 9 0 0 0 0
La première boucle recopie dans t1 uniquement les valeurs positives ou nulles de t2, en conservant leur ordre :
- t2 = {-4, 6, -2, -1, 10, 5, -3, 8, 7, 9} → valeurs retenues : 6, 10, 5, 8, 7, 9 (six valeurs, donc j = 6)
- puis
while(j<10)remplit les cases restantes avec des zéros : quatre zéros.
Question 72 — quels résultats donne ce programme ?
Réponse : 0 2 4 / 0 2 4 / 0 2 4 / 4 2 0
Calculons d'abord le contenu du tableau dans la boucle (1) où t[i] = j++ + i avec j initialisé à 0 :
- i=0 : t[0] = 0 + 0 = 0 (puis j = 1)
- i=1 : t[1] = 1 + 1 = 2 (puis j = 2)
- i=2 : t[2] = 2 + 2 = 4 (puis j = 3)
Donc t = {0, 2, 4}. Les quatre boucles restantes lisent toutes le même tableau, de façons différentes :
| Boucle | Méthode | Résultat |
|---|---|---|
| (2) | t[i] — par indexation | 0 2 4 |
| (3) | *(t+i) — identique, en arithmétique de pointeurs | 0 2 4 |
| (4) | pointeur avançant de t à t+3 | 0 2 4 |
| (5) | pointeur reculant de t+2 à t | 4 2 0 |
💡 La notion testée : t[i] et *(t+i) sont strictement équivalentes en C — seule la dernière boucle inverse l'ordre, parce qu'elle parcourt le tableau de la fin vers le début.
Vous préparez ce concours ?
Modèles similaires
Source : partagé par les candidats sur les forums