Vous êtes sur la page 1sur 3

L2 Informatique Algorithmique et Structures de données 2016-2017

Test TP : Partie 1
Durée30mn
Documents et Téléphones portables Interdits
Matricule Nom Prénom Groupe

(QCSS) :
Pour les Questions à Choix Multiples (QC
o Encercler lles
es bonnes réponses
o Pour chaque question : un choix correct : +0.25 ; un choix incorrect : -0.25 ; et sa note totale ne
au--dessous de 0.
peut pas descendre au
1. Un compilateur C permet de
a. Identifier les erreurs syntaxiques et sémantiques d’un programme C.
b. Détecter les erreurs logiques d’un programme C
c. Générer un fichier objet du programme C pour exécution
2. Le Code::Blocks
a. Fonctionne uniquement sous windows et linux.
b. Est un environnement de développement indispensable pour la création de programmes C.
c. Permet de faciliter la gestion d’un programme C en termes de structuration.
3. Un projet Code::Blocks
a. Ne peut s’exécuter sans une fonction « main ».
b. Permet de générer plusieurs fichiers sources et headers.
c. Inclut automatiquement dans les sources les librairies nécessaires à son exécution.
d. Inclut des fichiers headers pré-
pré-remplis qui doivent être complétées par le développeur.
4. Soit Tab un tableau d’entier de taille n. Pour lire les éléments de ce tableau, introduit à partir du
clavier, on utilise une boucle contenant :
a. scanf ("%d", tab[i]) ; e. scanf ("%d", &tab) ;
b. scanf ("%d", tab) ; f. scanf("%d",&tab[i]);
c. scanf ("%d", &tab+i) ;
d. scanf ("%d", tab+i) ;

Mme Aroussi Page 1


L2 Informatique Algorithmique et Structures de données 2016-2017
5. On définit les variables de la manière suivante :
int in ; int tabin[10] ; char c ; int *ptint ; char *ptchar ;
Lesquelles de ces instructions sont justes ?
a. ptint = tabint ; *ptint = 4
b. tabint[in] est équivalent à *(tabint+in)
c. ptint = & in ; *ptint = 12 ;
d. ptint = &tabint ; *ptint = 4 ;
e. ptchar = &car ; *ptchar = ‘a’ ;

6. Où sont déclarés les prototypes des fonctions dans un programme C? (Donner 2 bonnes réponses)
a. Avant le programme principal (la fonction main)
b. Dans des fichiers entêtes qui doivent être ajoutés au programme principal par la directive « include
include ».
7. L’instruction « switch » sert à éviter des instructions if else imbriquées
8. Si un ensemble d’instruction doit être exécuté « X » fois, on doit utiliser l’instruction « Y » (relier les
bonnes réponses):
a. X = « Au plus une » a. Y = for …
b. Y = do … while
b. X = « Au plus N »
c. Y = while …
c. X = « Au moins une »
d. Y = if …

9. Soit Tab un tableau dynamique de taille n contenant des enregistrements de type Maillon. Compléter
les instructions suivantes permettant de déclarer et de créer ce tableau:
a. Maillon* Tab = (maillon*)malloc (n * sizeof(maillon))
b. Maillon Tab = (maillon*) calloc (n, siezof(maillon))
10. Pour utiliser les fonctions d’allocation dynamiques (malloc et calloc), quelle bibliothèque faut-il
inclure? <stdlib.h>

11. Que calcule la fonction suivante? Le nombre des nœuds possédant exactement deux fils (de degré
égale à 2 )

Mme Aroussi Page 2


L2 Informatique Algorithmique et Structures de données 2016-2017
intNbr_X (Tnoeud* R){
if (R==NULL) return 0;
else
if ((FG(R)!=NULL) && (FD(R)!=NULL))
return(1+Nbr_X(FG(R))+Nbr_X(FD(R)));
else
return 0;
}

12. Soit le programme suivant:

(a) Version initiale (b) Corrections necessaries


necessaries

FILE fch; FILE* fch;


char ch [100];
fch = fopen(‘monfichier.txt’,’r’); fch = fopen(“monfichier.txt”,”r”);
if (fch != NULL)
{
while(feof(fch)) while(!feof(fch
while(!feof(fch))
!feof(fch))
{
fscanf(fch," %s \n",ch); fscanf(fichier," %s \n",&ch);
printf("%s \n",ch);
}
} fclose (fch)
(fch)}

a. Souligner les erreurs (dans la colonne a) et réécrire la version correcte (dans la colonne b).
b. Que fait ce programme ? Lire et afficher un fichier texte

Aroussi Page 3

Vous aimerez peut-être aussi