QCM : Systèmes à microprocesseur et DSP — 48 questions

Questions et réponses du QCM

1. Quels objectifs caractérisent principalement l’enseignement d’IF40 ?

Concevoir des moteurs électriques et calculer leurs rendements dans différentes conditions de fonctionnement
Analyser les propriétés des matériaux conducteurs et dimensionner des transformateurs pour les réseaux électriques
Étudier les réseaux informatiques et configurer des serveurs pour automatiser les communications industrielles
Développer la pratique des systèmes à microprocesseur, microcontrôleur et DSP, puis leur mise en œuvre en contrôle du génie électrique

Développer la pratique des systèmes à microprocesseur, microcontrôleur et DSP, puis leur mise en œuvre en contrôle du génie électrique

Explication

IF40 vise les compétences liées aux microprocesseurs, microcontrôleurs et DSP, ainsi qu’à l’emploi des microcontrôleurs dans les applications de contrôle du génie électrique. L’étude des réseaux, des matériaux ou des moteurs ne correspond pas à l’objectif central indiqué.

2. Dans quelle séquence la chaîne de traitement du signal est-elle organisée ?

Capteur, interface de commande, filtrage, sortie moteur, interface DSP
Interface DSP, capteur, filtrage, interface de commande, sortie moteur
Filtrage, capteur, interface DSP, sortie moteur, interface de commande
Capteur, filtrage, interface DSP, interface de commande, sortie moteur

Capteur, filtrage, interface DSP, interface de commande, sortie moteur

Explication

La chaîne suit la progression du signal depuis le capteur jusqu’à la sortie moteur, en passant par le filtrage, le DSP et l’interface de commande. Une séquence qui déplace le filtrage ou l’interface DSP ne respecte pas cet enchaînement.

3. Quelle activité fait partie des compétences évaluées en IF40 ?

Programmer les registres GPIO, de conversion analogique-numérique et ePWM, puis réaliser un programme en langage C
Calculer des structures mécaniques, choisir des roulements et simuler les vibrations d’une machine tournante
Régler des relais de protection, étalonner des transformateurs et rédiger un rapport de maintenance industrielle
Développer une application mobile, administrer une base de données et configurer un réseau local sécurisé

Programmer les registres GPIO, de conversion analogique-numérique et ePWM, puis réaliser un programme en langage C

Explication

L’évaluation porte notamment sur la documentation du DSP, la programmation de registres GPIO, de conversion analogique-numérique et ePWM, ainsi que sur l’organigramme et le langage C. Les autres activités relèvent de domaines techniques différents.

4. Quelle proposition associe correctement un événement historique à son année ?

En 1945, Turing développe la première machine de Turing fonctionnelle
En 1945, Von Neumann propose l’architecture de référence des ordinateurs
En 1936, Schokley, Bartain et Bradeen présentent le premier transistor
En 1947, Von Neumann propose l’architecture de référence des ordinateurs

En 1945, Von Neumann propose l’architecture de référence des ordinateurs

Explication

Von Neumann propose l’architecture de référence des ordinateurs en 1945. Les autres associations déplacent cet événement vers une autre date ou l’attribuent à un événement différent.

5. Quel événement est associé à l’année 1947 dans l’histoire des composants électroniques ?

La création du premier microprocesseur intégré par Intel et Busicom
La proposition de l’architecture de référence des ordinateurs par Von Neumann
La formalisation de la représentation binaire et de l’algèbre de Boole
La naissance du premier transistor, présenté par Schokley, Bartain et Bradeen

La naissance du premier transistor, présenté par Schokley, Bartain et Bradeen

Explication

Le premier transistor naît en 1947 et est présenté par Schokley, Bartain et Bradeen. Le microprocesseur 4004 appartient à 1971, Boole à 1847 et l’architecture de Von Neumann à 1945.

6. Quelle caractéristique distingue correctement le microprocesseur Intel 4004 du 8008 ?

