Vous êtes sur la page 1sur 1

UNIVERSITÉ DE CERGY-PONTOISE ALGORITHMIQUE ET LANGAGE C

UFR SCIENCES ET TECHNIQUES – SAINT MARTIN L1S2–MPI – GROUPE D1

CORRECTION DU CONTRÔLE CONTINU 3 JEUDI 10 AVRIL 2014

EXERCICE 1 : FONCTION SOMME DES CARRÉS (5 POINTS)


Prototype : int sommeCarres(int n, int m);
Déclaration :
int sommeCarres(int n, int m) {
return n*n + m*m;
}

EXERCICE 2 : FONCTION FACTORIELLE (6 POINTS)


1.
Fonction factorielle (entier n)
Début
si n = 0 faire
retourner 1 ;
sinon faire
retourner factorielle(n-1)*n ;
finsi
Fin

2. Ce n’est pas une récursivité terminale car l’appel de la fonction n’est pas la dernière opération
dans la déclaration de cette fonction.

EXERCICE 3 : ANALYSE DE PROTOTYPE (4 POINTS)


Dans un programme principal, on voit apparaître l’appel de fonction suivant :
coordPolaires (abscisse, ordonnee, &rayon, &angle) ;

1. D’après ce prototype, les paramètres abscisse et ordonnee sont passés par valeur, les paramètres
rayon et angle sont passés par adresse.

2. Seuls les paramètres passés par adresse seront durablement modifiés par la fonction, soit ici
rayon et angle.

EXERCICE 4 : FONCTION SOMME DES CHIFFRES (5 POINTS)


Remarque : possibilité d’implémenter une fonction ou une procédure, itérative ou récursive.

int sommeChiffres(int nombre) {


int somme = 0;
while (nombre != 0) {
somme += nombre%10;
nombre -= nombre%10;
nombre /= 10;
}
return somme;
}

Vous aimerez peut-être aussi