Exercice langage C corrigé plusieurs fonctions, tutoriel & guide de travaux pratiques en pdf.
1. Soit la fonction C suivante :
int decimale( char t[10], int n) { int exposant=0; int puissance=1; int j; int q = n; if ( n == 0 ) { t[0]=’0’; return 1; }else { while ( puissance<= n ) { puissance = puissance? 10; exposant = exposant + 1; }for (j=0; j<exposant; j = j + 1) { t[j] = ’0’ + (q % 10); q=q/10; }return (exposant); } }
(a) Quels sont les arguments de la fonction? Identi?ez leurs rôles.
(b) Quelle est la spéci?cité du passage de tableau comme paramètre d’une fonction.
(c) Quel est le résultat de la fonction? Quelle est la signi?cation du contenu du tableaut?
(d) Donnez la signi?cation et le rôle des variables suivantes :q ,puissance et exposant.
(e) Complétez l’écriture de la fonction avec des commentaires a?n de la rendre claire.
2. (a) Ecrivez une fonction imprime(t,i) qui a?che sur une même ligne
Les i premiers caractères du tableau t. Son prototype est :
int imprime ( char t[], int i);
(b) A l’aide des fonctions décimale (t,n) et imprime(t,i), concevez un programme C qui demande à l’utilisateur de saisir un entier positif et qui affche ses chiffres (dans son écriture décimale) dans l’ordre inverse.
Exemple d’exécution :
Entrez un entier positif : 12345
54321
(c) Modiffiez la fonction décimale(t,n) pour écrire une fonction hexadécimale(t,n). Son prototype est :
int hexadécimale ( char t[], int i);
Ses arguments sont, un tableau de char de taille 10, et un entier Positif n. Elle place dans t les caractères chiffres de son écriture en base 16 et retourne le nombre de chiffres dans son ecriture en base 16.
Rappel : Les caractères chiffres en base 16 sont :
’0’, ’1’, ’2’, ’3’, ’4’, ’5’, ’6’, ’7’, ’8’, ’9’, ’A’ (10), ’B’ (11), ’C’ (12),
’D’ (13), ’E’ (14), ’F’ (15).
Exemple d’exécution :
Entrez un entier positif : 3081
90C
La correction exercice langage C (voir page 2 en bas)