Vous êtes sur la page 1sur 4

Royaume du Maroc

OFFICE DE LA FORMATION PROFESSIONNELLE ET DE LA PROMOTION DU TRAVAIL

Cours 13T
Langage C et Gestion des Entres/Sorties
valuation Thorique #1
Nom.....:_____________________________________________________________
Date......:______________________________Groupe...:______________________
Total.....:_____________/75 pts

x (30/75) =

Note. .:_____________/30 pts

(____/3 pts) Nommez les 3 tapes pour la ralisation d'un fichier XXX.EXE. Indiquez le suffixe
du fichier qui est gnr chacune dentre elles.
(____/3 pts) quoi servent les accolades dans un programme en C?
dlimiter un commentaire.
dlimiter un bloc d'noncs ou tous les noncs d'une fonction.
sparer les variables des constantes.
sparer les lignes prototypes des directives aux prprocesseur.
(____/3 pts) Quel dlimiteur est utilis pour sparer les instructions d'un programme en C?
:

b)

c)

d)

e)

(____/5 pts) Transcrivez ce programme en corrigeant toutes les erreurs.


main
(
print"Salut, comment a va?"
)
(____/3 pts) Avec Borland C++, quelle est la longueur en octets des types de donnes suivants?
char

b)

int

valuation Thorique #1

c)

double

Page 1

OFPPT/TECCART

valuation Thorique #1

Langage C et Gestion des Entres/Sorties

(____/3 pts) Quelle est la valeur maximale que peut prendre une variable de type unsigned int?
(____/3 pts) Nommez un type de donne permettant de stocker un nombre fractionnaire.
(____/6 pts) Quel message sera affich l'cran aprs l'excution du programme suivant?
void main(void)
{
double num=64.35789;
printf("num=%6.2f#6.2f",num);
}
(____/4 pts) Voici quatre symboles utiliss en C: + & % < .Quels sont ceux qui peuvent servir
d'oprateur arithmtique?
(____/3 pts) Que veut dire l'instruction: num+=2; ?
(____/3 pts) Que veut dire l'instruction: num++; ?
(____/4 pts) Compltez le programme suivant pour afficher en hexadcimal la somme des deux
variables entires, x et y.
#include <stdio.h>
void main (void)
{
int x = 120;
int y = 38;
...
...
}
(____/4 pts) Compltez l'instruction utilisant la fonction scanf() pour initialiser la variable num
avec une valeur entre au clavier.
void main(void)
{
int num;
scanf(__________________________________);
}
(____/2 pts) Donnez un exemple simple d'un commentaire dans un programme en C.
(____/3 pts) Quelle(s) ligne(s) est (sont) correcte(s), des points de vue style et syntaxe?
define
define
#define
#define

TITRE
titre
TITRE
titre

valuation Thorique #1

"Programme de test"
"Programme de test"
"Programme de test"
"Programme de test"

Page 2

OFPPT/TECCART

valuation Thorique #1

Langage C et Gestion des Entres/Sorties

(____/3 pts) Indiquez ce quaffiche l'cran le programme suivant.


void main(void)
{
int num;
for(num=0; num<3; num++)
{
printf("num=%d\n",num);
}
}
(____/3 pts) Quelle est la diffrence entre une boucle while et une boucle do while ?
Rponse: _____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
(____/3 pts) Que doit valoir l'expression utilise comme condition pour terminer lexcution
dune boucle while ?
(____/3 pts) Si num vaut -4, quelle est la valeur de result?
result = ( num < 0 ) ? 0 : num * num ;
(____/3 pts) Identifiez la(les) erreur(s) dans ce programme.
#include <stdio.h>
#include <conio.h>
void main(void)
{
touche = getch();
if(touche='a') then
{
printf("\nLa lettre presse est <a>.");
}
}
(____/4 pts) Identifiez l(les) erreur(s) de syntaxe et/ou de logique dans ce bout de programme.
La variable num est de type int.
switch(num)
{
case 1;
printf("num = 1");
case 2;
printf("num = 2");
default;
printf("num est diffrent de 1 et de 2.");
}

valuation Thorique #1

Page 3

OFPPT/TECCART

valuation Thorique #1

Langage C et Gestion des Entres/Sorties

(____/4 pts) Analysez le programme suivant. Dterminez le modle qui a servi de point de dpart
pour sa conception. Dterminez galement le type de verrouillage des touches interdites qui est
utilis par ce programme.
#include
#include
#include
#include
#include

<stdio.h>
<conio.h>
<process.h>
<dos.h>
<ctype.h>

#define ESC
27
#define MONTE
1
#define DESCEND 0
void main(void)
{
int touche;
int drapeau = MONTE;
int compteur = 0;
clrscr();
puts("La valeur du compteur est:");
do
{
do
{
gotoxy(28, 1); printf("%+03d", compteur);
switch(drapeau)
{
case MONTE:
compteur++;
compteur = (compteur>10) ? -10: compteur;
break;
case DESCEND:
compteur--;
compteur = (compteur<-10) ? 10: compteur;
break;
}
delay(300);
}
while(!kbhit());
touche = toupper(getch());

switch(touche)
{
case 'M':
drapeau = MONTE;
break;
case 'D':
drapeau = DESCEND;
break;
case ESC:
clrscr();
exit(0);
break;
}
}
while(1);

Modle #1, verrouillage explicite


Modle #1, verrouillage inhrent
Modle #2, verrouillage explicite
Modle #2, verrouillage inhrent

valuation Thorique #1

Page 4

OFPPT/TECCART