Développer en langage C
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"
La définition d?une fonction C ou d?un bloc de code s?écrit toujours entre :
begin ... end
[ ... ]
( ... )
{ ... }
Pour les variables suivantes : int i = 2; int j = 3; int k = 0; Quelle est la valeur de k après évaluation de l?expression k = (++i) * (j--) - 1;
5
8
7
erreur à la compilation
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
Parmi les situations suivantes, quelles sont les situations correspondant à l?utilisation d?un switch :
effectuer un traitement particulier en fonction d?une valeur entière spécifique
factoriser un traitement pour un ensemble de valeurs entières ordonnées
fournir un traitement par défaut
substituer l?exécution de la fonction courante par celle spécifiée dans le switch
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 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
Une bonne programmation modulaire favorise :
la maintenance et évolutivité des programmes
le développement en équipes
la limitation des dépendances inter modules
l'optimisation des ressources mémoire
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))
Tenant compte de la macro : #define MAX 3 quelle est la seule déclaration de tableau valide :
int tab1["z"] = MAX;
char tab2[max];
char tab3[MAX] = "NOK";
void foo(short tab5[][MAX] );
A partir des définitions suivantes : char tab1[10] = "Exemple"; char tab2[20] ; quel est le contenu de tab2 après évaluation de l?expression : strcat(strcpy(tab2, &tab1[2]), "...");
Ex?emple
?Exemp
emple?
Etant donnée la définition : const int i = 10; parmi les propositions suivantes, quelle est la seule valide :
int * p1 = null;
int * p2 = i;
int * const p3 = &i;
const int * p4 = &i;
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
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" ...