Vous êtes sur la page 1sur 4

Ministère de l’Enseignement supérieur Année académique 2023-2024

ECOLE SUP PREPA – YDE Niveau 2


Nkolfoulou – Route de SOA

IQ301 : PROGRAMMATION EN C & PYTHON


FICHE DE TD/TP No2
Exercice 1 : On souhaite écrire un programme qui permet de rechercher dans un tableau d'entiers T un
élément e fourni par l’utilisateur ; afficher la 1ère position de e s’il se trouve dans le tableau, sinon afficher un
message indiquant que e n’est pas dans le tableau T.
1) Ecrire la première version de ce programme en utilisant la recherche séquentielle : on compare
successivement les valeurs du tableau avec l’élément donné.
2) Ecrire la deuxième version de ce programme en utilisant la recherche dichotomique. Ici, on suppose
que le tableau T est trié.
3) Ecrire la troisième version de ce programme pour afficher toutes les positions auxquelles se trouve e
dans le tableau T.
Exercice 2 : Ecrire un programme qui reçoit en entrée une chaine ch d’au plus 20 caractères et qui affiche
le nombre de consonnes cons et le nombres de voyelles voy qu’elle contient.
Exercice 3 : Ecrire un programme permettant de lire deux chaines d’au plus 25 caractères, les compare et
affiche un message indiquant leur égalité ou bien leur inégalité. Ne pas utiliser la fonction strcmp de la
bibliothèque string.h
Exercice 4 : Ecrire un programme permettant lire une chaine d’au plus 25 caractères puis afficher un
message indiquant qu’il s’agit ou non d’un palindrome. Exemple : ressasser, elle sont des palindromes.
Exercice 5 : Ecrire une fonction int main (int argc, char * argv[ ]) qui vérifie le nombre de paramètres contenus
dans le tableau argv et s’il sont au nombre de 4, effectue l’opération indiquée par les trois derniers paramètres.
Par exemple en ligne de commandes, si l’utilisateur saisit : prog 3 + 4, le programme doit afficher 7.
Exercice 6 : Ecrire un programme qui construit et affiche une matrice carrée unité U d’ordre N saisi par un
utilisateur. Une matrice unité est une matrice telle que : les éléments diagonaux valent 1 et le reste 0.
Exercice 7 : Ecrire un programme multiplie une matrice A d’entiers d’ordre N x M avec une matrice B
d’entiers d’ordre M x P et affiche résultat de la multiplication. Les éléments de A et B sont saisis par
l’utilisateur. On se servira du principe suivant : A(N,M) * B(M,P) = C(N,P) où

