QCM en programmation C – Opérateurs arithmétiques – Partie 2
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() { int x = 3; int y = ++x + x++ + --x; printf("Valeur de y est %d", y); }
A Valeur de y est 10
B Valeur de y est 13
C Valeur de y est 12
D Valeur indéfini
2. Déterminer la priorité de chaque opérateur (le plus élevé au plus bas) ?
A +, -, %, *, /
B %, +, -, *, /
C %, +, /, *, –
D %, *, /, +, –
3. Lequel des éléments suivants n’est pas une opération arithmétique?
A x %= 10;
B x != 10;
C x /= 10;
D x *= 10;
4. Lequel des types de données suivantes générera une erreur sur l’opération modulo %?
A float
B int
C short
D char
5. Parmi les options suivants, on peut citer les opérateurs arithmétiques fondamentaux, c’est-à-dire que l’exécution de l’opération souhaitée peut être effectuée en utilisant uniquement cet opérateur?
A +, -, *, /, %
B +, -, *, /
C +, -, %
D +, –
6. Quelle est la valeur de « z » dans ce code ?
#include <stdio.h> int main() { int x = 10; double y = 5.6; int c; int z = x + y; printf("Valeur de z est %d", z); }
A Valeur de z est 10
B Valeur de z est 15
C Valeur de z est 15,6
D Valeur de z est 16
7. Quelle est la valeur de « z » dans ce code ?
#include <stdio.h> int main() { int x = 10, y = 5, w = 5; int d; int z = x == (y + w); printf("Valeur de z est %d", z); }
A Valeur de z est 5
B Valeur de z est 1
C Valeur de z est 10
D Erreur de syntaxe
La réponse de la question 1 est 12 et non pas 13.
Quelle est la sortie de ce code C ?
Réponse correcte : C
La réponse de la question 1 est D: indéfini!
La norme ne définit pas l’ordre d’exécution entre 2 « sequence points »
« A sequence point is a point in the program’s execution sequence where all previous side- effects shall have taken place and where all subsequent side-effects shall not have taken place »
Quoiqu’il en soit ce code est exactement ce qu’il ne faut pas faire, car l’intention du programmeur est difficile/impossible à capter à la 1e lecture.