Le 4004 est un microprocesseur 2 bits, tandis que le 8008 est un microprocesseur 4 bits
Le 4004 est un microprocesseur 16 bits, tandis que le 8008 est un microprocesseur 8 bits
Le 4004 est un microprocesseur 8 bits, tandis que le 8008 est un microprocesseur 4 bits
Le 4004 est un microprocesseur 4 bits, tandis que le 8008 est un microprocesseur 8 bits

Le 4004 est un microprocesseur 4 bits, tandis que le 8008 est un microprocesseur 8 bits

Explication

Le 4004 est un microprocesseur 4 bits, alors que le 8008 est un microprocesseur 8 bits. La confusion entre leurs largeurs de données inverse ou modifie ces caractéristiques.

7. Que signifie la loi de Moore concernant les circuits intégrés ?

La miniaturisation permet d’augmenter de moitié le nombre de transistors dans un circuit de même taille tous les 18 mois
La miniaturisation permet de doubler le nombre de transistors dans un circuit de même taille tous les 18 mois
La miniaturisation permet de maintenir constant le nombre de transistors dans un circuit de même taille pendant 18 mois
La miniaturisation permet de doubler la taille d’un circuit intégré contenant le même nombre de transistors tous les 18 mois

La miniaturisation permet de doubler le nombre de transistors dans un circuit de même taille tous les 18 mois

Explication

La loi de Moore énonce un doublement du nombre de transistors intégrables dans une même taille de circuit tous les 18 mois. Une augmentation de moitié, une croissance de la surface ou une stabilité du nombre de transistors ne correspondent pas à cette formulation.

8. Comment un nombre est-il représenté dans un système de numération de base BB ?

Par des chiffres BkB^k associés aux puissances aka_k des positions
Par des chiffres associés aux puissances de 1010 quelle que soit la base choisie
Par des chiffres aka_k associés aux puissances BkB^k de la base
Par des chiffres identiques associés à une puissance fixe indépendante de leur position

Par des chiffres $$a_k$$ associés aux puissances $$B^k$$ de la base

Explication

Dans une base BB, chaque chiffre aka_k contribue selon la puissance BkB^k correspondant à sa position. Utiliser les chiffres comme puissances ou imposer la base dix ne décrit pas le fonctionnement général d’un système de numération.

9. Quelle expression calcule la valeur d’un nombre écrit en base BB avec nn chiffres ?

N(B)=∑k=0n−1akBkN_{(B)}=\sum_{k=0}^{n-1}a_kB^k
N(B)=∑k=0n−1Bkak−1N_{(B)}=\sum_{k=0}^{n-1}B^ka_k^{-1}
N(B)=∑k=1nakBkN_{(B)}=\sum_{k=1}^{n}a_kB^k
N(B)=∏k=0n−1akBkN_{(B)}=\prod_{k=0}^{n-1}a_kB^k

$$N_{(B)}=\sum_{k=0}^{n-1}a_kB^k$$

Explication

La valeur s’obtient en additionnant chaque chiffre multiplié par la puissance de la base correspondant à sa position, de k=0k=0 à n−1n-1. Une borne de sommation décalée, un inverse ou un produit modifie cette règle.

10. Quelle méthode convertit correctement un nombre décimal vers une base BB par divisions successives ?

Diviser successivement par BB, puis lire les restes dans l’ordre inverse
Diviser successivement par 1010, puis lire les restes dans l’ordre inverse
Multiplier successivement par BB, puis lire les quotients dans l’ordre direct
Soustraire successivement BB, puis lire les différences dans l’ordre direct

Diviser successivement par $$B$$, puis lire les restes dans l’ordre inverse

Explication

La conversion repose sur des divisions successives par BB et sur la lecture des restes du dernier obtenu vers le premier. La multiplication, l’emploi systématique de 1010 ou la soustraction ne produisent pas la procédure générale de conversion.

11. Quelle combinaison constitue un système minimum ?

