Exercice Language C
FORUM OFPPT :: Rapport De Stage & Livres Electroniques :: :: Livres Electroniques gratuits :: Livres Programmations :: Langage C
Page 1 sur 1 • Partagez
Exercice Language C
Les outils de base de la programmation en langage C
Exercice 1 :
Ecrire un programme en langage C qui permute et affiche les valeurs de trois variables A, B, C de type entier qui sont entrées au clavier :
A ==> B , B ==> C , C ==> A
Solution :
#include <stdio.h>
main()
{
int A, B, C, AIDE;
printf("Introduisez trois nombres (A, B, C) : ");
scanf("%d %d %d", &A, &B, &C);
/* Affichage à l'aide de tabulations */
printf("A = %d\tB = %d\tC = %d\n", A, B, C);
AIDE=A;
A=C;
C=B;
B=AIDE;
printf("A = %d\tB = %d\tC = %d\n", A, B, C);
return 0;
}
Exercice 2 :
Ecrire un programme en langage C qui affiche le quotient et le reste de la division entière de deux nombres entiers entrés au clavier ainsi que le quotient rationnel de ces nombres.
Solution :
#include <stdio.h>
main()
{
int A, B;
printf("Introduisez deux nombres entiers : ");
scanf("%d %d", &A, &B);
printf("Division entiere : %d\n", A/B);
printf("Reste : %d\n", A%B);
printf("Quotient rationnel : %f\n", (float)A/B);
return 0;
}
Exercice 3 :
Ecrire un programme en langage C qui affiche la résistance équivalente à trois résistances R1, R2, R3 (type double),
- si les résistances sont branchées en série:
Rsér = R1+R2+R3
- si les résistances sont branchées en parallèle:
Rpar = (R1*R2*R3)/(R1*R2+R1*R3+R2*R3)
Solution :
#include <stdio.h>
main()
{
double R1, R2, R3, RRES;
printf("Introduisez les valeurs pour R1, R2 et R3 : ");
scanf("%lf %lf %lf", &R1, &R2, &R3);
RRES=R1+R2+R3;
printf("Resistance resultante serielle : %f\n", RRES);
RRES=(R1*R2*R3)/(R1*R2+R1*R3+R2*R3);
printf("Resistance resultante parallele : %f\n", RRES);
return 0;
}
Exercice 4 :
Ecrire un programme en langage C qui calcule et affiche l'aire d'un triangle dont il faut entrer les longueurs des trois côtés. Utilisez la formule :
S2 = P(P-A)(P-B)(P-C)
où A, B, C sont les longueurs des trois côtés (type int) et P le demi-périmètre du triangle.
Solution :
#include <stdio.h>
#include <math.h>
main()
{
/* Pour ne pas perdre de précision lors de la division, */
/* déclarons P comme rationnel. */
int A, B, C;
float P;
printf("Introduisez les valeurs pour A, B et C : ");
scanf("%d %d %d", &A, &B, &C);
/* En forçant la conversion de A, les autres opérandes */
/* sont converties automatiquement. */
P=((float)A+B+C)/2;
printf("Surface du triangle S = %f\n",sqrt(P*(P-A)*(P-B)*(P-C)));
return 0;
}
Exercice 5 :
Ecrire un programme en langage C qui calcule la somme de quatre nombres du type int entrés au clavier.
Solution :
main()
{
int A;
long SOM;
SOM = 0;
printf("Entrez le premier nombre : ");
scanf("%d", &A);
SOM+=A;
printf("Entrez le deuxième nombre : ");
scanf("%d", &A);
SOM+=A;
printf("Entrez le troisième nombre : ");
scanf("%d", &A);
SOM+=A;
printf("Entrez le quatrième nombre : ");
scanf("%d", &A);
SOM+=A;
printf("La somme des nombres entrés est %ld\n", SOM);
return 0;
}
Exercice 3 :
Ecrire un programme en langage C qui lit un texte TXT (de moins de 200 caractères) et qui enlève toutes les apparitions du charactère 'e' en tassant les éléments restants. Les modifications se feront dans la même variable TXT.
Exemple:
Cette ligne contient quelques lettres e.
Ctt lign contint qulqus lttrs .
Solution :
#include <stdio.h>
main()
{
/* Déclarations */
char TXT[201]; /* chaîne donnée */
int I,J; /* indices courants */
/* Saisie des données */
printf("Entrez une ligne de texte (max.200 caractères) :\n");
gets(TXT);
/* Eliminer les lettres 'e' et comprimer : */
/* Copier les caractères de I vers J et incrémenter J */
/* seulement pour les caractères différents de 'e'. */
for (J=0,I=0 ; TXT ; I++)
{
TXT[J] = TXT[i];
if (TXT[i] != 'e') J++;
}
/* Terminer la chaîne !! */
TXT[J]='\0';
/* Edition du résultat */
puts(TXT);
return 0;
}
Exercice 6 :
Ecrire un programme en langage C qui lit deux chaînes de caractères CH1 et CH2 et qui copie la première moitié de CH1 et la première moitié de CH2 dans une troisième chaîne CH3. Afficher le résultat.
a) Utiliser les fonctions spéciales de [i]<string>.
b) Utiliser uniquement les fonctions gets et puts.
Solution :
a) Utiliser les fonctions spéciales de <string>.
#include <stdio.h>
#include <string.h>
main()
{
/* Déclarations */
char CH1[100], CH2[100]; /* chaînes données */
char CH3[100]=""; /* chaîne résultat */
/* Saisie des données */
printf("Introduisez la première chaîne de caractères : ");
gets(CH1);
printf("Introduisez la deuxième chaîne de caractères : ");
gets(CH2);
/* Traitements */
strncpy(CH3, CH1, strlen(CH1)/2);
strncat(CH3, CH2, strlen(CH2)/2);
/* Affichage du résultat */
printf("Un demi \"%s\" plus un demi \"%s\" donne \"%s\"\n",CH1, CH2, CH3);
return 0;
}
b) Utiliser uniquement les fonctions gets et puts.
#include <stdio.h>
main()
{
/* Déclarations */
char CH1[100], CH2[100]; /* chaînes données */
char CH3[100]=""; /* chaîne résultat */
int L1,L2; /* longueurs de CH1 et CH2 */
int I; /* indice courant dans CH1 et CH2 */
int J; /* indice courant dans CH3 */
/* Saisie des données */
puts("Introduisez la première chaîne de caractères : ");
gets(CH1);
puts("Introduisez la deuxième chaîne de caractères : ");
gets(CH2);
/* Détermination les longueurs de CH1 et CH2 */
for (L1=0; CH1[L1]; L1++) ;
for (L2=0; CH2[L2]; L2++) ;
/* Copier la première moitié de CH1 vers CH3 */
for (I=0 ; I<(L1/2) ; I++)
[font=Arial;Tahoma;Helvetica;FreeSans]CH3[i]=CH1[i];
Exercice 7 :
Ecrire un programme en C qui permet d’afficher le minimum (Min), le maximum (Max) et la somme (S) des éléments premiers d’un tableau d’entiers positifs de taille maximale 100 saisi par l’utilisateur.
Solution :
#include <stdio.h>
#define Nmax 100
int main (int argc, char *argv[]){
int T[Nmax], i, j, N, e, b, k, S, Max, Min;
do{ printf("\nDonnee N: ");
scanf("%d", &N);
}while(N<0);
printf("\n>> Remplissage du tableau T d'entiers positifs: \n\n");
for(i=1;i<=N;i++){
do{ printf("\n T[%d]= ",i);
scanf("%d", &T[i]);
}while(T[i]<0);
}
b=0;
for(i=1;i<N;i++){
k=0;
for(j=1;j<=T[i];j++){
if((T[i]%j)==0){ k=k+1;};
}
if(k==2){ e=T[i]; b=1; i=N+1; // Cette instruction est facultative.
}
}
if(b==0){ printf("\nLe tableau ne contient aucun nombre premier."); }
else{
S=0;
Max=e;
Min=e;
for(i=1;i<=N;i++){
k=0
for(j=1;j<=T[i];j++){ if((T[i]%j)==0){ k=k+1;}; }
if(k==2){ S=S+T[i];
if(T[i]>Max){ Max=T[i]; }
}
}
printf("\n Min=%d ,Max= %d et S=%d",Min,Max,S);
}
system("PAUSE");
return 0;
}
Mr.Ayoub- Administrateur
- Nombre de messages : 5345
Date d'inscription : 10/01/2010
Sujets similaires
» exercice facile et important de language c
» language C
» language C
» algo et language c
» EFM : Language De Programmation Structurée
» language C
» language C
» algo et language c
» EFM : Language De Programmation Structurée
FORUM OFPPT :: Rapport De Stage & Livres Electroniques :: :: Livres Electroniques gratuits :: Livres Programmations :: Langage C
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|
Ven Nov 16, 2018 6:14 pm par tri2b
» Examen de fin de formation Théorique 2018 TDM
Mar Juin 19, 2018 8:08 pm par Mr.Ayoub
» Examen de Passage Chef Chantier TP 2010 Pratique
Lun Juin 04, 2018 11:07 am par Mr.Ayoub
» Examen de fin de formation Chef de Chantier T.P 2012 Théorique
Dim Juin 03, 2018 3:59 pm par Mr.Ayoub
» Examen de fin de formation TSGO 2016 Pratique Variante 1
Dim Juin 03, 2018 3:36 pm par Mr.Ayoub
» Examen de fin de formation Chef de Chantier T.P 2008 Théorique
Dim Juin 03, 2018 3:25 pm par Mr.Ayoub
» Examen de Passage Chef de Chantier T.P 2008 Théorique et Pratique
Dim Juin 03, 2018 3:24 pm par Mr.Ayoub
» Examen de Fin de Formation Gestion des Entreprises TSGE 2015
Mar Mai 29, 2018 12:18 pm par Mr.Ayoub
» Examen de Passage 2015 Gestion des Entreprises TSGE
Mar Mai 29, 2018 11:55 am par Mr.Ayoub
» Examen de Passage Gestion des Entreprises TSGE 2017
Mar Mai 29, 2018 11:51 am par Mr.Ayoub