Vous êtes sur la page 1sur 9

Exercice langage C sur les notions de base

Exercice 1

Modifiez le programme 'hello world' de façon à obtenir le même résultat sur l'écran en utilisant plusieurs fois la
fonction printf.

Exercice 2

Expérimentez avec les séquences d'échappement que vous trouvez dans le tableau ci-dessous et complétez les
colonnes vides.

séq. d'échapp. descr. anglaise descr. française


\n new line passage à la ligne
\t
\b
\r
\"
\\
\0
\a

Exercice 3

Ci-dessous, vous trouvez un simple programme en C. Essayez de distinguer et de classifier autant que possible
les éléments qui composent ce programme (commentaires, variables, déclarations, instructions, etc.)

1
2
3 #include <stdio.h>
4 /* Ce programme calcule la somme de 4 nombres entiers
5 introduits au clavier.
6 */
7 main()
8 {
9 int NOMBRE, SOMME, COMPTEUR;
10
11 /* Initialisation des variables */
12 SOMME = 0;
13 COMPTEUR = 0;
14 /* Lecture des données */
15 while (COMPTEUR < 4)
16 {
17 /* Lire la valeur du nombre suivant */
18 printf("Entrez un nombre entier :");
19 scanf("%i", &NOMBRE);
20 /* Ajouter le nombre au résultat */
21 SOMME += NOMBRE;
22 /* Incrémenter le compteur */
23 COMPTEUR++;
24 }
25 /* Impression du résultat */
26 printf("La somme est: %i \n", SOMME);
return 0;
}

- Commande au compilateur: #include<stdio.h>

pour pouvoir utiliser les fonctions printf et scanf.

- Fonction main

n'a pas de paramètres (la liste des paramètres est vide) et fournit par défaut un
résultat du type int (à l'environnement).

- Commentaires (mis en italique).

- Variables utilisées:

NOMBRE, SOMME, COMPTEUR déclarées comme entiers (type int).

- Fonctions utilisées:
printf, scanf de la bibliothèque <stdio>.

- Opérateurs:

+=

opérateur arithmétique d'affectation


++ opérateur arithmétique
< opérateur de comparaison
= opérateur d'affectation

- Structure de contrôle: while(<condition>) { ... }

répète le bloc d'instructions aussi longtemps que la <condition> est remplie.

- L'instruction return 0;

retourne la valeur zéro comme code d'erreur à l'environnement après l'exécution du


programme

Ajoutes :

- la fonction scanf est appelée avec deux paramètres:

le format de saisie de la donnée (ici: "%i" pour lire un entier du type int)

l'adresse de la variable destination (ici: l'adresse de NOMBRE).

- la fonction printf est appelée avec un respectivement avec deux paramètres:

le premier paramètre est une chaîne de caractères, qui peut contenir une
information pour le format d'affichage des variables indiquées dans la suite (ici:
"%i" pour afficher la valeur du type int contenue dans SOMME).
les paramètres qui suivent la chaîne de caractères indiquent les noms des variables
à afficher. (ici: SOMME)

Voici une des solutions possibles:

1
2 #include <stdio.h>
3 /* Notre premier programme en C */
4 main()
5 {
6 printf("hello, ");
7 printf("world");
8 printf("\n");
9 return 0;
10 }
séq. d'échapp.
descr. anglaise descr. française
\n new line passage à la ligne
\t tabulator tabulation
\b back curseur arrière
\r return retour au début de la ligne
\" quotation marks guillemets
\\ back-slash trait oblique
\0 NUL fin de chaîne
\a attention (bell) signal acoustique

Exercice langage C les types rationnels

Quel(s) type(s) numérique(s) pouvez-vous utiliser pour les groupes de nombres suivants? Dressez un tableau et
marquez le choix le plus économique:

(1) 1 12 4 0 -125
(2) 1 12 -4 0 250
(3) 1 12 4 0 250
(4) 1 12 -4 0.5 125
(5) -220 32000 0
(6) -3000005.000000001
(7) 410 50000 2
(8) 410 50000 -2
(9) 3.14159265 1015
(10) 2*107 10000001
(11) 2*10-7 10000001
(12) -1.05*1050 0.0001
(13) 305.122212 0 -12

