Formations à l'informatique et à l'électronique

Auteur : SD
Créé le : 12-12-2020

Exercices de programmation en langage C (les tableaux)

Exercice 1

Déclarer un tableau d'entiers de 10 éléments et l'initialiser avec les nombres 1 à 10.

Afficher le tableau en séparant les valeurs par des virgules.

Voir le corrigé

Exercice 2

Déclarer un tableau d'entiers de 100 éléments et l'initialiser avec les nombres 0 à 99 (utiliser une boucle !).

Afficher le tableau en séparant les valeurs par des virgules (limiter à 10 valeurs par lignes).

Résultat attendu :

   0,  1,  2,  3,  4,  5,  6,  7,  8,  9
  10, 11, 12, 13, 14, 15, 16, 17, 18, 19
  20, 21, 22, 23, 24, 25, 26, 27, 28, 29
  30, 31, 32, 33, 34, 35, 36, 37, 38, 39
  40, 41, 42, 43, 44, 45, 46, 47, 48, 49
  50, 51, 52, 53, 54, 55, 56, 57, 58, 59
  60, 61, 62, 63, 64, 65, 66, 67, 68, 69
  70, 71, 72, 73, 74, 75, 76, 77, 78, 79
  80, 81, 82, 83, 84, 85, 86, 87, 88, 89
  90, 91, 92, 93, 94, 95, 96, 97, 98, 99 
Voir le corrigé

Exercice 3

Soient deux tableaux de nombres réels tSource et tDestination de 10 éléments chacun.

Écrire un programme permettant de recopier, dans tDestination, tous les éléments positifs de tSource, en complétant éventuellement tDestination par des zéros (initialiser tSource avec des valeurs au moment de sa déclaration).

Afficher les deux tableaux.

Voir le corrigé

Exercice 4

Écrire un programme qui demande 10 nombres entiers à l’utilisateur, les range dans un tableau avant d’en rechercher le plus grand et le plus petit.

Afficher le tableau, ainsi que le nombre le plus petit et le plus grand.

Voir le corrigé

Exercice 5

Demander à l’utilisateur de saisir des notes (entre 0 et 20) et lui expliquer qu’une valeur hors de cet intervalle arrêtera la saisie.

  1. Saisir les notes et les mémoriser dans un tableau
  2. Compter les notes saisies et afficher leur nombre
  3. Calculer et afficher la moyenne
  4. Comparer chaque note à la moyenne et ajouter, dans l’affichage précédent "égal", "inférieur" ou "supérieur à la moyenne"
  5. Compter et afficher combien il y a de notes supérieures à la moyenne
  6. Dans le tableau de notes, chercher la note la plus petite. Afficher cette note et sa position dans le tableau
  7. Même chose pour la note la plus grande.

Le programme affichera un message d'erreur si le nombre de note saisi est 0.

Voir le corrigé

Exercice 6

Nombre de caractères dans une chaîne

  1. Demander à l’utilisateur de saisir son nom
  2. Compter les caractères et afficher leur nombre

Rappel : un tableau de caractère (chaine de caractères), se termine par le caractère spécial : '\0'.

Voir le corrigé

Exercice 7

Saisir un mot et l’afficher dans l’ordre inversé.

Voir le corrigé

Exercice 8

Localisation d’une lettre

  1. Initialiser un tableau avec le texte suivant : "Quel sinistre mot !"
  2. Trouver et afficher à quelle position se trouve la lettre 'm'
  3. Même chose pour la première lettre 's'
  4. Mettre la lettre 'm' à la place de 's' et vice versa
  5. Afficher le texte ainsi modifié
  6. Demander à l’utilisateur de saisir une lettre quelconque
  7. Chercher cette lettre dans le texte et afficher sa position ou un message d’erreur si elle est absente
Voir le corrigé

Exercice 9

Indice de masse corporelle

On imagine une visite médicale en deux parties où les patients se présentent d’abord tous pour la mesure de leur taille, puis repassent, dans le même ordre, au pesage.

  1. Enregistrer dans un tableau la taille t en mètres de tous les patients qui se présentent (arrêt par la saisie d’un nombre <= 0).
  2. Après la saisie, afficher le nombre total de patients.
  3. Pour chaque patient précédemment mesuré, enregistrer la masse m en kilogrammes dans un second tableau.
  4. Calculer et afficher la taille moyenne et le poids moyen des patients.
  5. Pour chaque patient, calculer l’indice de masse corporelle : IMC = m/t² et afficher :
    • "pas assez" si IMC < 18.5,
    • "trop" si IMC > 25,
    • ou "normal" sinon.
Voir le corrigé

Exercice 10

Vous devez réaliser la transmission d'une chaîne de caractères sous forme d'une trame selon des règles et un format précis.

La chaîne de caractère peut contenir uniquement les caractères suivants :

En cas de non respect de cette règle, l'utilisateur sera invité à recommencer la saisie.

En plus de la chaîne saisie par l'utilisateur, il faudra transmettre une somme de contrôle (checksum) qui permettra au récepteur de vérifier l'intégrité de la trame reçue.

Le checksum est la somme binaire, modulo 65536, de tous les caractères saisis. Le checksum est codé sur 2 octets selon le format big endian (octet de poids fort en premier). Il sera placé à la fin de la trame.

Le premier octet sera le caractère spécial STX (Start of TeXte), valeur 0x02.

Il sera suivi du nombre de caractères saisis par l'utilisateur sur 2 octets au format big endian

Le dernier octet sera le caractère spécial ETX (End of TeXte), valeur 0x03.

Réaliser le programme qui :

  1. Permet à l'utilisateur de saisir la chaîne de caractères
  2. Calcul le checksum
  3. Affiche la trame à transmettre en hexadécimal (Exemple si l'utilisateur à saisie "Bonjour") :
Trame à tranmettre : 0x02 0x00 0x07 0x42 0x6F 0x6E 0x6A 0x6F 0x75 0x72 0x02 0xDF 0x03

Remarque : Pour afficher une valeur en hexadécimal avec printf, utiliser le format "%X"

Voir le corrigé

Articles connexes


Vous avez apprécié cet article ? Partagez le !

Article connexe : Les structures algorithmiques de base