Développer en langage C
La définition d?une fonction C ou d?un bloc de code s?écrit toujours entre :
begin ... end
[ ... ]
( ... )
{ ... }
Une chaîne de production de programme C est généralement constituée :
d?un éditeur de source, d?un compilateur, d?un éditeur de lien
d?un éditeur de source, d?une plate-forme d?exécution, d?un débogueur
d?un gestionnaire de version, d?un chargeur, d?une librairie
d?un fichier "a.out", de fichier ".c", de fichiers ".lib"
Quelles sont les tailles en octets des types prédéfinis long, char, double, short :
8, 1, 4, 2
4, 1, 4, 2
4, 2, 8, 4
4, 1, 8, 2
Quelle constante n?est pas valide en langage C
0x2F
"9"
'une chaine'
032
En fonction de la variable : int i = 0; quelle est la structure alternative qui affiche «ok» à l?écran
if(i = 0) printf("%s", "ok");
if(i == 0) { printf("%d", "ok"); }
if(i == 0) then printf("%s", "ok");
if(i != 0) printf("%s", "nok"); else printf("%s", "ok");
Quelle est la structure de contrôle itérative non valide en langage C
for (i = 0; i<10; i++) printf("%d", i);
while (i>=0) { printf("%d", i); i--; }
until (i<0) { printf("%d", i); i--; }
for(i=10; ; i--) {printf("%d", i); if(i==0) break; }
Quelle est la technique de passage de paramètre non supportée par le langage C
passage par adresse
passage par référence
passage par pointeur
passage par valeur
Parmi les propositions suivantes quelle est la seule qui soit exacte :
le corps d?une fonction est obligatoirement défini dans le même fichier que son prototype
il faut utiliser le mot clé recursive pour rendre une fonction C récursive
la connaissance du corps d?une fonction n?est pas obligatoire pour compiler un programme l?invoquant
chaque branche d?exécution d?une fonction doit obligatoirement se conclure par le mot clé return
Parmi les propositions suivantes, quelle est celle qui est incorrecte :
un module C est généralement constitué d?un fichier interface ou header (.h) et d?un fichier d?implémentation ou corps (.c)
pour éviter la redéfinition de types, il est nécessaire d?encadrer le contenu d?un fichier header par des directives de compilation conditionnelle #ifndef ? #endif
une variable static est implémentée dans la pile
une fonction static a une portée limitée au module qui l?a définie
Identifiez la macro pré processeur non valide :
#define PI 3.141593
#define forever for( ; ; )
#define max(int I, int J) ((I)>(J) ? (I) : (J))
#define getrandom(min, max) ((rand()%(int)(((max) + 1)-(min)))+ (min))
Etant donné la déclaration de la fonction : void foo(char * t); et la définition du tableau : char tab[10] = "Exemple"; quels sont les appels valides de la fonction foo :
foo(tab);
foo(&tab[0]);
foo(*tab[0]);
aucun
A partir de la définition suivante : char tab[10] = "Exemple"; quel est le résultat produit par l?expression : printf("%d\n", strlen(&tab[1]));
6
7
10
erreur à la compilation
En langage C, l?exploitation de la mémoire dynamique est généralement basée sur l?utilisation du couple :
new et delete
new et dispose
get et put
malloc et free
Identifiez la bonne définition d?un pointeur p sur un tableau de 10 fonctions prenant comme argument un int et restituant une chaîne de caractères :
char *(*p[10])(int);
char *(*(*p)[10])(int);
char *(*(*p[10]))(int);
char *(*(*p))[10])(int);
Etant donné la définition : typedef struct Personne { char nom[20]; int age; } Personne; Quelles sont les propositions valides :
Personne p1;
struct Personne p3 = {"Dupont", 30};
Personne * p4;
Personne * p5 = malloc(sizeof(Personne));
Quelle est la liste des opérateurs applicables sur des structures nommées de même type et sur des pointeurs de structure :
= + - # $ [ ]
= == != . ^ & *
= . -> & *
aucune de celles proposées
Parmi les propositions suivantes, lesquelles affichent le caractère 'a' à l?écran :
putchar(97); // 97 est le code ascii du caractere 'a'
putc('a', stdout);
fprintf(stdout, "%c", 'a');
aucune
FILE *fopen(const char *nom, const char *mode); est le prototype de la fonction standard d?ouverture de fichier. Quels sont les principaux modes d?ouverture exploitables par cette fonction :
"R" "W" "A" ...
"re" "wr" "ap" ...
"get" "put" "append" ...
"r" "w" "a" ...