Une unité centrale, une mémoire de programme, une mémoire de données et des périphériques
Une unité centrale, un bus d’adresses, une mémoire cache et un écran
Une mémoire de programme, une mémoire de données, une horloge et un clavier
Un microprocesseur, une mémoire vive, un compilateur et une imprimante

Une unité centrale, une mémoire de programme, une mémoire de données et des périphériques

Explication

Un système minimum associe une unité centrale contenant le microprocesseur, une mémoire principale organisée en mémoire de programme et mémoire de données, ainsi qu’un ou plusieurs périphériques. La présence d’un compilateur ou d’un périphérique particulier ne définit pas cette structure minimale.

12. Quel type de transfert le bus de données permet-il entre le microprocesseur et son environnement ?

Un transfert de signaux de sélection
Un transfert unidirectionnel d’adresses
Un transfert bidirectionnel de données
Un transfert de signaux d’horloge

Un transfert bidirectionnel de données

Explication

Le bus de données transporte les données dans les deux sens entre le microprocesseur et les autres composants. Le transport des adresses relève du bus d’adresses, tandis que la synchronisation et la commande relèvent du bus de contrôle.

13. Quel rôle remplit le bus de contrôle lors d’un échange avec la mémoire ?

Il fournit les adresses des cases mémoire à sélectionner
Il transporte les valeurs échangées entre le processeur et la mémoire
Il transmet les signaux de synchronisation et indique le sens du transfert
Il conserve le programme lorsque l’alimentation est interrompue

Il transmet les signaux de synchronisation et indique le sens du transfert

Explication

Le bus de contrôle transporte notamment les signaux de synchronisation ainsi que RD et WR, qui indiquent respectivement une lecture ou une écriture. Les données et les adresses circulent sur des bus distincts, et la conservation hors alimentation concerne la ROM.

14. Quelle différence caractérise les architectures de Von Neumann et Harvard ?

Von Neumann réserve la mémoire aux données, tandis que Harvard la réserve au programme
Von Neumann utilise des instructions complexes, tandis que Harvard utilise des instructions simples
Von Neumann partage l’espace mémoire, tandis que Harvard sépare programmes et données
Von Neumann sépare les mémoires, tandis que Harvard partage leur espace commun

Von Neumann partage l’espace mémoire, tandis que Harvard sépare programmes et données

Explication

Dans l’architecture de Von Neumann, le programme et les données occupent un espace mémoire commun. L’architecture Harvard leur attribue des espaces distincts, indépendamment de la complexité des instructions.

15. Quels éléments participent principalement au séquencement des instructions par l’unité de commande ?

Le compteur de programme, le décodeur d’instruction, la commande et l’horloge
Le compilateur, l’éditeur de liens, le chargeur et le programme objet
Le bus de données, le bus d’adresses, le bus de contrôle et les périphériques
L’unité arithmétique, l’accumulateur, les registres d’état et la mémoire vive

Le compteur de programme, le décodeur d’instruction, la commande et l’horloge

Explication

L’unité de commande séquence les instructions grâce au compteur de programme, au registre et décodeur d’instruction, au bloc logique de commande et à l’horloge. L’unité arithmétique et logique ainsi que l’accumulateur appartiennent plutôt à l’unité de traitement.

16. Quel ensemble décrit l’unité de traitement d’un microprocesseur ?

Le bus de données, le bus d’adresses et le bus de contrôle
La mémoire de programme, la mémoire de données et les périphériques
L’unité arithmétique et logique, l’accumulateur et les registres d’état
Le compteur de programme, l’horloge et le décodeur d’instruction

L’unité arithmétique et logique, l’accumulateur et les registres d’état

Explication

L’unité de traitement regroupe l’unité arithmétique et logique, l’accumulateur et les registres d’état qui contiennent les indicateurs des résultats. Le compteur de programme et le décodeur participent au fonctionnement de l’unité de commande.

17. Dans quel ordre général un microprocesseur traite-t-il une instruction ?

Chargement, décodage, exécution séquentielle, puis sauvegarde du résultat
Sauvegarde du résultat, exécution séquentielle, décodage, puis chargement
Exécution séquentielle, chargement, sauvegarde du résultat, puis décodage
Décodage, sauvegarde du résultat, chargement, puis exécution séquentielle

