QCM en programmation C – Déclaration de variables – Partie 1

QCM sur C avec des réponses pour la préparation des entretiens, des tests en ligne, des examens etc.
 
 

1. Quel est le résultat de ce code C ?
#include <stdio.h>

void fct(const int *);

int main()
{
    const int i = 20;
    printf("%d ", i);
    fct(&i);
    printf("%d", i);
 
}
void fct(const int *i)
{
    *i = 30;
}

A 20

B 20 30

C Erreur de compilation

D Valeur non définie

C

Impossible de modifier une valeur de type const. La sortie est comme suite:

$ cc prog1.c
prog1.c: In function ‘fct’:
prog1.c:13: error: assignment of read-only location ‘*i’

 

2. Quel est le résultat de ce code C ?
#include <stdio.h>

int main()
{
    const int i = 20;
    int *ptr = &i;
    *ptr = 30;
     printf("%d\n", i);
     return 0;
}

A Erreur de compilation

B Affiche « Warning » et affiche 30

C Comportement indéfini

D 20

B

La modification de la variable const via des pointeurs non constants invoque le message « Warning ». La sortie est comme suite:

$ cc prog2.c
prog2.c: In function ‘main’:
prog2.c:5: warning: initialization discards qualifiers from pointer target type
$ a.out
30

 

3. Quel est le résultat de ce code C ?
#include <stdio.h>

int main()
{
     a = 5;
     printf("%d\n", a++);
     return 0;
}

A 0

B 5

C 6

D Erreur de compilation

D

La variable « a » n’est pas définie. La sortie est comme suite:

$ cc prog3.c
prog3.c: In function ‘main’:
prog3.c:4: error: ‘a’ undeclared (first use in this function)
prog3.c:4: error: (Each undeclared identifier is reported only once
prog3.c:4: error: for each function it appears in.)

 

 

4. Est-ce que cela se compile sans erreur ?
#include <stdio.h>

int main()
{
    for (int i = 0; i < 5; i++);
         return 0;
}

A Dépend de la norme C mise en œuvre par les compilateurs

B OUI

C NON

D Aucun de ces réponses

A

Les compilateurs implémentant C90 ne l’autorisent pas, mais les compilateurs implémentant C99 l’autorisent. La sortie est comme suite:

$ cc prog4.c
prog4.c: In function ‘main’:
prog4.c:4: error: ‘for’ loop initial declarations are only allowed in C99 mode
prog4.c:4: note: use option -std=c99 or -std=gnu99 to compile your code

 

5. Est-ce que cela compile sans erreur ?
#include <stdio.h>

int main()
{
     int i;
     {
         int i;
         for (i = 0; i < 5; i++);
     }
}

A Dépend de la norme C mise en œuvre par les compilateurs

B OUI

C NON

D Aucun de ces réponses

B
Il peut y avoir des blocs à l’intérieur. Les variables n’ont que la portée du bloc où ils sont déclarées.

 

6. Lequel de ces déclarations suivantes n’est pas pris en charge par C?

A float str = 6e3;

B String str;

C char *str;

D Les deux A et B

B
Il est correct en Java, mais pas en C.

 

7. Lequel des identifiants de format suivants on ne peut pas l’utilisé pour la variable var?
#include <stdio.h>

int main()
{
    char *var = "Top Qcm  Informatique";
}

A %s

B %f

C %d

D %c

B
%c peut être utilisé pour afficher la position d’index. %d peut encore être utilisé pour afficher sa valeur ASCII. %s est recommandé. %f ne peut pas être utilisé.

 

Partagez cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *