Informatique et Programmation Examen N°1
10 mars 2009 18h30-20h30
Nom : Prénom :
Nom de la machine : Répertoire de travail : Remarques :
Exercice 1 :
Donner les résultats des codes suivants :
1) float re=0.5, im=0.866; printf("%.2f+j%.2f\n",re,im);
2) char c='c'; printf("%c -> %d -> Ox%x\n",c,c,c);
3) int N=4,res=0,i; for(i=1; i<=N; ++i) res+=i; printf("%d\n",res);
Exercice 2 :
Ecrire un programme qui calcule la somme des N premiers nombres entiers multiple de 3.
Exercice 3 :
Ecrire une fonction qui retourne un tableau : le premier élément du tableau et le dernier sont permutés, le deuxième et l’avant dernier sont permutés, etc …
Tester cette fonction au sein d’un petit programme qui permute le tableau constitué des élements suivants : 1 2 3 4 5
Exercice 4 :
Ecrite une fonction qui réalise l’arrondi d’un nombre réel au plus proche entier. Cette fonction devra avoir le prototype suivant :
void f2i(float *x);
Tester cette fonction au sein d’un petit programme qui demande un nombre réel et affiche son arrondi. La fonction devra si possible fonctionner également pour les nombres négatifs.
Correction
Exercice 1 :
Voici les résultats :
resultat1 : 0.50+j0.87 resultat2 : c -> 99 -> Ox63 resultat3 : 10
Exercice 2 :
#include <stdio.h>
#include <stdlib.h>
int main() {
int N,i,somme=0;
printf("Entrez la valeur de N : ");
scanf("%d",&N);
for(i=1; i<=N; i++) somme+=3*i;
printf("La somme des %d premiers nombres multiple de 3 est :
%d\n",N,somme);
return 0;
}
Exercice 3 :
#include <stdio.h>
#include <stdlib.h>
#define DIM 5
void permute(int x[], int taille) { int tmp,i;
for(i=0; i<taille/2; ++i) { tmp=x[i];
x[i]=x[taille-1-i];
x[taille-1-i]=tmp;
} }
int main() { int tab[DIM],i;
for(i=0; i< DIM; ++i) tab[i]=i+1;
printf("avant : ");
for(i=0; i< DIM; ++i) printf("%d ",tab[i]);
printf("\n");
permute(tab,DIM);
printf("apres : ");
for(i=0; i< DIM; ++i) printf("%d ",tab[i]);
printf("\n");
return 0;
}
Exercice 4 :
#include <stdio.h>
#include <stdlib.h>
void f2i(float *x);
int main() { float val;
printf("Entrez la valeur du nombre reel a arrondir : ");
scanf("%f",&val);
f2i(&val);
printf("Voici la valeur du nombre reel arrondir : %.0f\n",val);
return 0;
}
void f2i(float *x) {
*x=(int)(*x+(*x>0 ? 0.5:-0.5));
}