QCM en programmation C – Conversions de type – Partie 1

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

 
 

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

void main()
{
     float a = 0.2;
     if (a == 0.2)
         printf("OK");
     else
         printf("KO");
}

A KO

B OK

C Erreur d’exécution

D Erreur de compilation

A

Les nombres de type float ne doivent pas être comparés avec l’opérateur « == ». Nous comparons une approximation simple de 0,2 avec une approximation en double précision. Pour obtenir le résultat attendu, nous devons utiliser:

if (a == 0.2f) //vérifier si a est exactement 0.2f

 

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

void main()
{
     float a = 0.2;
     printf("%d, ", a);
     printf("%f", a);
}

A 0, 0.999999

B 0, 0.200000

C Valeur aléatoire, 0.200000

D 0.200000, Valeur aléatoire

C
L’identifiant %d est utilisé pour des nombres entier, c’est pour cela qu’il affiche une valeur aléatoire.

Sortie:

-1558040520, 0.200000

 

3. Quelle est la sortie de ce code ? (avec 5 et 6 sont des entrées)
#include <stdio.h>

void main()
{
     float a;
     int b;
     printf("entrez deux chiffres \n", a);
     scanf("%f %f", &a, &b);  //5, 6
     printf("%f, %d", a, b);
}

A 5.000000, 5

B 5.000000, Junk value

C Erreur d’exécution

D Autres

B
L’identifiant %d pour les nombres entier, c’est pour cela qu’il affiche Junk value.

 

 

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

void main()
{
     double a = 14728749.22;
     int b = a;
     printf("%d\n", b);
     printf("%lf\n", b);
}

A 1472874, 0.000000

B 1472874, 1472874.0

C 14728749, 14728749.22

D 0, 0.0

A

 

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

void main()
{
     int a = 97;
     char b = a;
     printf("%c\n", b);
}

A 97

B b

C a

D Dépend du compilateur

C
Le code ASCII de « a » est 97.

 

6. Lorsque un double est converti en float, la valeur est _____?

A Arrondis

B Tronqué

C Dépend du compilateur

D Dépend de la norme

C

 

 

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

int main()
{
     int i = 15;
     char c = -15;
     if (i < c)
         printf("Oui\n");
     else
         printf("Non\n");
}

A Non

B Oui

C Dépend du compilateur

D Dépend de la norme

A
Chaque fois que vous avez un opérateur comme (+ – * / % << >> & | ^ == != < <= > >=) entre deux opérandes de types différents, les deux types sont convertis en un type commun avant que l’opération ne soit effectuée.

 

 

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

int main()
{
     unsigned int i = 15;
     signed char c = -15;
     if (i > c)
         printf("Oui\n");
     else if (i < c)
         printf("Non\n");
}

A Non

B Oui

C Dépend du compilateur

D Dépend de la norme

A

 

Laisser un commentaire

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