Exercice 8 : En utilisant une structure, écrire un programme C qui lit deux nombres complexes z1 et z2 et
qui calcule et affiche leur rapport (z1/z2) et leur produit (z1*z2).
Exercice 9 : Ecrire un programme qui crée un tableau Emp qui contiendra des informations sur les n (20
max) employés d’une entreprise. Un employé est caractérisé par un matricule, un nom, un salaire, un âge,
un statut matrimonial (C, M, D). Le programme lit par la suite les informations de n employés puis affiche tous
les noms, statuts et salaires des employés mariés touchant entre 70000F et 300000F.
Exercice 10 : Dans un supermarché on trouve une multitude d’articles. Chaque article est caractérisé par
une référence (06 caractères), un nom (maximum 15 caractères), une quantité en stock et un prix unitaire.
Ce supermarché peut avoir jusqu’à 5000 articles différents.
Ecrire un programme C qui permet d’enregistrer des informations sur n articles ; n étant saisi par l’utilisateur
puis affiche les noms et les prix des articles en rupture de stock (quantité nulle).
Page 1/4
Exercice 11 : Un vecteur de l’espace est caractérisé par une abscisse, une ordonnée et une côte.
1) Déclarer un vecteur de l’espace sachant qu’il s’agit d’un enregistrement.
2) Ecrire une fonction qui retourne le produit scalaire de deux vecteurs de l’espace passés en arguments.
3) Ecrire un programme C qui lit deux vecteurs A et B de l’espace et utilise la fonction précédente pour
indiquer s’ils sont orthogonaux ou non.
Exercice 12 :
1) Ecrire une fonction qui retourne le nombre d’occurrences d’une valeur val dans un tableau d’entiers. La
valeur et le tableau sont reçus en paramètres.
2) Ecrire un programme C qui affiche le nombre d’occurrences de chaque élément d’un tableau d’entiers.
Le programme devra s’assurer que le nombre d’occurrences d’un élément est affiché une seule fois.
Exercice 13 :
1) Ecrire une fonction itérative qui calcule le produit des éléments d’un tableau reçu en paramètres.
2) Ecrire la version récursive de la fonction précédente.
3) Ecrire une fonction récursive qui retourne selon la méthode d’Euclide, le PGCD de deux entiers.
Exercice 14 :
1) Soit une suite numérique définie par V1=1, V2=2 et Vn= 5Vn-1 - 2Vn-2. Ecrire une fonction récursive
permettant de calculer le terme Vn de cette suite.
2) Ecrire un programme C qui utilise la fonction précédente calculer la somme et le produit des n premiers
termes de la suite (Vn).
Exercice 15 :
1) Ecrire une fonction récursive qui reçoit en paramètres un nombre x et un entier naturel n et retourne xn.
2) Ecrire une fonction qui se sert de la fonction précédente pour calculer l’image d’un nombre x0 par un
polynôme. En outre, les coefficients du polynôme sont reçus en paramètres sous forme d’un vecteur.
Si on considère le polynôme −2x 3 + 7x 2 − 11, le vecteur sera : -2 7 0 -11
Exercice 16 : Ecrire une fonction de type void qui multiplie une matrice par un coefficient. La matrice et le
coefficient sont fournis en paramètres.
Exercice 17 : Ecrire une fonction qui prend en paramètres un tableau de réels, puis retourne la valeur 1 ou
0 selon que le tableau est trié dans l’ordre croissant ou non.
Exercice 18 : Ecrire un programme qui lit un tableau d’au plus 20 entiers puis se sert d’une fonction pour
trier les éléments de ce tableau dans l’ordre décroissant. Le programme affiche par la suite le résultat du tri.
Exercice 19 : Rappelons qu’un nombre entier n est parfait si la somme de ses diviseurs excepté lui-même
vaut n. Exemple : 6 = 1 + 2 + 3 est parfait.
1) Ecrire une fonction somme_div qui retourne la somme des diviseurs d'un nombre passé en paramètre.
2) Ecrire une fonction parfait qui teste si un nombre passé en paramètre est parfait et qui retourne 1 s'il
l'est et 0 sinon.
3) Ecrire un programme C qui affiche tous les nombres parfaits inférieurs à un nombre N saisi au clavier.
Exercice 20 :
1) Ecrire une fonction itérative qui retourne le factoriel d’un nombre reçu en paramètre.
2) Ecrire la version récursive de la fonction précédente.
3) En vous servant de la fonction factoriel, écrire une fonction qui retourne la combinaison de p dans n.
4) En vous servant de la fonction précédente, écrire un programme C qui affiche le triangle de Pascal en
calculant les coefficients binomiaux.
N.B : on n’utilisera pas de tableaux.

Page 2/4
Exercice 21 :
On se propose de programmer un convertisseur de nombres.
1) Ecrire une fonction int base10_baseb(int n, int b) qui convertit dans une base b un nombre décimal reçu
en paramètre. La fonction retourne le nombre d’éléments du tableau de restes R qui sera par ailleurs
déclarée globalement.
2) Ecrire une fonction int nbChiffres (int n) qui calcule et retourne le nombre de chiffres du nombre n.
3) Ecrire une fonction int chiffre (int n, int i) qui retourne le chiffre i du nombre n partant des unités. Par
exemple, le chiffre 3 du nombre 1758 est 7.
4) Ecrire une fonction int puissance (int n, int m) qui calcule et retourne n à la puissance m.
5) Ecrire une fonction int verifieNombreBase (int n, int b) qui retourne 1 lorsque n est un nombre de la base
b et 0 sinon.
6) Ecrire une fonction int baseb_base10 (int n, int b) qui se sert des trois fonctions précédentes pour
convertir en décimal le nombre n écrit dans la base b.
7) Ecrire un programme C qui convertit un nombre dans la base indiquée. Pour cela, le menu suivant sera
affiché à l’utilisateur :

