mardi 5 avril 2011

Exercices Corrigés langace C : LA FONCTION GETCH - LA FONCTION SCANF - LA FONCTION GETCHAR

Exercice 1 :

Saisir un caractère au clavier, afficher son code ASCII à l'écran. Soigner l'affichage.

Exercice 2 :

Saisir un nombre entier en décimal au clavier, l'afficher en hexadécimal à l'écran. Soigner l'affichage.

Exercice 3 :

Que va-t-il se passer lors de l'exécution du programme suivant, si l'utilisateur saisit 67 ?
--------------------------------------------------------------------------------------------
#include <stdio.h>
#include <conio.h>
void main()
{
char c;
printf("ENTRER UN CARACTERE: ");
scanf("%c",&c);
printf("VOICI SON CODE ASCII: %d\n",c);
printf("POUR CONTINUER FRAPPER UNE TOUCHE ");
getch();
}
--------------------------------------------------------------------------------------------

Exercice 4 :

Le programme suivant s'exécute-t-il "correctement" ? Que contient le tampon à l'issue de l'exécution ?
--------------------------------------------------------------------------------------------
#include <stdio.h>
#include <conio.h>
void main()
{
char c;
int i;
printf("ENTRER UN CARACTERE: ");
scanf("%c",&c);
printf("VOICI SON CODE ASCII EN HEXADECIMAL: %x\n",c);
printf("ENTRER UN NOMBRE: ");
scanf("%d",&i);
printf("VOICI CE NOMBRE EN HEXADECIMAL: %x\n",i);
printf("POUR CONTINUER FRAPPER UNE TOUCHE ");
getch();
}
--------------------------------------------------------------------------------------------

Exercice II_5 :

Le programme suivant s'exécute-t-il "correctement" ? Que contient le tampon à l'issue de l'exécution ?
--------------------------------------------------------------------------------------------
#include <stdio.h>
#include <conio.h>
void main()
{
char c;
int i;
printf("ENTRER UN NOMBRE: ");
scanf("%d",&i);
printf("VOICI CE NOMBRE EN HEXADECIMAL: %x\n",i);
printf("ENTRER UN CARACTERE: ");
scanf("%c",&c);
printf("VOICI SON CODE ASCII EN HEXADECIMAL: %x\n",c);
printf("POUR CONTINUER FRAPPER UNE TOUCHE ");
getch();
}
--------------------------------------------------------------------------------------------
Correction
--------------------------------------------------------------------------------------------

Corrigé Exercice 1 :

#include <stdio.h>
#include <conio.h>
void main()
{
char c;
printf("ENTRER UN CARACTERE: ");
scanf("%c",&c);
printf("VOICI SON CODE ASCII EN DECIMAL: %d\n",c);
puts("Pour continuer frapper une touche...");
getch();
}

Corrigé Exercice 2 :

#include <stdio.h>
#include <conio.h>
void main()
{
int nombre;
printf("ENTRER UN NOMBRE ENTIER: ");
scanf("%d",&nombre);
printf("VOICI CE NOMBRE EN HEXADECIMAL: %x\n",nombre);
printf("POUR CONTINUER FRAPPER UNE TOUCHE ");
getch();
}

Corrigé Exercice 3 :

Seul le caractère 6 est pris en compte. L'affichage suivant la saisie donnera 54, c'est à dire le code ASCII de 6.

Corrigé Exercice 4 :

Oui car lors du deuxième appel à scanf, le programme attend un entier(int), alors que le tampon ne contient qu'un caractère (char).
A l'issue de l'exécution le tampon contient les deux caractères LF.

Corrigé Exercice 5 :
Non car à l'issue de la première saisie, le tampon contient le caractère LF qui sera lu lors du deuxième appel à scanf. Après exécution du programme, le tampon est vide.

0 commentaires:

Enregistrer un commentaire

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites

 

IP