Développer en langage C
Tout programme C débute par l?exécution d?une fonction spécifique, laquelle :
run
Start
Main
aucune de celles proposées
La définition d?une fonction C ou d?un bloc de code s?écrit toujours entre :
begin ... end
[ ... ]
( ... )
{ ... }
Quel est le caractère spécial permettant le retour à la ligne :
'l'
'/l'
'\n'
'/0'
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");
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
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
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
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))
Quelle est la directive non supportée par le préprocesseur C :
#include
#ifndef
#define
#exception
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] );
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;
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;
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" ...