QCM en programmation C – Les Constants – Partie 2

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

 
 

1. Les types d’énumération sont manipulés par ____?

A Le compilateur

B Le préprocesseur

C L’éditeur de liens

D L’assembleur

A
Les types d’énumération sont traités par le compilateur.

 

2. Quelle est la sortie de ce code C?
#include <stdio.h>

int main()
{
     printf("Hello\rworld!\n");
     return 0;
}

A Hello\rworld!

B Helloworld!\n

C world!

D world!Hello

C
le caractère « r » est un retour de chariot et déplace le curseur vers l’arrière. Hello est remplacé par world!

 

3. Quelle est la sortie de ce code C?
#include <stdio.h>

int main()
{
     printf("Hello\r\nworld!\n");
     return 0;
}

A Hello\rworld!

B Hello
world!

C world!

D world!Hello

B

la combinaison \r\n fait passer le curseur à la ligne suivante. La sortie est comme suite:

$gcc prog1.c
$a.out
Hello
    world!

 

 

4. Quelle est la sortie de ce code C?
#include <stdio.h>

int main()
{
    const int q;
    q = 4;
    printf("q est %d", q);
    return 0;
}

A q est 4

B erreur de compilation

C erreur d’exécution

D q est suivi d’une valeur de garbage

B

Étant donné que « q » est une variable constante, donc il doit être déclarée et définie en même temps, cela entraîne une erreur. La sortie est comme suite:

$gcc prog2.c
$a.out
prog2.c: In function ‘main’:
prog2.c:5: error: assignment of read-only variable ‘q’

 

5. Commenter la sortie de ce code C?
#include <stdio.h>

int main()
{
    int q = 8;
    int *const p = &q;
    int a = 6;
    p = &a;
    printf("%d", p);
}

A Adresse de q

B Adresse de a

C Erreur de compilation

D Adresse de q plus l’adresse de a

C

Étant donné que le pointeur p est déclaré constante, en essayant de lui affecter une nouvelle valeur génère une erreur. La sortie est comme suite:

$gcc prog3.c
$a.out
prog3.c: In function ‘main’:
prog3.c:7: error: assignment of read-only variable ‘p’
prog3.c:8: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘int * const’

 

6. Laquelle de ces déclarations est faux?

A Les variables constantes ne doivent pas être définies telles qu’elles sont déclarées et peuvent être définies plus tard

B Les variables constantes globales sont initialisées à zéro

C Le mot-clé const est utilisé pour définir des valeurs constantes

D Vous ne pouvez pas réaffecter une valeur à une variable constante

A
Étant donné que la variable constante doit être déclarée et définie en même temps, cela entraîne une erreur. D’où la déclaration 1 est fausse.

 

7. Commenter la sortie de ce code C?
#include <stdio.h>

int main()
{
     int const q = 7;
     q++;
     printf("q =  %d", q);
}

A q = 8

B Erreur due à int suivit par const

C Erreur, car une variable constante ne peut être modifiée que deux fois

D Erreur, car une variable constante ne peut pas être modifiée

D

La variable constante doit être déclarée et définie en même temps. Essayer de la modifier entraîne une erreur. La sortie est comme suite:

$gcc prog4.c
$a.out
prog4.c: In function ‘main’:
prog4.c:5: error: increment of read-only variable ‘q’

 

 

8. Commenter la sortie de ce code C?
#include <stdio.h>

int const afficher()
{
     printf("Hello world!");
     return 0;
}

void main()
{
     afficher();
}

A Erreur car le nom de la fonction ne peut pas être précédé par const

B Hello world!

C Hello world! est affiché en infini

D Pas de sortie

B

Une fonction devient const lorsque le mot clé const est utilisé dans la déclaration de la fonction. L’idée derrière des fonctions const n’est pas leur permettre de modifier l’objet sur lequel elles sont appelées. Il est recommandé de définir autant de fonctions constantes que possible afin d’éviter toute modification des objets. La sortie est comme suite:

$gcc prog5.c
$a.out
Hello world!

 

Laisser un commentaire

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