Chargement, décodage, exécution séquentielle, puis sauvegarde du résultat

Explication

Le cycle d’instruction commence par le chargement, se poursuit par le décodage et l’exécution séquentielle, puis se termine par la sauvegarde des résultats. Inverser ces étapes empêcherait l’instruction d’être interprétée avant son exécution.

18. Quelle caractéristique distingue principalement une architecture CISC d’une architecture RISC ?

CISC privilégie des instructions complexes, tandis que RISC privilégie des instructions simples et rapides
CISC privilégie des instructions simples, tandis que RISC privilégie des instructions complexes et longues
CISC sépare les mémoires, tandis que RISC partage un espace mémoire pour les données et le programme
CISC utilise des registres d’état, tandis que RISC fonctionne sans unité arithmétique et logique

CISC privilégie des instructions complexes, tandis que RISC privilégie des instructions simples et rapides

Explication

Une architecture CISC privilégie des instructions complexes, alors qu’une architecture RISC privilégie des instructions simples exécutées en très peu de cycles. La distinction ne porte pas sur la présence des registres ou de l’unité arithmétique et logique.

19. Quelle transformation réalise un compilateur dans la chaîne de production d’un programme ?

Il traduit le programme source en programme objet dans un langage machine intermédiaire
Il exécute directement le programme source dans la mémoire du processeur cible
Il sépare le code exécutable entre les sections de données initialisées et non initialisées
Il attribue les adresses finales aux modules objets pour produire le fichier exécutable

Il traduit le programme source en programme objet dans un langage machine intermédiaire

Explication

Le compilateur traduit le programme source en programme objet, généralement dans un langage machine intermédiaire. L’attribution des adresses et la construction du fichier exécutable relèvent de l’éditeur de liens.

20. Quelle opération est réalisée par l’éditeur de liens ?

Il traduit les instructions du programme source en langage machine intermédiaire
Il assigne des adresses aux objets des modules et construit le fichier exécutable
Il séquence les instructions pendant l’exécution du programme
Il réserve la section .bss aux données qui possèdent une valeur initiale

Il assigne des adresses aux objets des modules et construit le fichier exécutable

Explication

L’éditeur de liens attribue une adresse aux objets des différents modules et construit le fichier exécutable. La traduction du source en objet est effectuée auparavant par le compilateur.

21. Dans les TMS320F28x, quelle association entre sections et contenu est correcte ?

.text contient les données préinitialisées, .data les données non initialisées et .bss le code
.text contient le code, .data les données non initialisées et .bss les données préinitialisées
.text contient le code, .data les données préinitialisées et .bss les données non initialisées
.text contient les données non initialisées, .data le code et .bss les données préinitialisées

.text contient le code, .data les données préinitialisées et .bss les données non initialisées

Explication

Dans les TMS320F28x, la section .text contient le code exécutable, .data les données préinitialisées et .bss les données non initialisées. La confusion fréquente consiste à intervertir les rôles de .data et de .bss.

22. Quelles zones mémoire sont séparées dans l’architecture du TMS320F28335 ?

Les zones Code, RAM et Registres
Les zones Instruction, Pile et Accumulateur
Les zones Program, Data et I/O
Les zones UAL, Mémoire et Périphériques

Les zones Program, Data et I/O

Explication

L’architecture mémoire distingue les zones Program, Data et I/O. La zone Program correspond au code, tandis que la zone Data regroupe notamment la RAM et les périphériques internes.

23. Quel ensemble décrit l’unité centrale minimale du TMS320F28335 ?

Un multiplieur, six bus internes, une mémoire RAM et des registres de pilotage
Un accumulateur, des registres auxiliaires, une mémoire I/O et des registres à décalage
Une UAL, un accumulateur, un compteur de programme, un pointeur de pile, des registres pointeurs et des indicateurs
Une UAL, une mémoire de programme, des périphériques internes et des bus de données

