Ecole Polytechnique Sousse A.
U : semestre 1
Série de Travaux Pratiques
TP 10 : Révision
Vol.
Matière Consolidation C Auditoire 1 LBI 2 heures
horaire
Exercice 1:
Écrire un programme C qui :
Demande à l’utilisateur de saisir par le clavier trois chaînes de caractères (dynamiques)
Comparer les deux chaînes 1 et 2 puis afficher le résultat
Affichez la longueur de la chaîne 1.
Affichez la longueur de la chaîne 2.
Affichez la longueur de la chaîne 3.
Concaténer les deux chaînes 1 et 2 puis afficher le résultat.
Concaténer 4 caractères de la chaine 3 dans la chaîne 2 puis afficher le résultat.
Solution :
#include <stdio.h>
#include <string.h>
int main() {
char chaine1[30] ;
char chaine2[30] ;
char chaine3[30] ;
printf("Entrez la première chaîne: ");
gets(chaine1);
printf("Entrez la deuxième chaîne: ");
gets(chaine2);
printf("Entrez la troisième chaîne: ");
gets(chaine3);
int c=strcmp(chaine1, chaine2);
printf("Comparaison : %d\n", c);
int longueur1 = strlen(chaine1) ;
1
int longueur2 = strlen(chaine2) ;
int longueur3 = strlen(chaine3) ;
printf("La longueur de la chaîne1 est : %d\n", longueur1);
printf("La longueur de la chaîne2 est : %d\n", longueur2);
printf("La longueur de la chaîne3 est : %d\n", longueur3);
strcat(chaine1, chaine2);
printf("Chaine copiee : %s\n", chaine1);
strncat(chaine2, chaine3,4);
printf("Chaine copiee : %s\n", chaine2);
return 0;
}
Exercice 2:
En utilisant une boucle while
1. Développer un code qui
2. Demander à l'utilisateur de saisir un nombre entier.
3. Vérifier si le nombre est positif.
4. Si le nombre est négatif, redemander un nombre.
5. Répéter cela jusqu'à ce que l'utilisateur saisisse un nombre positif.
Solution :
#include <stdio.h>
int main() {
int nombre;
printf("Entrez un nombre positif : ");
scanf("%d", &nombre);
while (nombre < 0) {
printf("Le nombre est négatif. Essayez encore : ");
scanf("%d", &nombre);
}
printf("Vous avez saisi un nombre positif : %d\n",
nombre);
return 0;
}
2
Exercice 3 :
➢ Écrire un programme qui demande à l'utilisateur de saisir 10 entiers stockés dans un
tableau. Le programme doit afficher le nombre d'entiers supérieurs ou égaux à 10.
Solution
#include <stdio.h>
int main() {
int tableau[10];
int compteur = 0;
printf("Veuillez entrer 10 entiers :\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &tableau[i]);
}
for (int i = 0; i < 10; i++) {
if (tableau[i] >= 10) {
compteur++;
}
}
printf("Le nombre d'entiers supérieurs ou égaux à 10 est : %d\n", compteur);
return 0;
}
Exercice 4 :
Ecrire un programme qui :
Lit la dimension N d'un tableau T du type int (dimension maximale : 50 composantes),
Remplit le tableau par des valeurs entrées au clavier
Affiche le tableau.
Calculer et afficher ensuite la somme des éléments du tableau.
3
Solution :
#include <stdio.h>
int main() {
int T[50];
int N;
int I;
int SOM;
printf("Dimension du tableau max.50 : ");
scanf("%d", &N );
for (I=0; I<N; I++)
{ printf("Elément %d : ", I);
scanf("%d", &T[I]); }
for (I=0; I<N; I++)
printf("%d ", T[I]);
printf("\n");
for (SOM=0, I=0; I<N; I++)
SOM =SOM+ T[I];
printf("Somme de éléments : %ld\n", SOM);
return 0; }
Exercice 5 :
Écrivez un programme en C++ qui fait ce qui suit :
Demander à l'utilisateur de saisir 10 entiers et les stocker dans un tableau.
Afficher les entiers saisis.
Trouver et afficher le plus grand et le plus petit entier du tableau.
Calculer la somme de tous les entiers du tableau et l'afficher.
Calculer la moyenne des entiers et l'afficher.
4
Solution :
#include <stdio.h>
int main() {
int tableau[10]; // Déclaration du tableau pour stocker 10 entiers
int somme = 0; // Variable pour stocker la somme des entiers
int max, min; // Variables pour le maximum et le minimum
printf("Veuillez entrer 10 entiers :\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &tableau[i]);
}
// Afficher les entiers saisis
printf("\nLes entiers saisis sont :\n");
for (int i = 0; i < 10; i++) {
printf("%d ", tableau[i]);
}
printf("\n");
// Initialiser max et min avec le premier élément du tableau
max = tableau[0];
min = tableau[0];
// Calculer la somme, et trouver le max et le min
for (int i = 0; i < 10; i++) {
somme += tableau[i]; // Additionner l'élément à la somme
if (tableau[i] > max) {
max = tableau[i]; // Mettre à jour max
}
if (tableau[i] < min) {
min = tableau[i]; // Mettre à jour min
}
}
// Calculer la moyenne
float moyenne = somme / 10 ;
// Afficher les résultats
printf("\nLe plus grand entier est : %d\n", max);
printf("Le plus petit entier est : %d\n", min);
printf("La somme des entiers est : %d\n", somme);
printf("La moyenne des entiers est : %.2f\n", moyenne);
return 0;
}
5
Exercice 6 :
Écrire un programme C qui :
- Initialise un tableau d’entiers
- Demande à l’utilisateur de saisir une valeur val
- Rechercher puis affiche la position de la première occurrence de val, si elle existe, dans le
tableau.
Solution :
#include <stdio.h>
main()
{
int A[50]; /* tableau donné */
int VAL; /* valeur à rechercher */
int POS; /* position de la valeur */
int N; /* dimension */
int I; /* indice courant */
printf("Dimension du tableau (max.50) : ");
scanf("%d", &N );
for (I=0; I<N; I++)
{
printf("Element %d : ", I);
scanf("%d", &A[I]);
}
printf("Element a rechercher : ");
scanf("%d", &VAL );
/* Affichage du tableau */
printf("Tableau donne : \n");
for (I=0; I<N; I++)
printf("%d ", A[I]);
printf("\n");
/* Recherche de la position de la valeur */
POS = -1;
for (I=0 ; (I<N)&&(POS==-1) ; I++)
if (A[I]==VAL)
POS=I;
/* Edition du résultat */
if (POS==-1)
printf("La valeur recherchée ne se trouve pas dans le tableau.\n");
else
printf("La valeur %d se trouve a la position %d. \n",
VAL, POS);
return 0;
}