L’utilisateur sera invité à opérer son choix autant de fois que possible jusqu’à ce qu’il décide de quitter le
convertisseur. Dans ce cas, un message d’au revoir est affiché. Lorsqu’il opère un choix inexistant dans la
liste, un message l’invitant à respecter les choix de la liste est affiché. Lorsqu’il opère un choix de la liste autre
que 7, il est invité à fournir les données nécessaires qui devront faire l’objet d’une vérification. En particulier,
on devra s’assurer à l’aide d’une boucle que le nombre fourni est correct dans la base indiquée. Par la suite,
les fonctions appropriées sont appelées puis le résultat de la conversion est affiché. On pourra utiliser
l’instruction switch pour gérer les différents choix.

Exercice 22 : Ecrire un programme C qui lit une matrice d’ordre n x m puis se sert d’une fonction de type void
pour calculer sa trace (somme de ses éléments diagonaux), la somme de ses éléments pairs, le produit de
ses éléments impairs et la moyenne de ses éléments. Le programme affiche par la suite les quatre résultats
de la fonction.
Exercice 23 : Ecrire exactement le résultat affiché à l’écran par le programme suivant après son exécution :
#include<stdio.h>
#include<stdlib.h>
int main(){
int m = 199,n,*p,*q,**x;
p = &m;
q = &n;
*q = m/3;
q = p;
printf("1: m = %d, n = %d, *p = %d, *q = %d\n", m, n,*p,*q);
Page 3/4
x = &q;
m = n+1;
**x = 75;
*p = **x ;
printf("2: m = %d, n = %d, *p = %d, *q = %d, **x = %d\n",m, n,*p,*q,**x);
return EXIT_SUCCESS;
}
Exercice 24 : Ecrire un programme C qui utilise la notion de pointeur pour permuter le contenu de deux
variables entières.
Exercice 25 : Écrire un programme allouant dynamiquement un emplacement pour un tableau d’entiers, dont
la taille est fournie en donnée. Utiliser ce tableau pour y placer des nombres entiers lus également en donnée.
Créer ensuite dynamiquement un nouveau tableau destiné à recevoir les carrés des nombres contenus dans
le premier.
Exercice 26 : En utilisant les pointeurs, écrire un programme permettant de conjuguer un verbe du 1 er groupe
au présent de l’indicatif. Le programme invitera un utilisateur à saisir un verbe du premier groupe et s’assurera
que ce verbe est effectivement du 1er groupe. Par la suite, la conjugaison correspondante s’affichera à l’écran.
Exemple : parler au présent de l’indicatif
Je parle
Tu parles
Il/elle parle
Nous parlons
Vous parlez
Ils/elles parlent
Exercice 27 : Ecrire un programme C qui permet de créer et de lire une liste chaînée d'entiers et affiche
ensuite ses éléments.
La structure utilisée pour les cellules de la liste doit être constituée de :
o un entier
o un pointeur sur la structure de la liste (la cellule suivante)

Illustration

Tête de la liste (point d’accès à la liste)

Exercice 28 : Ecrire un programme C qui crée et lit une liste chaînée de n entiers fournis par l’utilisateur et
lit ensuite un entier et une position et insère l'entier dans la position précisée.

Exercice 29 : Ecrire un programme C qui crée et lit une liste chaînée d'entiers, puis supprime de cette liste
toutes les occurrences d'un entier entré par l'utilisateur.

Page 4/4

Vous aimerez peut-être aussi