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;
3
5
4
erreur à la compilation
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;
8
7
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; }
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 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
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))
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
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
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 : int i = 10; int * p = NULL; char *q = NULL; quelle est la seule affectation valide :
p = q;
q = p;
p = &i;
q = &i;
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;
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));
En langage C, une union est :
une structure dont tous les champs sont alignés sur la même adresse en mémoire
une structure construite par concaténation de plusieurs structures
une structure dont la validité des champs est définie à partir de la valeur d?un sélecteur de cas
un champ de bit manipulable à l?aide des opérateurs & | ! ^ >> et <<
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" ...