Développer en langage C
La définition d?une fonction C ou d?un bloc de code s?écrit toujours entre :
begin ... end
[ ... ]
( ... )
{ ... }
Tout programme C débute par l?exécution d?une fonction spécifique, laquelle :
run
Start
Main
aucune de celles proposées
Quelle constante n?est pas valide en langage C
0x2F
"9"
'une chaine'
032
Quel type n?est pas un type primitif du langage C :
int
long
real
char
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; }
Le mot clé continue à l?intérieur d?une structure itérative sert à :
arrêter l?exécution du bloc courant et passer à l?itération suivante
continuer l?exécution du programme lors de la détection d?une erreur
sortir de la structure itérative
ce n?est pas un mot clé du langage C
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 l?ensemble de ces propositions, quelle est la seule qui soit valide en langage C :
il est possible d?imbriquer des définitions de fonction
une fonction C peut posséder un nombre variable d?arguments
une fonction C doit obligatoirement spécifier une valeur de retour
deux fonctions C différentes peuvent possédées le même nom. Dans ce cas la distinction est faite à l?aide des types des arguments
Quelle est la directive non supportée par le préprocesseur C :
#include
#ifndef
#define
#exception
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))
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
Quelle est le résultat produit par l?expression : printf("%d\n", strcmp("ok", "nok"));
1
0
-1
A partir des définitions suivantes : int i = 10; int * p = NULL; char *q = NULL; quelle est la seule affectation valide :
p = q;
q = p;
p = &i;
q = &i;
A partir des définitions suivantes : int i = 10; int * p = &i; char *q = NULL; quelle est l?affection qui produit une erreur à l?exécution :
i = *p;
i = (*p)++;
i = (int)*q;
q = (char *)&i;
Quelle est la liste des opérateurs applicables sur des structures nommées de même type et sur des pointeurs de structure :
= + - # $ [ ]
= == != . ^ & *
= . -> & *
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));
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" ...