Une UAL, un accumulateur, un compteur de programme, un pointeur de pile, des registres pointeurs et des indicateurs

Explication

La structure minimale comprend l’UAL, l’accumulateur, le compteur de programme, le pointeur de pile, les registres pointeurs et les registres d’indicateurs. Le multiplieur et les registres à décalage font partie des ajouts à cette structure de base.

24. Quel ajout distingue le TMS320F28335 d’une unité centrale minimale ?

Un multiplieur, des registres à décalage et des registres auxiliaires
Une mémoire Program, une mémoire Data et une interface I/O
Un compteur de programme, un pointeur de pile et une UAL
Des périphériques internes, des registres de pilotage et une mémoire RAM

Un multiplieur, des registres à décalage et des registres auxiliaires

Explication

Le TMS320F28335 enrichit la structure minimale par un multiplieur, des registres à décalage et des registres auxiliaires. Ces éléments facilitent notamment le parallélisme et l’adressage indirect.

25. À quelle date et dans quel contexte le langage C est-il né ?

En 1980, dans les laboratoires d’IBM, à partir des travaux de Dennis Ritchie
En 1975, dans les laboratoires de Microsoft, à partir des travaux de Brian Kernighan
En 1972, dans les laboratoires de Bell Telephone associés à AT&T, à partir des travaux de Brian
En 1969, dans les laboratoires de Xerox, à partir des travaux de Ken Thompson

En 1972, dans les laboratoires de Bell Telephone associés à AT&T, à partir des travaux de Brian

Explication

Le langage C est présenté comme étant né en 1972 dans les laboratoires de Bell Telephone associés à AT&T, à partir des travaux de Brian. L’assembleur se distingue par sa proximité plus directe avec le matériel.

26. Quelle caractéristique définit le mieux le langage C ?

C’est un langage orienté objet dont le fonctionnement repose principalement sur des classes et des héritages
C’est un langage de haut niveau qui permet aussi de contrôler le matériel et d’inclure de l’assembleur
C’est un langage interprété qui masque les ressources matérielles derrière une machine virtuelle
C’est un langage de bas niveau entièrement lié à un processeur et dépourvu d’instructions assembleur

C’est un langage de haut niveau qui permet aussi de contrôler le matériel et d’inclure de l’assembleur

Explication

Le C est un langage de haut niveau qui conserve des possibilités de contrôle du matériel, notamment par l’inclusion d’instructions assembleur. Il reste toutefois plus portable que l’assembleur, qui dépend davantage du processeur.

27. Quel rôle joue le décalage à gauche avec des bus de 16 bits ?

Il permet de charger la partie basse d’une donnée au format 16 bits
Il permet de convertir une donnée de 32 bits en deux instructions de 8 bits
Il permet de charger la partie haute d’une donnée au format 32 bits
Il permet de remplacer les lectures de données par des écritures de programme

Il permet de charger la partie haute d’une donnée au format 32 bits

Explication

Avec des bus de 16 bits, le décalage à gauche sert à charger la partie haute d’une donnée représentée sur 32 bits. Il ne concerne donc pas la conversion en octets ni le remplacement des opérations de lecture.

28. Quel est le rôle principal des registres auxiliaires du DSP ?

Mémoriser les indicateurs produits par l’unité arithmétique et logique
Transporter les instructions depuis la mémoire de programme vers l’unité centrale
Effectuer le déplacement des bits dans les données manipulées par le processeur
Accéder aux adressages indirects en assembleur et aux pointeurs en langage C

Accéder aux adressages indirects en assembleur et aux pointeurs en langage C

Explication

Les registres auxiliaires servent à gérer les adressages indirects en assembleur et les pointeurs en langage C. Le déplacement des bits relève plutôt des registres à décalage.

29. Quelle distinction caractérise le mieux le langage C par rapport aux langages de haut et de bas niveau ?

