[PDF] Programmation en C – Exercices



Previous PDF Next PDF







LANGAGE C Exercices corrigés 1

LANGAGE C Exercices corrigés 1 TP1 Exercice 1 : Ecrire un programme qui lit un caractère au clavier et affiche le caractère ainsi que son code



Programmation C Corrige du TD#7: Structures

Programmation C Corrige du TD#7: Structures----- /* Exercice 1 1 Définition de nom de type Définir un type Date pour des variables formées d’un numéro de jour



Laboratoire d’Analyse et de Modélisation de Systèmes d’Aide à

½¿¾ À Á ÂVÃ^ ÄÆÅǾ ÈdÉ ÊÌËdÂ Ä ºÎÍoÏbÐÆÏÒÑJÍ ÓÔÍ Õ Ü"Ý Þ ß à ßÎáãâ á«ä «å áxæ ç è «å á«æéà à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à àêß&ë ì



Alexandre Mesl´e 7 f´evrier 2012

Sauvegardez ce fichier sous le nom helloWorld c Dans le menu Ex´ecuter, cliquez sur Compiler Remar-quez que la compilation a produit un fichier helloWorld exe Vous avez deux fa¸cons de l’ex´ecuter : – double-cliquez directement sur helloWorld exe – Dans le menu Ex´ecuter, cliquez sur ex´ecuter 1 1 3 Structure d’un programme C



Programmation en C – Exercices

Programmation en C – Exercices 1 1 2 Méthode 1 : génération directe de l’exécutable Le cas simple du code contenu dans un fichier unique permet d’utiliser une seule commande à cet effet La version la plus courte est $ gcc bonjourlemonde c A partir du fichier source bonjourlemonde c, le compilateur gccgénère un exécutable



TD 8 : Les boucles en langage C

TD 8 : Les boucles en langage C Quelques bonnes habitudes a prendre (dj une boucle ) Avant chaque ecriture de programme il faut successivement: (a) Sp ecifer le probl eme a r esoudre (b) Ecrire un algorithme (c) Ecrire le programme associ e (d) Simuler l’ ex ecution du programme avec des valeurs assez vari ees



