Vous êtes sur la page 1sur 3

1 TA 1-3 2017-2018

Algorithmique Avancée et Programmation


Devoir surveillé - Durée : 1h30
Documents et calculatrice
non autorisés
Exercice 1 : Exécution (5,5 pts) :
Données de l’exercice :

• Le code ASCII de la lettre ‘A’ est 65.


• La taille d’un entier en mémoire est de 4 octets

a. Donner le résultat d’exécution de ce b. Donner le résultat d’exécution de


programme sachant que la valeur de ce programme sachant que la valeur de
&blocks[0] est 60FEFC l’adresse de p est 60FDAF

#include <stdio.h> #include <stdio.h>

main() main()
{ {
int blocks[3] = {4, 5, 10};
int *ptr = blocks; float p = 11.0;
int temp=0; p = p + 2.0;
printf("temp=%d ptr=%x\n", temp, ptr); float *q = &p;
float *r = q;
temp = *++ptr; *r = *r + 1;
printf("temp=%d ptr=%x\n", temp, ptr); float x;
float *s=&x;
temp = ++*ptr; *q = (*q)*10.0;
printf("temp=%d ptr=%x\n", temp, ptr); *s = *q;
*r = 15.0;
temp = *ptr++;
printf("temp=%d ptr=%x\n", temp, ptr); printf("%f\n", p);
printf("%f\n", *q);
temp = *ptr; printf("%x\n", r);
printf("temp=%d ptr=%x\n", temp, ptr); printf("%f\n", *s);
} printf("%f\n", *r);
}

c. Considérons cette séquence de programme :


float Tab[5][3]={34, 6.5, 2, 90.2, 100, 0, 76.5, 23.2, 678, 42.1, 11, 82.4, 350.22};
Donner le résultat d’exécution de chacune de ces instructions
printf("%.2f \n", Tab[2][1]); printf("%e \n",*(*(Tab+3)+2));

printf("%.1f \n", **(Tab+1)); printf("%12f \n", **Tab);

1/3 Responsable Cours & TD: Mme I. C. Msadaa


1 TA 1-3 2017-2018

d. Considérons cette séquence de programme :


char *msg="Agence";
Donner le résultat d’exécution de chacune de ces instructions sachant que l’adresse de
msg[0] est 4039FD
printf("%x \n", msg); printf("%c \n", *(msg+5));

printf("%d \n", *msg); printf("%s \n", msg);

printf("%x \n", msg+4); printf("%d \n", strlen(msg));

printf("%d \n", sizeof(*msg)); printf("%o \n", *msg);

Exercice 2 : Triangle de chiffres (5 pts)


Écrire un programme en langage C qui permet d’afficher un triangle comme celui représenté
par la figure ci-dessous. Utiliser des boucles for.

1111111111
123456789
22222222
1234567
333333
12345
4444
123
55
1

Exercice 3 : Matrices (5,5 pts)


1. Écrire un programme en langage C qui permet de saisir au clavier les éléments de
type entier d’un tableau M à 2 dimensions LxC (L et C sont inférieures à 10). Tous les
éléments de M doivent être compris entre 10 et 99.
2. Créer 2 tableaux à 2 dimensions U et D.
a. U contient les chiffres d’unités des éléments de M.
b. D contient les chiffres de dizaines des éléments de M.

Exemple :
• U[3][2] contient le chiffre d’unités de l’élément M[3][2].
• D[3][2] contient le chiffre de dizaines de l’élément M[3][2].

3. Calculer et afficher la somme des éléments se trouvant sur les deux diagonales de U.
4. En utilisant le formalisme pointeurs, calculer et afficher le nombre de chiffres pairs
de la matrice D.

2/3 Responsable Cours & TD: Mme I. C. Msadaa


1 TA 1-3 2017-2018

Exercice 4 : Tableaux à 1 dimension (4 pts)


Écrire un programme en C qui initialise tous les éléments de type int d’un tableau Tab à une
dimension et de taille N (N étant inférieur à 15).

1. Créer deux tableaux à une dimension T1 et T2.


a. T1 contient les éléments impairs de Tab.
b. T2 contient les éléments pairs de Tab.
2. En utilisant le formalisme pointeur, remplacer les éléments de T2 par le cube de leurs
valeurs respectives.

3/3 Responsable Cours & TD: Mme I. C. Msadaa

Vous aimerez peut-être aussi