« Exercices en langage C/Pointeurs » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
MasterMatt (discussion | contributions)
mAucun résumé des modifications
Tavernierbot (discussion | contributions)
m Robot : Changement de type cosmétique
Ligne 3 : Ligne 3 :
Soit un texte donné par une chaîne de caractères. Le but est de compter le nombre d'occurrences de chaque lettre sans distinction entre minuscules et majuscules.
Soit un texte donné par une chaîne de caractères. Le but est de compter le nombre d'occurrences de chaque lettre sans distinction entre minuscules et majuscules.


==Exercice 1==
== Exercice 1 ==
===Question 1===
=== Question 1 ===
Déclarer le texte comme un tableau statique initialisé par une chaîne de caractères constante, un tableau d'entiers statique pour compter les occurrences dont la taille est fixée par une constante et un pointeur pour parcourir le texte.
Déclarer le texte comme un tableau statique initialisé par une chaîne de caractères constante, un tableau d'entiers statique pour compter les occurrences dont la taille est fixée par une constante et un pointeur pour parcourir le texte.


Ligne 24 : Ligne 24 :
}}
}}


===Question 2===
=== Question 2 ===
Initialiser le vecteur d'entiers avec un parcours par indice.
Initialiser le vecteur d'entiers avec un parcours par indice.
{{Boîte déroulante|titre=Solution|contenu =
{{Boîte déroulante|titre=Solution|contenu =
Ligne 34 : Ligne 34 :
}}
}}


===Question 3===
=== Question 3 ===
Compter les occurrences en utilisant la conversion entre le type char et le type int (la conversion d'un caractère donne son code dans le standard américain).
Compter les occurrences en utilisant la conversion entre le type char et le type int (la conversion d'un caractère donne son code dans le standard américain).
{{Boîte déroulante|titre=Solution|contenu =
{{Boîte déroulante|titre=Solution|contenu =
Ligne 52 : Ligne 52 :
}}
}}


===Question 4===
=== Question 4 ===
Afficher le résultat sur la sortie standard.
Afficher le résultat sur la sortie standard.
{{Boîte déroulante|titre=Solution|contenu =
{{Boîte déroulante|titre=Solution|contenu =
Ligne 67 : Ligne 67 :
}}
}}


==Exercice 2==
== Exercice 2 ==
===Pointeurs et références===
=== Pointeurs et références ===
Donner et expliquer le résultat de l'exécution du programme suivant :
Donner et expliquer le résultat de l'exécution du programme suivant :
<source lang="C">
<source lang="C">

Version du 3 décembre 2007 à 00:08

Soit un texte donné par une chaîne de caractères. Le but est de compter le nombre d'occurrences de chaque lettre sans distinction entre minuscules et majuscules.

Exercice 1

Question 1

Déclarer le texte comme un tableau statique initialisé par une chaîne de caractères constante, un tableau d'entiers statique pour compter les occurrences dont la taille est fixée par une constante et un pointeur pour parcourir le texte.

Question 2

Initialiser le vecteur d'entiers avec un parcours par indice.

Question 3

Compter les occurrences en utilisant la conversion entre le type char et le type int (la conversion d'un caractère donne son code dans le standard américain).

Question 4

Afficher le résultat sur la sortie standard.

Exercice 2

Pointeurs et références

Donner et expliquer le résultat de l'exécution du programme suivant :

#include <stdio.h>
#define taille_max 5

void parcours(int *tab){
  int *q=tab;
  do {
    printf("%d:%d\n", q-tab, *q-*tab);
  }
  while (++q-tab < taille_max);
}


void bizarre(int **copie, int *source){
  *copie=source;
}

int main(void){

  int chose[taille_max] = {1,3,2,4,5}, *truc;
  printf("chose : \n");
  parcours(chose);
  bizarre(&truc, chose);
  printf("truc : \n");
  parcours(truc);

  return 0;
}