Exercices en langage C++: 150 exercices corrigés (Noire

150 exercices corrigés pour maîtriser la langage C++ Complément idéal de Programmer en langage C++, du même auteur, cet ouvrage vous propose 150 exercices corrigés et commentés pour mieux assimiler la syntaxe de base du C++ (types et opérateurs, instructions de contrôle, fonctions, tableaux, pointeurs ) et les concepts objet du langage



TD 5 : Chaînes de caractères - cedriccnamfr

Programmation en C (LC4) Semaine du 25 février 2008 1 Chaînes de caractères On av utiliser les fonctions de la bibliothèque standard destinées à la manipulation des chaînes de caractères Il ne faut pas oublier d'inclure aanvt de les utiliser On se donne la structure suivante : struct traduction { char ∗ a; char ∗ b; };



Travaux dirigés 2 : pointeurs et tableaux

2 Écrire le programme en utilisant explicitement les pointeurs pour accéder aux éléments dutableau,c’est-à-diresansutiliserunevariabled’indice

[PDF] langage c pdf

[PDF] langage c somme de 2 entiers

[PDF] langage c++

[PDF] langage calculatrice ti-83 plus

[PDF] langage de programmation pdf

[PDF] langage de texto

[PDF] Langage des fonctions, algébrique et lié au graphique

[PDF] langage et mathématiques

[PDF] langage familier courant soutenu exercices

[PDF] langage javascript cours

[PDF] langage javascript debutant

[PDF] langage mathématique de base

[PDF] langage naturel maths

[PDF] langage pascal exercices corrigés pdf

[PDF] langage pascal informatique

Université de Perpignan Via Domitia

Licence de Sciences et Technologies

Mention Sciences de l"Ingénieur

Programmation en C - Exercices

Enoncés

Sujets des partiels et examens

Exemples de corrections des exercices

Exemples de corrections des partiels et des examens

Ph. LANGLOIS

Version du 18 septembre 2013

Programmation en C - Exercices

PhL. version du 18 septembre 20132

Table des matières

I Enoncés des exercices 7

1 Description de l"environnement de programmation 9

1.1 Du code source à l"exécution : cas simple . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

1.2 Du code source à l"exécution : cas général . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

1.3 Pratique et conseils associés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

1.4 Utilisercygwinsous M* Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

1.5 Pour être sûr d"avoir bien compris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

2 Variables, valeurs, constantes, déclarations, types scalaires, opérateurs, expressions, entrées-

sorties simples13

3 Opérateurs entiers, bit à bit, logiques, tests 15

4 Fonctions mathématiques, tableaux, boucles, constantes symboliques 17

5 Structures de contrôle : répétition, choix 19

6 Fonctions : prototypes, définition, appels 23

7 Pointeurs25

8 Types,makefile27

II Sujets des partiels et examens. 29

9 Sujets31

9.1 Partiel de novembre 2010 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

9.2 Examen de décembre 2010 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

9.3 Partiel de mars 2011 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

9.4 Examen de mai 2011 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

9.5 Examen de juin 2011 (session 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

9.6 Examen de juillet 2011 (session 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

41

III Exemples de corrections des exercices 43

10 Description de l"environnement de programmation 45

10.1 bonjourlemonde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

45

10.2 swap1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

45

10.3 swap2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

45

10.4 swaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

10.5 swap3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

11 Variables,valeurs,constantes,déclarations,typesscalaires,opérateurs,entrées-sortiessimples 49

11.1 operateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

11.2 int2bin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

11.3 tabverite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

11.4 formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51
3

Programmation en C - Exercices

12 Opérateurs entiers, bit à bit, logiques, tests 53

12.1 vallimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

12.2 op-int . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

12.3 int-vs-unsigned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54

12.4 div . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54

12.5 op-bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54

12.6 op-decall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

55

12.7 masques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

13 Fonctions mathématiques, tableaux, boucles, constantes symboliques 59

13.1 somme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

59

13.2 somme-p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

59

13.3 felem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

60

13.4 fibo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

60

13.5 fibo-inv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

61

13.6 fois2fois2etc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

61

13.7 max-tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

62

13.8 ind-max-tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

62

13.9 last-ind-max-tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

63

14 Structures de contrôle : répétition, choix 65

14.1 double-indice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

65

14.2 des-boucles-for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

65

14.3 des-boucles-while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

65

14.4 un-deux-etc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

65

14.5 suites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

66

14.6 equa-prem-deg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

66

14.7 aleas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67

15 Fonctions : prototypes, définition, appels 69

15.1 f-fibo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

69

15.2 fibo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

70

15.3 f-fibo-main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

70

15.4 f-masques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

70

15.5 f-masques-main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

16 Pointeurs73

16.1 ptr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73

16.2 arith-ptr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

74

16.3 affiche-vect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

74

16.4 affichons-mat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

75

16.5 mystery-inc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

76

16.6 tab-ptr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

76

16.7 main-inc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

77

16.8 doubler-tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

77

16.9 tab-dyn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

78

16.10mat-dyn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

78

16.11echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

80

16.12echo-inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

80

16.13combien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

80

16.14max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

80

16.15main-tx-var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

81

17 Types,makefile83

17.1 type-vect-mat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

83

17.2 manip-type-vect-mat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

84

17.3 makefile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

84

PhL. version du 18 septembre 20134

Programmation en C - Exercices

IV Exemples de correction

des partiels et examens. 85

18 Correction du partiel de novembre 2010 87

18.1 echauffement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

87

18.2 tri2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

87

18.3 tri3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

88

18.4 expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

89

18.5 des-expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

89

18.6 exp-bool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

89

19 Correction de l"examen de décembre 2010 91

19.1 paire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

91

19.2 code-asci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

91

19.3 max-prod-mat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

92

19.4 moiss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

93

19.5 f-mois . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

94

19.6 mois2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

95

20 Correction du partiel de mars 2011 97

20.1 tables-mult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

97

20.2 xoxo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

97

20.3 compter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

98

21 Correction de l"examen de mai 2011 99

21.1 rev1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

99

21.2 rev2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

99

21.3 rev3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

100

21.4 rev4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

101

21.5 rev5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

101

21.6 aff-tab-carres-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

102

21.7 aff-tab-carres-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

103

21.8 aff-tab-carres-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

103

21.9 aff-tab-carres-4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

104

21.10aff-tab-carres-5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

104

21.11aff-tab-carres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

105

22 Correction de l"examen de juin 2011 (session 2) 107

22.1 exp2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

107

22.2 exp3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

107

22.3 un . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

108

22.4 combiendeun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

108

22.5 suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

109

22.6 suite2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

109

23 Correction de l"examen de juillet 2011 (session 2) 111

23.1 moy1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

111

23.2 moy2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

111

23.3 moy4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

112

23.4 concattab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

113

V Annexes 115

24 C Reference Card (ANSI) 117

25 Résumé des commandes de base UNIX 119

26 Description de l"enseignement 121

PhL. version du 18 septembre 20135

Programmation en C - Exercices

PhL. version du 18 septembre 20136

Première partie

Enoncés des exercices

7

Chapitre 1

Description de l"environnement de

programmation

Cette partie décrit la prise en main de l"environnement de programmationgccutilisé en TD sous envi-

ronnement Linux ou aveccygminsous Windows1. Convention à utiliser pour les extensions des noms de fichiers : .c: fichier source C .h: fichier en-tête (header) C .o: fichier objet sans extension : exécutable

On distingue deux cas, selon que le programme est composé d"un seul fichier (cas simple) ou de plu-

sieurs (cas général).

1.1 Du code source à l"exécution : cas simple

Trois étapes sont nécessaires pour créer un fichier exécutable à partir d"un fichier de code source.

1.

Compiler : génération du fichier objet .o- nous verrons plus loin que cette étape comporte en fait

des étapes intermédiaires. 2. Linker : édition des liens entr eles fichiers objets et création du fichier exécutable.

Ces deux étapes peuvent être aussi regroupées en une seule commande, ce que nous apprendrons

d"abord.

1.1.1 Le code source

Utiliser votre éditeur favori pour taper la version C suivante du classique "Hello World" ...en français.

*Vous l"avez reconnu : Bonjour le monde !*/ #include int main() printf("Bonjour le (centre du) monde !\n"); return 0;

Sauvegarder ce programme dans le fichierbonjourlemonde.c.1. Les principales spécificités de cette configutaion sont décrites à la section 1.4

9

Programmation en C - Exercices

1.1.2 Méthode 1 : génération directe de l"exécutable

Le cas simple du code contenu dans un fichier unique permet d"utiliser une seule commande à cet effet.

La version la plus courte est

$ gcc bonjourlemonde.c

qui se trouvera au même endroit que le fichier source. Pour l"exécuter il suffit alors d"entrer la com-

mande suivante (dans une fenêtreterminal). $ ./a.out ou plus simplement encore, $ a.out si votre variable d"environnementPATHpermet d"examiner le répertoire courant.quotesdbs_dbs46.pdfusesText_46