[PDF] Programmation en C – Exercices





Previous PDF Next PDF



Première S Exercices valeur absolue 2010-2011 1 Exercice 1

Partie 1 : Additionner deux valeurs absolues en utilisant la droite graduée des réels. 1) On considère sur la droite numérique les points A



Présentation des Travaux Dirigés – Introduction à léconomie

Licence 1ère année AES Misashs - Introduction à l'économie. Année 2011-2012 - Semestre 1. 5 rapportant la variation absolue du PIB sur la période au PIB du 



Exercices corrigés

1. Affectez les variables temps et distance par les valeurs 6.892 et 19.7. la boucle devra afficher le premier diviseur trouvé et s'interrompre.



Programmation en C – Exercices

Sa taille sera définie par une constante symbolique (macro sans paramètre). 1. Ecrire une fonction qui génère un tableau qui contient les n premières valeurs de 



Exercices de mathématiques pour la classe terminale - 2e partie

La première partie propose une analyse didactique des exercices posés au 1. ES-L Pondichéry exercice 3. Énoncé originel. On s'intéresse à la fonction ...



´Eléments de calculs pour létude des fonctions de plusieurs

1.4 Correction des exercices . 3.3.1 Le cas des fonctions d'une seule variable . ... R+ × R+ s'appelle le domaine de définition de la fonction f.



Fascicule dexercices

Exercice 1 : Calculer les dérivées premières des expressions suivantes b) Calculer les incertitudes absolue et relative sur la valeur de Z si f.



STAGE OLYMPIQUE DE GRÉSILLON 2011

16 ans) : 1 de quatrième 6 de troisième



Cryptographie Paris 13

1 oct. 2010 2.3.1 Cryptanalyse des codes de substitution . ... 8.5.3 Exercices . ... utilise pour le chiffrement un compteur de valeur initiale T.



RAPPORT ANNUEL Exercice 2011 PRESENTÉ A SA MAJESTE LE

1 jui. 2012 Cette évolution s'explique par le redressement du secteur agricole dont la valeur ajoutée a augmenté de 5

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.

Il est plus pratique de pouvoir choisir le nom de son exécutable en le précisant avec l"option-o.

$ gcc -o bonjourlemonde bonjourlemonde.c Vous utiliserez en effet la commande plus longue suivante. $ gcc -Wall -pedantic -std=c99 -o bonjourlemonde bonjourlemonde.c extensions comme celles de GNU par exemple) --pedanticpermet de signaler les avertissements, ouwarnings, selon la norme ISO; et --Wallpermet de signaler un grand nombre d"autreswarningsdécrit dans leman gcc.

En effet à la différence d"Ada, la grande permissivité de C réduit l"aide du compilateur (sans option)

pour traquer certaines erreurs et les mauvaises pratiques de programation.

1.1.3 Méthode 2 : compiler et lier avant d"exécuter

Dès que votre application comporte plusieurs fichiers, il est nécessaire de procéder en deux étapes :

i) compilation-génération (option-c) d"un fichier objet (extension.o)

ii) puis création de l"exécutable (sans extension) par éditions des liens (option-o) entre les différents

fichiers objets.

Dans le cas simple, chaque étape (compilation, édition des liens) correspond à une des deux lignes de

commandes suivantes. $ gcc -Wall -pedantic -std=c99 -c bonjourlemonde.c $ gcc -Wall -pedantic -std=c99 -o bonjourlemonde bonjourlemonde.o

Il suffit maintenant d"exécuterbonjourlemonde.

1.1.4 Pour bien comprendre

Recommencer lesméthodes1et2àpartirdefichierssourcesmodifiés(contenu,nomdufichier,autres extensions), ailleurs dans votre arborescence. Observer le contenu du répertoir ede travail après chaque commande. Observer les dr oitssur les dif férentsfichiers.

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

Nous détaillons maintenant le cas habituel d"applications comportant plusieurs fichiers sources et l"uti-

lisation de la commandemake.

PhL. version du 18 septembre 201310

Programmation en C - Exercices

1.2.1 Editer-compiler-lier-exécuter

Entre la création du code source (édition) et l"exécution du binaire qui en découle, nous retrouvons les

deux étapes de compilation et d"édition des liens déjà décrits.

Lorsque que l"application est constituée de plusieurs fichiers (en général des fichiers.cet les fichiers

d"en-tête.hcorrespondants2), générer l"exécutable nécessite de créer, un à un, tous les fichiers objets

(.o) associé aux fichiers.c(compilation et génération des fichiers objets, option-c) , puis de lier (édi-

tion des liens, option-o) tous ces fichiers objets (et si besoin les bibliothèques extérieures) en précision

le nom de l"exécutable (sans extension en général).

Par exemple, notre application est constituée des fichiersF1.c, F2.c, main.c, ce dernier contenant

la procédure principalemain. Nous voulons l"exécuter par le biais de la commande (sans argument)

endavant. On y arrive en effectuant les deux étapes compilation-éditions des liens suivantes. $ gcc -Wall -pedantic -std=c99 -c F1.cquotesdbs_dbs22.pdfusesText_28
[PDF] Adduction d eau potable en milieu rural Guide des projets

[PDF] Adduction d eau potable en milieu rural Guide des projets

[PDF] Site internet de l 'UFR Phitem - Université Grenoble Alpes - Accueil

[PDF] L 'analyse de deux personnages du cycle Rougon-Macquart - IS MU

[PDF] Adénome hépatiques Les risques et comment les - Hepatowebcom

[PDF] L 'intérêt du dosage de l 'adénosine désaminase dans les liquides

[PDF] Règlement theRmique de ConstRuCtion au maRoC (RtCm)

[PDF] Annual Report - Adidas Group

[PDF] adidas annual report - Adidas Group

[PDF] reconnaître un adjectif épithète ou attribut (pdf)

[PDF] Dans le texte suivant, entoure les compléments du nom : C 'est la fin

[PDF] LE CHEF D ÉTABLISSEMENT SCOLAIRE ADJOINT

[PDF] Adler Mortimer - Como Leer Un Libropdf - Universidad Clea

[PDF] marco de referencia para el control de inventarios

[PDF] Administración de documentos y archivos Textos fundamentales