Developpez.com

Télécharger gratuitement le magazine des développeurs, le bimestriel des développeurs avec une sélection des meilleurs tutoriels

Developpez.com - Pascal
X

Choisissez d'abord la catégorieensuite la rubrique :

 

TEST IV : Test d'évaluation n°4

Par Hugo ETIEVANT

Ce test d'évaluation (n°4/5) pose quelques questions pièges afin de voir si vous avez assimilé les bases de la programmation en Turbo Pascal 7.0.

Correction automatique on line : il vous suffit de cliquer sur le bouton de validation en bas de ce formulaire (après avoir répondu à toutes les questions) pour voir apparaître une correction personnalisée.

 

1. Sous le logiciel Borland Pascal 7.0, comment peut-on modifier l'organisation virtuelle de la mémoire ?
Option/Memory Size
Run/Parameters
Compile/Target


2. Comment peut-on donner la taille "5" à une chaine de type String ?
SizeOf(chaine):=5;
chaine[0]:=5;
chaine[5]:=eof;
chaine:=MemAvail(5);


3. Laquelle de ces affirmations sur les types structurés est correcte ?
Une variable enregistrement ne peut pas contenir de champs aux-mêmes de type structuré.
Une variable de type structuré ne peut pas faire référence à des types prédéfinis dans le langage Pascal.
Un enregistrement peut contenir un champ de type structuré.

4. Laquelle de ces affirmations sur les types structurés est incorrecte ?
On peut afficher le contenu d'une variable structurée sans faire référence à ses champs.
On peut passer une variable de type enregistrement en paramètre à une procédure sans précision de champ.
Le champ d'une variable enregistrement peut lui-même contenir d'autres champs.
On peut créer des tableaux de variables de type structuré.

5. Comment réaliser une affectation sur le tableau tab ?
Type tab = Record
        nom : String[20] ;
        age : Byte ;
     End ;

tab:='CyberZoïde'.18 ;
tab[1]:='CyberZoïde' ;
tab.age:=18 ;
tab.nom[10]:='CyberZoïde' ;
tab[2].nom:='CyberZoïde' ;


6. Quelle affirmation concernant les tableaux est correcte ?
Un tableau peut avoir une dimension de 10.
Un tableau doit au moins avoir 2 dimensions.
Les dimensions d'un tableau peuvent être de type différents.

7. Cochez la réponse juste :
On peut systématiquement convertir une chaîne de caractère en variable nombre entier.
On ne peut que sous de strictes conditions convertir une variable nombre réel en chaîne de caractères.
Aucune convertion n'est possible entre chaine et nombre sans créer une fonction en assembleur.
On peut convertir une chaîne (String) en nombre entier (Integer) mais pas en nombre à virgule avec mantisse (Real).
On peut sous certaines conditions convertir une chaîne en nombre entier.

8. Que dire de vrai à propos des fonctions ?
Elles ne peuvent utiliser que des variables de même type que celui définissant la fonction.
Elles ne peuvent pas être autorisées à modifier les valeurs des variables globales (du programme principal).
Elles peuvent ne pas recevoir de paramètre.

9. Que dire d'incorrect à propos des identificateurs de variable ?
Ils ne doivent pas être identiques aux mots clés réservés de Turbo Pascal 7.0
Ils ne doivent pas être identiques aux valeurs de chaînes de caractère si celles-ci sont déclarées en constante du programme.
Ils ne peuvent être identiques au nom du programme.

10. Quelle est la limite supérieure de la mémoire Tas allouée aux pointeurs ?
64 Ko
16 Ko
64 Mo
8 Mo
Il n'y a pas de limite virtuelle, la seule limite est ta taille de votre RAM.

11. Comment écrit-on des commentaires en Pascal ?
{ commentaire }
<!-- commentaire -->
/* commentaire */
[* commentaire *]


12. Réécrivez le programme suivant sans les fautes que j'y ai ajouté :


13. Quelle taille en mémoire cette déclaration réserve-t-elle à la variable MonTab ?
Const NMax = 100 ;
Type Etudiant = Record
     nom, prenom : String[20] ;
     matricule : Integer ;
     End ;
Var MonTab : Array[1..NMax] Of Etudiant ;

4600 octets
4400 octets
2400 octets
2376 octets

14. Lequel de ces types pointe vers le type entier ?
Type Riri = Integer ;
Type Fifi = ^Integer ;
Type Loulou = Integer^ ;
Type Zaza^ = Integer ;


15. Laquelle de ces affirmations est fausse ?
On peut créer des pointeurs pointant vers d'autres pointeurs.
On peut modifier la valeur de la variable pointée mais pas celle du pointeur en lui même.
On peut créer plusieurs pointeurs pointant vers la même variable.
On ne peut pas modifier la valeur d'une variable pointée sans passer par le pointeur.

16. Laquelle de ces affirmations est juste ?
On ne peut pas créer des pointeurs pointant vers des types complexes.
La déclaration d'une variable pointeur ne réserve aucune mémoire.
Une variable pointée par un pointeur ne réserve aucune mémoire.
On ne pourra jamais réserver de la mémoire pour une variable pointée par un pointeur.

17. Laquelle de ces instructions est juste ?
Type Eleve=Record
     nom,prenom : String ;
     notes : Array[1..5] of Integer ;
     End ;
Var Classe : Array[1..30] Of ^Eleve ;

Classe^[3].nom := 'Etiévant' ;
Classe[27]^.notes[0] := 14 ;
CLasse[8]^.notes[5] := 10.5 ;
Classe[12].prenom^ := 'Hugo' ;
Classe[30].prenom := ^'Arnold' ;
Classe[26]^.notes[3] := 18 ;


18. Lors de la déclaration d'un pointeur, quel espace mémoire lui réserve le compilateur ?
Rien du tout!
Cela dépend du type vers lequel pointe le pointeur.
Quatre octets.
Deux kilo octets

19. De quelle taille est l'espace mémoire alloué à la variable nom ?
Var nom : String[27] ;
26 octets
27 octets
28 octets
255 octets
256 octets

20. Quelle est l'affirmation fausse ?
Un pointeur peut pointer vers une variable déclarée normalement.
Un pointeur peut pointer vers la variable associée à un autre pointeur.
Un pointeur peut pointer vers un pointeur pointant vers sa propre variable associée.
Un pointeur peut pointer vers un pointeur.
Un pointeur peut pointer vers une zone mémoire vierge.

Responsables bénévoles de la rubrique Pascal : Gilles Vasseur - Alcatîz -