Loading lang_c_qu_05...

enib_small.png LANG-C Qu_05 — Questionnaire sur le chapitre 05_Strings

{1} Les caractères

Vrai ou faux ? Le type char n'est rien d'autre qu'un petit entier.
 1 ? 


Vrai ou faux ? Le type char n'est rien d'autre qu'un petit réel.
 2 ? 


Vrai ou faux ? Le type char ne peut être utilisé que pour représenter un caractère textuel.
 3 ? 


Quel est le type utilisé pour représenter chaque caractère d'une chaîne ?
 4 ? 


Quel procédé fait la correspondance entre la valeur d'un char et le caractère textuel qu'il représente ?
 5 ? 


Écrire l'appel qui permet d'afficher la variable x sous la forme d'un caractère textuel.
 6 ? 


Écrire l'appel qui permet d'afficher le code numérique d'un caractère textuel x.
 7 ? 


Vrai ou faux ? Afficher une chaîne de caractères revient à afficher un-à-un ses caractères.
 8 ? 


Écrire la constante littérale qui permet de représenter le caractère de changement de ligne.
 9 ? 


Écrire la constante littérale qui permet de représenter le caractère de tabulation.
 10 ? 


Écrire la constante littérale qui permet de représenter la lettre E.
 11 ? 


Écrire la constante littérale qui permet de représenter le chiffre 3.
 12 ? 


Combien vaut 'Z'-'X' ?
 13 ? 


Combien vaut 'E'-'B' ?
 14 ? 


Quel caractère littéral correspond à 'B'+3 ?
 15 ? 


Quel caractère littéral correspond à 'X'+2 ?
 16 ? 


Quelle fonction du fichier d'en-tête standard
<ctype.h>
permet de savoir si un caractère est une lettre ?
 17 ? 


Quelle fonction du fichier d'en-tête standard
<ctype.h>
permet de savoir si un caractère est un chiffre ?
 18 ? 


Quelle fonction du fichier d'en-tête standard
<ctype.h>
permet de transformer un caractère représentant une lettre minuscule en la majuscule correspondante ?
 19 ? 


Quelle fonction du fichier d'en-tête standard
<ctype.h>
permet de transformer un caractère représentant une lettre majuscule en la minuscule correspondante ?
 20 ? 
{2} Les chaînes de caractères

Vrai ou faux ? Une chaîne de caractères est un type de base du langage C, tout comme les entiers et les réels.
 21 ? 


Vrai ou faux ? Une chaîne de caractères n'existe pas en tant que tel dans le langage C, contrairement aux entiers et aux réels.
 22 ? 


Vrai ou faux ? La taille de la mémoire nécessaire pour représenter une chaîne de caractères dépend de son contenu.
 23 ? 


Vrai ou faux ? La taille de la mémoire nécessaire pour représenter une chaîne de caractères est indépendante de son contenu.
 24 ? 


Comment est indiquée la fin d'une chaîne de caractères ?
 25 ? 


Combien faut-il de caractères pour mémoriser la chaîne de caractères contenant le texte abcdef ?
 26 ? 


Écrire l'appel qui permet d'afficher la chaîne de caractères désignée par la variable str.
 27 ? 


Déclarer une chaîne de caractères str contenant initialement le message Welcome to ENIB et permettant la modification ultérieure de ce message.
 28 ? 


Déclarer une chaîne de caractères str désignant le message Welcome to ENIB sans qu'il soit possible d'en modifier le contenu.
 29 ? 


Déclarer une chaîne de caractères str contenant initialement le message Enjoy LANG_C! et permettant la modification ultérieure de ce message.
 30 ? 


Déclarer une chaîne de caractères str désignant le message Enjoy LANG_C! sans qu'il soit possible d'en modifier le contenu.
 31 ? 


Vrai ou faux ? La portion de code suivante est correcte.
char str1[100]="ENIB";
char *str2=str1;
 32 ? 


Vrai ou faux ? La portion de code suivante est correcte.
char str1[100]="ENIB";
char str2[100]=str1;
 33 ? 


Vrai ou faux ? La portion de code suivante est correcte.
char *str1="snib";
*str1='E';
 34 ? 


Vrai ou faux ? La portion de code suivante est correcte.
const char *str1="snib";
*str1='E';
 35 ? 


Vrai ou faux ? La portion de code suivante est correcte.
char str1[]="snib";
*str1='E';
 36 ? 
{3} Les opérations sur les chaînes