Il privilégie la simplicité d’utilisation sans accès aux ressources matérielles
Il offre une relative facilité d’utilisation tout en restant proche du matériel
Il propose une abstraction complète qui masque le fonctionnement du processeur
Il exige une manipulation matérielle plus directe que le langage assembleur

Il offre une relative facilité d’utilisation tout en restant proche du matériel

Explication

Le C est considéré comme un langage de haut niveau parce qu’il est relativement facile à utiliser, tout en restant proche du matériel. Le langage de bas niveau se distingue plutôt par un contrôle matériel plus direct et une utilisation plus difficile.

30. Quelle affirmation compare correctement le langage C et le langage C++ ?

Le C++ remplace le C par une syntaxe destinée uniquement aux systèmes d’exploitation
Le C++ ressemble fortement au C et ajoute notamment une autre manière de programmer
Le C++ supprime les instructions proches du matériel présentes dans le langage C
Le C diffère totalement du C++ parce qu’ils utilisent des processeurs différents

Le C++ ressemble fortement au C et ajoute notamment une autre manière de programmer

Explication

Le C++ est très similaire au C, mais il apporte notamment une autre manière de programmer. Les deux langages ne sont donc ni totalement différents ni associés à des processeurs distincts.

31. Dans quel ordre général les étapes de création d’un exécutable en C se déroulent-elles ?

Édition des sources, assemblage par le linker, préprocesseur, puis compilation en objets
Compilation en objets, édition des sources, préprocesseur, puis exécution des bibliothèques
Préprocesseur, édition des sources, assemblage par le linker, puis compilation en objets
Édition des sources, préprocesseur, compilation en objets, puis assemblage par le linker

Édition des sources, préprocesseur, compilation en objets, puis assemblage par le linker

Explication

La chaîne commence par l’édition des fichiers source, suivie du prétraitement, de la compilation en fichiers objets, puis de l’assemblage final avec les bibliothèques par le linker. Le compilateur produit donc des objets, tandis que le linker construit l’exécutable.

32. Que réalise principalement la directive #include dans un programme C ?

Elle transforme directement les fichiers source en un exécutable lié aux bibliothèques
Elle remplace un identifiant par une valeur avant la compilation du programme
Elle lance le débogueur afin de vérifier les fonctions déclarées dans le programme
Elle insère le contenu d’un fichier d’en-tête contenant notamment des prototypes

Elle insère le contenu d’un fichier d’en-tête contenant notamment des prototypes

Explication

La directive #include insère dans le fichier source le contenu d’un fichier d’en-tête .h, qui peut notamment contenir des prototypes de fonctions. La substitution d’un identifiant relève plutôt de #define, tandis que la compilation et le débogage sont d’autres étapes ou outils.

33. Quel est l’effet principal de la directive #define en C ?

Elle insère le contenu d’un fichier d’en-tête dans le programme en préparation
Elle convertit les instructions du programme en fichiers objets directement exécutables
Elle associe un nom à une valeur ou définit une macro dans le code source
Elle relie les fonctions compilées aux bibliothèques nécessaires à l’exécution

Elle associe un nom à une valeur ou définit une macro dans le code source

Explication

La directive #define effectue une substitution de nom par une valeur et peut également créer une macro. L’inclusion d’en-têtes correspond à #include, tandis que la production des objets et l’édition de liens appartiennent à la chaîne de compilation.

34. Comment une variable est-elle définie en langage C ?

C’est une valeur stockée à une adresse mémoire et repérée par un nom
C’est une bibliothèque liée au programme pour fournir des fonctions supplémentaires
C’est une instruction exécutée par le processeur sans emplacement mémoire associé
C’est un fichier d’en-tête contenant les prototypes utilisés par le programme

C’est une valeur stockée à une adresse mémoire et repérée par un nom

Explication

Une variable désigne une valeur conservée en mémoire à une adresse et identifiée par un nom. Un fichier d’en-tête ou une bibliothèque joue un rôle différent et ne constitue pas une variable.

35. Laquelle de ces déclarations respecte les règles de nommage des variables en C ?

int
température
compte_total2
2e_compte

