QCM – Programmation procédurale en C
Voici un exemple de QCM portant sur la programmation procédurale en C. Il couvre des concepts fondamentaux du C tels que les fonctions, les pointeurs, et la gestion de la mémoire.
QCM – Programmation procédurale en C
1. Quelle est la bonne syntaxe pour déclarer une fonction en C ?
- a)
int fonctionName{}
- b)
void fonctionName()
- c)
function fonctionName()
- d)
function fonctionName[]
Réponse : b) void fonctionName()
2. Que retourne une fonction en C si aucune valeur de retour n’est spécifiée ?
- a) Elle retourne 0
- b) Elle retourne 1
- c) Elle ne retourne rien
- d) Elle retourne une valeur aléatoire
Réponse : c) Elle ne retourne rien (si la fonction est définie avec void
comme type de retour).
3. Lequel des éléments suivants est utilisé pour passer une variable par référence dans une fonction en C ?
- a) Le type de retour de la fonction
- b) Les arguments passés par valeur
- c) Les pointeurs
- d) Les tableaux
Réponse : c) Les pointeurs
4. Quel est le mot-clé utilisé pour renvoyer une valeur à partir d’une fonction en C ?
- a)
send
- b)
return
- c)
result
- d)
exit
Réponse : b) return
5. Comment appelle-t-on une fonction déclarée dans un fichier mais définie dans un autre fichier en C ?
- a) Une fonction statique
- b) Une fonction externe
- c) Une fonction locale
- d) Une fonction anonyme
Réponse : b) Une fonction externe
6. Quelle est la différence principale entre une variable locale et une variable globale en C ?
- a) Une variable locale est accessible par toutes les fonctions
- b) Une variable globale est accessible uniquement dans la fonction où elle est déclarée
- c) Une variable locale est déclarée dans une fonction, tandis qu’une variable globale est déclarée en dehors de toutes les fonctions
- d) Les variables locales et globales sont les mêmes en C
Réponse : c) Une variable locale est déclarée dans une fonction, tandis qu’une variable globale est déclarée en dehors de toutes les fonctions.
7. Que se passe-t-il lorsque vous utilisez l’opérateur &
dans un programme C ?
- a) Il ajoute deux nombres
- b) Il soustrait deux nombres
- c) Il renvoie l’adresse mémoire d’une variable
- d) Il déclare un pointeur
Réponse : c) Il renvoie l’adresse mémoire d’une variable
8. Quelle fonction de la bibliothèque standard est utilisée pour allouer dynamiquement de la mémoire en C ?
- a)
malloc()
- b)
scanf()
- c)
alloc()
- d)
memset()
Réponse : a) malloc()
9. Dans une fonction, quel mot-clé est utilisé pour empêcher la modification d’une variable passée en argument ?
- a)
static
- b)
const
- c)
volatile
- d)
register
Réponse : b) const
10. Quel est le but d’une fonction récursive en C ?
- a) Appeler une autre fonction de manière continue
- b) Retourner une valeur d’une fonction anonyme
- c) Appeler la fonction elle-même jusqu’à une condition de sortie
- d) Libérer la mémoire allouée dynamiquement
Réponse : c) Appeler la fonction elle-même jusqu’à une condition de sortie
Ce QCM programmation procédurale en C couvre divers aspects de la programmation procédurale en C et permet de tester la compréhension de concepts clés tels que les fonctions, les pointeurs, et la gestion de la mémoire.
Fiche Pratique : Programmation procédurale en langage C
1. Définition
La programmation procédurale en C est un paradigme qui repose sur l’organisation du programme en sous-unités appelées fonctions. Chaque fonction représente une série d’instructions visant à effectuer une tâche spécifique. La logique du programme est construite en appelant ces fonctions dans un ordre déterminé.
2. Caractéristiques de la programmation procédurale en C
- Modularité : Le code est divisé en plusieurs fonctions autonomes et réutilisables. Cela facilite la maintenance, la compréhension et la réutilisation du code.
- Gestion manuelle de la mémoire : C permet une gestion explicite de la mémoire à travers des fonctions comme
malloc()
,calloc()
,realloc()
etfree()
. - Portée des variables : Les variables peuvent être locales (déclarées dans une fonction) ou globales (déclarées en dehors de toutes les fonctions). Les variables locales ne sont accessibles qu’au sein de la fonction où elles sont déclarées.
3. Fonctions
Les fonctions sont au cœur de la programmation procédurale en C. Voici les étapes clés pour déclarer et utiliser une fonction :
- Déclaration :
retour fonctionNom(type_argument1, type_argument2);
Exemple :
int addition(int a, int b);
- Définition :
type_retour fonctionNom(type_argument1 nom_argument1, type_argument2 nom_argument2) {
// Corps de la fonction
return valeur;
}
Exemple :
int addition(int a, int b) {
return a + b;
}
- Appel de fonction :
int resultat = addition(5, 3);
4. Passage de paramètres
- Par valeur : Les valeurs des arguments sont copiées dans les paramètres de la fonction. Toute modification des paramètres dans la fonction n’affecte pas les arguments d’origine.
Exemple :
void modifier(int a) {
a = 10; // Ne modifie pas la variable originale
}
- Par référence (via les pointeurs) : L’adresse de la variable est passée, et toute modification dans la fonction affecte la variable d’origine.
Exemple :
void modifier(int *a) {
*a = 10; // Modifie la variable originale
}
5. Pointeurs
Les pointeurs permettent de manipuler directement les adresses mémoire, ce qui est essentiel pour le passage de paramètres par référence, la gestion dynamique de la mémoire et les manipulations complexes de données.
- Déclaration d’un pointeur :
c int *p; // Pointeur vers un entier
- Initialisation d’un pointeur :
c int a = 5; int *p = &a; // P prend l'adresse de a
- Déréférencement :
c *p = 10; // Change la valeur de a à travers le pointeur
6. Gestion de la mémoire
En C, la gestion de la mémoire est manuelle, via les fonctions suivantes :
- malloc() : Alloue une certaine quantité de mémoire.
int *p = (int *)malloc(sizeof(int) * 5); // Alloue un tableau de 5 entiers
- free() : Libère la mémoire allouée dynamiquement.
c free(p); // Libère la mémoire pointée par p
7. Structures
Les structures permettent de regrouper différents types de données sous une seule entité. Elles sont particulièrement utiles pour représenter des objets complexes.
- Déclaration d’une structure :
struct Personne { char nom[50]; int age; };
- Utilisation d’une structure :
c struct Personne p1; p1.age = 25;
8. Variables globales et locales
- Variables locales : Déclarées à l’intérieur d’une fonction, elles ne sont accessibles qu’à l’intérieur de cette fonction.
Exemple :
void fonction() {
int x = 5; // Variable locale à fonction()
}
- Variables globales : Déclarées en dehors de toutes les fonctions, elles sont accessibles par toutes les fonctions du programme.
Exemple :
int x = 10; // Variable globale
void fonction() {
x = 5; // Modifie la variable globale
}
9. Les bibliothèques standard
La bibliothèque standard en C propose des fonctions utilitaires pour diverses opérations (entrées/sorties, manipulation de chaînes de caractères, etc.).
- stdio.h : Fournit des fonctions d’entrée/sortie comme
printf()
,scanf()
. - stdlib.h : Contient des fonctions pour la gestion de la mémoire (
malloc()
,free()
), la génération de nombres aléatoires, etc. - string.h : Offre des fonctions de manipulation de chaînes de caractères comme
strlen()
,strcpy()
.
10. Exemple de programme
Voici un exemple simple d’un programme C avec une fonction de calcul de la somme de deux nombres :
#include <stdio.h>
// Déclaration de la fonction
int addition(int a, int b);
int main() {
int num1 = 5, num2 = 10;
int resultat = addition(num1, num2);
printf("La somme est : %d\n", resultat);
return 0;
}
// Définition de la fonction
int addition(int a, int b) {
return a + b;
}
Résumé
La programmation procédurale en C repose sur la décomposition d’un programme en fonctions modulaires qui exécutent des tâches spécifiques. Elle offre un contrôle direct sur la mémoire et le matériel grâce à l’utilisation de pointeurs et d’une gestion manuelle de la mémoire.