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 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 examensPh. 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91.2 Du code source à l"exécution : cas général . . . . . . . . . . . . . . . . . . . . . . . . . . . .
101.3 Pratique et conseils associés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
111.4 Utilisercygwinsous M* Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
1.5 Pour être sûr d"avoir bien compris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
122 Variables, valeurs, constantes, déclarations, types scalaires, opérateurs, expressions, entrées-
sorties simples133 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
319.2 Examen de décembre 2010 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
339.3 Partiel de mars 2011 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
359.4 Examen de mai 2011 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
379.5 Examen de juin 2011 (session 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
399.6 Examen de juillet 2011 (session 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41III Exemples de corrections des exercices 43
10 Description de l"environnement de programmation 45
10.1 bonjourlemonde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4510.2 swap1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4510.3 swap2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4510.4 swaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4610.5 swap3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4611 Variables,valeurs,constantes,déclarations,typesscalaires,opérateurs,entrées-sortiessimples 49
11.1 operateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4911.2 int2bin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4911.3 tabverite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5011.4 formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
513
Programmation en C - Exercices
12 Opérateurs entiers, bit à bit, logiques, tests 53
12.1 vallimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5312.2 op-int . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5312.3 int-vs-unsigned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5412.4 div . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5412.5 op-bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5412.6 op-decall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5512.7 masques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5613 Fonctions mathématiques, tableaux, boucles, constantes symboliques 59
13.1 somme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5913.2 somme-p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5913.3 felem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6013.4 fibo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6013.5 fibo-inv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6113.6 fois2fois2etc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6113.7 max-tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6213.8 ind-max-tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6213.9 last-ind-max-tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6314 Structures de contrôle : répétition, choix 65
14.1 double-indice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6514.2 des-boucles-for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6514.3 des-boucles-while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6514.4 un-deux-etc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6514.5 suites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6614.6 equa-prem-deg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6614.7 aleas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6715 Fonctions : prototypes, définition, appels 69
15.1 f-fibo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6915.2 fibo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7015.3 f-fibo-main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7015.4 f-masques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7015.5 f-masques-main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7116 Pointeurs73
16.1 ptr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7316.2 arith-ptr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7416.3 affiche-vect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7416.4 affichons-mat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7516.5 mystery-inc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7616.6 tab-ptr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7616.7 main-inc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7716.8 doubler-tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7716.9 tab-dyn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7816.10mat-dyn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7816.11echo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8016.12echo-inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8016.13combien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8016.14max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8016.15main-tx-var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8117 Types,makefile83
17.1 type-vect-mat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8317.2 manip-type-vect-mat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8417.3 makefile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84PhL. version du 18 septembre 20134
Programmation en C - Exercices
IV Exemples de correction
des partiels et examens. 8518 Correction du partiel de novembre 2010 87
18.1 echauffement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8718.2 tri2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8718.3 tri3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8818.4 expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8918.5 des-expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8918.6 exp-bool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8919 Correction de l"examen de décembre 2010 91
19.1 paire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9119.2 code-asci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9119.3 max-prod-mat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9219.4 moiss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9319.5 f-mois . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9419.6 mois2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9520 Correction du partiel de mars 2011 97
20.1 tables-mult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9720.2 xoxo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9720.3 compter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9821 Correction de l"examen de mai 2011 99
21.1 rev1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9921.2 rev2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9921.3 rev3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10021.4 rev4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10121.5 rev5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10121.6 aff-tab-carres-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10221.7 aff-tab-carres-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10321.8 aff-tab-carres-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10321.9 aff-tab-carres-4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10421.10aff-tab-carres-5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10421.11aff-tab-carres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10522 Correction de l"examen de juin 2011 (session 2) 107
22.1 exp2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10722.2 exp3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10722.3 un . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10822.4 combiendeun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10822.5 suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10922.6 suite2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10923 Correction de l"examen de juillet 2011 (session 2) 111
23.1 moy1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11123.2 moy2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11123.3 moy4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11223.4 concattab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
113V 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
7Chapitre 1
Description de l"environnement de
programmationCette 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écutableOn 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 !*/ #includeSauvegarder ce programme dans le fichierbonjourlemonde.c.1. Les principales spécificités de cette configutaion sont décrites à la section 1.4
9Programmation 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.cqui 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