Langage C - Travaux Dirigés n° 6

IUP Mathématiques-Informatique


Exercice n° 1 (Échange de deux caractères)

Écrire une fonction swapchar qui échange les contenus de deux variables de type char.

Exercice n° 2 (Tri d'une chaîne)

Écrire une fonction strsort qui trie par ordre alphabétique les caractères d'une chaîne. Écrire une première version avec des indices entiers puis écrire une nouvelle version qui utilise des pointeurs.

Exercice n° 3 (Comparaison de chaînes)

Réécrire la fonction strcomp en utilisant des pointeurs pour parcourir les chaînes au lieu d'entiers pour indexer les caractères.

Exercice n° 4 (Argument de la ligne de commande)

Le prototype de la fonction main est

  int main(int argc, char* argv[])
  {
    ...
  }
  
Le premier paramètre argc est un entier qui donne le nombre de chaînes passées en argument à la commande. Le deuxième paramètre argv est un tableau de pointeur dont la taille est donnée par argc. Chacun des éléments argv[i] du tableau argv contient l'adresse d'une des chaînes de caractères. Écrire un programme qui se contente d'afficher ligne par ligne chacun des arguments.

Exercice n° 5 (Tri lexicographique de chaînes)

Écrire une fonction arraysort qui trie par ordre lexicographique un tableau de chaînes de caractères. Il est possible d'utiliser la fonction strcmp de la librairie stdio.h ou la fonction strcomp écrite à la séance précédente. Modifier le programme de l'exercice précédent pour qu'il trie les chaînes passées en argument avant de les afficher.

Exercice n° 6

Qu'affiche le programme suivant :

  #include <stdio.h>

  int main(void)
  {
    const int n = 10;
    int T[n];
    int i,j;

    for (i = 0; i < n; i++)
      T[i] = 0;
    T[1] = T[2] = 1;

    for (j = 0; j < 3; j++)
      for (i = 1; i < n; i++)
	T[i] = T[i] + T[i-1];

     for (i = 0; i < n; i++)
       printf("%d ", T[i]);

    return 0;
  }