Que valent les variables sz et len après la portion de code suivante ?
char str[]="ENIB";
int sz=(int)sizeof(str);
int len=(int)strlen(str);
 37 ? 


Que valent les variables sz et len après la portion de code suivante ?
char str[100]="ENIB";
int sz=(int)sizeof(str);
int len=(int)strlen(str);
 38 ? 


Vrai ou faux ? La portion de code suivante affiche le message Here we are.
char str1[]="Welcome to ENIB";
char *str2=str1;
if(sizeof(str1)==sizeof(str2))
{
  printf("Here we are\n");
}
 39 ? 


Vrai ou faux ? La portion de code suivante affiche le message Here we are.
char str1[]="Welcome to ENIB";
char *str2=str1;
if(strlen(str1)==strlen(str2))
{
  printf("Here we are\n");
}
 40 ? 


Écrire une alternative simple qui soit exécutée si les chaînes de caractères str1 et str2 sont considérées équivalentes.
 41 ? 


Écrire une alternative simple qui soit exécutée si les chaînes de caractères str1 et str2 ne sont pas considérées équivalentes.
 42 ? 


Écrire une alternative simple qui soit exécutée si les chaînes de caractères str1 est considérée inférieure (dans l'ordre lexicographique) à la chaîne de caractères str2.
 43 ? 


Écrire une alternative simple qui soit exécutée si les chaînes de caractères str1 est considérée supérieure (dans l'ordre lexicographique) à la chaîne de caractères str2.
 44 ? 


Vrai ou faux ? La portion de code suivante affiche le message Here we are.
char str1[]="same contents";
char str2[]="same contents";
if(str1==str2)
{
  printf("Here we are\n");
}
 45 ? 


Vrai ou faux ? La portion de code suivante affiche le message Here we are.
char str1[]="same contents";
const char *str2="same contents";
if(str1==str2)
{
  printf("Here we are\n");
}
 46 ? 


Vrai ou faux ? La portion de code suivante affiche le message Here we are.
char str1[]="same contents";
char *str2=str1;
if(str1==str2)
{
  printf("Here we are\n");
}
 47 ? 


Utiliser une fonction du fichier d'en-tête standard
<string.h>
pour rechercher la lettre a dans la chaîne de caractères str puis, le cas échéant, la remplacer par la lettre b.
 48 ? 


Utiliser une fonction du fichier d'en-tête standard
<string.h>
pour rechercher la sous-chaîne cut dans la chaîne de caractères str puis, le cas échéant, terminer la chaîne à cet endroit.
 49 ? 


Écrire l'opération qui réalise la recopie du contenu de str1 vers celui de str2.
const char *str1="a sentence";
char str2[100];
 50 ? 


Écrire l'opération qui réalise la recopie du contenu de str1 à la suite de celui de str2.
const char *str1="a sentence";
char str2[100]="here is ";
 51 ? 


Reformuler l'appel strcat(str2, str1); en utilisant les fonctions strlen() et strcpy().
 52 ? 


Quelle est la taille minimale que doit avoir la chaîne de caractères str2 pour qu'on puisse y recopier le contenu de str1 ?
const char *str1="ENIB";
char str2[ /* À DÉTERMINER */ ];
 53 ? 


Quelle est la taille minimale que doit avoir la chaîne de caractères str2 pour qu'on puisse y recopier le contenu de str1 à la suite de son contenu ?
const char *str1="ian";
char str2[ /* À DÉTERMINER */ ]="Enib";
 54 ? 
{4} La ligne de commande

Quel est le prototype de la fonction main() à utiliser lorsque nous souhaitons accéder à la ligne de commande ?
 55 ? 


Combien de mots le programme prog voit-il sur sa ligne de commande lorsque nous l'invoquons de cette façon ? $ ./prog a bb ccc
 56 ? 


Combien de mots le programme prog voit-il sur sa ligne de commande lorsque nous l'invoquons de cette façon ? $ ./prog so many things to say
 57 ? 


Écrire l'appel qui permet à un programme d'afficher son propre nom.
 58 ? 


Écrire l'appel qui permet à un programme d'afficher le mot qui lui a été transmis juste après son nom lors de son invocation.
 59 ? 


Écrire une alternative simple qui soit exécutée si au moins deux mots ont été ajoutés au nom du programme sur sa ligne de commande.
 60 ? 


Écrire une alternative simple qui soit exécutée si moins de trois mots ont été ajoutés au nom du programme sur sa ligne de commande.
 61 ?