compte_total2

Explication

Un nom de variable peut contenir des lettres, des chiffres et des underscores, comme dans compte_total2, sans accent ni mot réservé. température contient un accent, 2e_compte commence par un chiffre et int est un mot réservé.

36. Pour un tableau déclaré int tableau[taille], quel élément correspond à la dernière case valide ?

tableau[1]
tableau[taille+1]
tableau[taille-1]
tableau[taille]

tableau[taille-1]

Explication

Un tableau de taille cases possède des indices allant de 0 à taille-1 ; sa dernière case est donc tableau[taille-1]. L’indice tableau[taille] se trouve juste après les limites du tableau.

37. Dans une condition en C, comment les valeurs sont-elles interprétées ?

Les valeurs entières doivent être converties en booléens avant toute condition
Seules les valeurs égales à un sont considérées comme vraies
La valeur nulle est fausse et toute valeur non nulle est vraie
La valeur nulle est vraie et toute valeur non nulle est fausse

La valeur nulle est fausse et toute valeur non nulle est vraie

Explication

Le langage C interprète zéro comme faux et toute valeur différente de zéro comme vraie dans une condition. Ainsi, une condition ne se limite pas à tester l’égalité avec la valeur un.

38. Quel opérateur faut-il utiliser pour vérifier que deux variables ont la même valeur en langage C ?

<=
!=
=
==

==

Explication

L’opérateur == compare deux valeurs afin de tester leur égalité. L’opérateur = réalise une affectation et modifie la variable située à gauche.

39. Quelle structure permet de sélectionner une branche parmi plusieurs cas selon la valeur d’une expression ?

switch
for
do-while
while

switch

Explication

La structure switch choisit une branche parmi plusieurs cas possibles. Une boucle while, en revanche, sert à répéter des instructions tant qu’une condition reste vraie.

40. Que se passe-t-il avec une boucle while lorsque sa condition est fausse dès le départ ?

La boucle s’exécute jusqu’à une instruction return
Son corps n’est pas exécuté
Son corps est exécuté une première fois
La condition est remplacée par true

Son corps n’est pas exécuté

Explication

Une boucle while teste sa condition avant d’exécuter son corps, donc elle peut ne produire aucune itération. La boucle do-while se distingue précisément parce qu’elle exécute d’abord son corps.

41. Quelle est la fonction de l’initialisation, de la condition et de l’incrémentation dans une boucle for ?

Elles représentent respectivement la sortie, le corps et la valeur renvoyée
Elles remplacent respectivement une condition, une fonction et une déclaration
Elles organisent respectivement le départ, la poursuite et la progression de la boucle
Elles servent respectivement à comparer, afficher et stocker les résultats

Elles organisent respectivement le départ, la poursuite et la progression de la boucle

Explication

La structure for rassemble l’initialisation, le test de continuation et l’incrémentation dans un même en-tête. Cette organisation ne correspond pas à une définition de fonction ni à une instruction d’affichage.

42. Quels éléments caractérisent la déclaration d’une fonction ?

Un type de retour, un nom et des paramètres
Une adresse mémoire, une boucle et une constante
Une valeur affectée, un pointeur et une comparaison
Un tableau, une condition et une instruction switch

Un type de retour, un nom et des paramètres

Explication

Une fonction est déclarée avec un type de retour, un nom et des paramètres indiquant les valeurs qu’elle reçoit. Le type de retour décrit la valeur renvoyée, tandis que les paramètres décrivent les données reçues.

43. Que fait l’instruction return dans une fonction qui renvoie une valeur ?

Elle recopie les paramètres dans le programme appelant
Elle réserve une nouvelle adresse pour chaque paramètre
Elle relance la fonction avec une condition différente
Elle renvoie une valeur et interrompt l’exécution de la fonction

Elle renvoie une valeur et interrompt l’exécution de la fonction

Explication

L’instruction return fournit la valeur de retour et arrête l’exécution de la fonction. La transmission des paramètres et la réservation d’adresses relèvent d’autres mécanismes du langage.