unsigned
signed
No: char short int long char short int long float double long double

1 !X! X X X X X X

2 !X! !X! X X X X

3 X X X !X! X X X X X X

4 !X! X X

5 !X! !X! X X X X

6 !X!
7 X !X! !X! X X X X

8 !X! X X X

9 !X! X

10 !X! X X X

11 !X! X

12 !X! X

13 !X! X

X choix possible
!X! meilleur choix

Exercice langage C déclaration des variables simples

Traduisez les déclarations suivantes en C, sachant que vous travaillerez dans les ensembles de nombres
indiqués. Choisissez les types les plus économiques, sans perdre en précision.

entier COMPTEUR {0 ,..., 300}


(1)
(2) entier X,Y {-120 ,..., 100}

(3) entier MESURE {-10 ,..., 104}

(4) réel SURFACE1 {0.5 ,..., 150075}

(5) réel SURFACE2 {-12 ,..., 1500750.5}

(6) entier N1 {0 ,..., 210}

(7) entier N2 {-47 ,..., 47}

(8) entier N3 {0 ,..., 326}

(9) entier N4 {-1280 ,..., 1285}

{vrai, faux}

(10) booléen TROUVE

Solution:
entier COMPTEUR {0 ,..., 300}
(1)
int COMPTEUR;
(2) entier X,Y {-120 ,..., 100}

char X,Y;

(3) entier MESURE {-10 ,..., 104}

int MESURE;

(4) réel SURFACE1 {0.5 ,..., 150075}

float SURFACE1; 6 positions significatives

(5) réel SURFACE2 {-12 ,..., 1500750.5}

double SURFACE2; 8 positions significatives

(6) entier N1 {0 ,..., 210} = {0 ,..., 1024}

int N1;

(7) entier N2 {-47 ,..., 47} = {-16384 ,..., 16384}

int N2;

(8) entier N3 {0 ,..., 326} = {0 ,..., 1 073 741 824}

long N3;

(9) entier N4 {-1280 ,..., 1285} = {-1 ,..., 3.4*1010}

double N4; 11 positions significatives

(10) booléen TROUVE {vrai, faux}

int TROUVE; par convention

Exercice langage C lecture formatée de données

Exercice 4.2

En vous référant aux exemples du chapitre 4.2, écrivez un programme qui lit la date du clavier et écrit les
données ainsi que le nombre de données correctement reçues sur l'écran.

Exemple:
Introduisez la date (jour mois année): 11 11 1991

données reçues : 3
jour : 11
mois : 11
année : 1991
* Testez les réactions du programme à vos entrées. Essayez d'introduire des nombres de différents formats et
différentes grandeurs.

* Changez la partie format du programme de façon à séparer les différentes données par le symbole '-' .

Solution Exercice 4.2

#include <stdio.h>
main()
{
int JOUR, MOIS, ANNEE, RECU;
printf("Introduisez la date (JOUR, MOIS, ANNéE) : ");
RECU=scanf("%i %i %i", &JOUR, &MOIS, &ANNEE);
printf("\ndonnées reçues : %i\njour : %i\nmois :
%i\nannee : %i\n", RECU, JOUR, MOIS, ANNEE);
return 0;
}
Changez la partie format du programme de façon à séparer les différentes données par le symbole '-'.

. . .
RECU=scanf("%i-%i-%i", &JOUR, &MOIS, &ANNEE);
. . .
Exercice langage C lecture d'un caractère

Exercice 4.3

Ecrire un programme qui lit un caractère au clavier et affiche le caractère ainsi que son code numérique:

a) en employant getchar et printf,


b) en employant getch et printf.

Solution Exercice 4.3


Ecrire un programme qui lit un caractère au clavier et affiche le caractère ainsi que son code numérique :

a) en employant getchar et printf,


#include <stdio.h>
main()
{
int C;
printf("Introduire un caractère suivi de 'Enter'\n");
C = getchar();
printf("Le caractère %c a le code ASCII %d\n", C, C);
return 0;
}
b) en employant getch et printf.

#include <stdio.h>
#include <conio.h>
main()
{
int C;
printf("Introduire un caractère \n");
C = getch();
printf("Le caractère %c a le code ASCII %d\n", C, C);
return 0;
}