44. Dans quelle situation la transmission par adresse permet-elle de modifier directement une variable appelante ?

Lorsqu’un pointeur vers cette variable est transmis à la fonction
Lorsqu’une copie de sa valeur est transmise à la fonction
Lorsqu’une variable locale est créée dans la fonction
Lorsqu’un type de retour est déclaré sans paramètre

Lorsqu’un pointeur vers cette variable est transmis à la fonction

Explication

La transmission d’une adresse par pointeur permet à la fonction d’accéder directement à la variable du programme appelant et de la modifier. Une transmission par valeur ne fournit qu’une copie du paramètre.

45. Pour une variable A et un pointeur pointeurA contenant son adresse, que désigne l’expression *pointeurA ?

La valeur de la variable située à cette adresse
Le nom de la variable utilisée comme paramètre
L’adresse mémoire de la variable A
La valeur du pointeur lui-même

La valeur de la variable située à cette adresse

Explication

L’opérateur * permet d’accéder à la valeur stockée à l’adresse contenue dans le pointeur. L’expression &A donne l’adresse de A, tandis que pointeurA désigne la valeur du pointeur.

46. Comment le tableau mesures est-il rempli dans la procédure de collecte des mesures ?

En additionnant des valeurs déjà présentes avant l’appel à conversionADC
En stockant 50 valeurs positives codées sur 10 bits produites par conversionADC
En stockant 10 valeurs signées produites par une fonction de moyenne
En enregistrant 50 adresses mémoire obtenues par rechercheMini

En stockant 50 valeurs positives codées sur 10 bits produites par conversionADC

Explication

Le remplissage appelle conversionADC pour produire 50 valeurs positives codées sur 10 bits, puis les stocke dans mesures. La moyenne intervient après ce remplissage et ne produit pas les mesures elles-mêmes.

47. Quelle opération permet de calculer la moyenne des valeurs contenues dans mesures ?

Convertir chaque valeur en adresse avant de les additionner
Additionner les 50 valeurs puis renvoyer leur valeur moyenne
Parcourir le tableau et renvoyer séparément les deux extrêmes
Comparer chaque valeur à la précédente puis conserver la plus grande

Additionner les 50 valeurs puis renvoyer leur valeur moyenne

Explication

Le calcul de la moyenne commence par l’addition des 50 valeurs de mesures, puis renvoie la moyenne dans une variable du programme principal. La conservation de la plus grande valeur correspond à une recherche d’extrême, pas à une moyenne.

48. Quelle association entre les fonctions de recherche et les résultats renvoyés est correcte ?

rechercheMini renvoie le maximum et rechercheMaxi renvoie le minimum
Les deux fonctions renvoient simultanément les adresses des extrêmes
rechercheMini renvoie le minimum et rechercheMaxi renvoie le maximum
Les deux fonctions renvoient la moyenne après parcours du tableau

rechercheMini renvoie le minimum et rechercheMaxi renvoie le maximum

Explication

La recherche des extrêmes distingue la valeur minimale, renvoyée par rechercheMini, de la valeur maximale, renvoyée par rechercheMaxi. Ces fonctions ne calculent pas la moyenne et leurs rôles ne sont pas inversés.

Révisez avec les flashcards

Mémorisez les réponses avec 80 flashcards sur Systèmes à microprocesseur et DSP.

Quels sont les objectifs d'IF40 ?

Développer les compétences pour systèmes microprocesseur, microcontrôleur et DSP.

Quel microcontrôleur est maîtrisé dans les applications de contrôle du génie électrique ?

Le microcontrôleur est maîtrisé dans les applications de contrôle du génie électrique.

Pour quoi est utilisé le TMS320F28335 ?

Pour commander les variateurs de vitesse de machines tournantes.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Systèmes à microprocesseur et DSP.

Voir la fiche →

Cours similaires

Crée tes propres QCM

Importe ton cours et l'IA génère des QCM avec corrections en 30 secondes.

Générateur de QCM