• Aucun résultat trouvé

Evaluation n°1 Scalaires, pointeurs, fonctions chaînes, bitwises, tableaux 1D

N/A
N/A
Protected

Academic year: 2022

Partager "Evaluation n°1 Scalaires, pointeurs, fonctions chaînes, bitwises, tableaux 1D"

Copied!
4
0
0

Texte intégral

(1)

Evaluation n°1

Scalaires, pointeurs, fonctions chaînes, bitwises, tableaux 1D

void scalaires() {

printf("%c %d\n",'a'+5,sizeof('8'));

int a,b=0;

for(a=3; a>=0; a--) {

printf("(%d %d %d)\n",a!=b,a&&b,!a);

b++;

} } Quelles sont les valeurs affichées

lors de l'exécution de la fonction suivante ?

Nom : Prénom :

A1 R P A A2 R P A A5 R P

void pointeurs() {

int x=10,y=20;

int* p=&x;

int* q=&y;

(*p)++; p=q; (*p)++; (*q)++;

printf("%d %d %d %d\n",x,y,*p,*q);

} Quelles sont les valeurs affichées

lors de l'exécution de la fonction suivante ?

A3 R P A

int* f1(int* p, int* q) {

if(*p<*q) return p;

else return q;

} Expliquez de façon simple et concise

ce que réalise cette fonction.

A4 R P A

void fpointeurs() {

int a=9,b=7;

int* p=f1(&a,&b);

printf("%d\n",*p);

} Quelles est la valeur affichée lors

de l'exécution de la fonction suivan- te ?

A4 R P

(2)

void f3(unsigned char* x) {

unsigned char m = 1 << 7;

*x = *x >> 1;

*x = *x | m;

}

Quelles sont les valeurs affichées lors de l'exécution de la fonction bitwises ?

B1 R P A A4 R P A

void bitwises() {

unsigned char w=0x0F;

int i;

for(i=0; i<4; i++) {

printf("%x ",w);

f3(&w);

} }

void tableaux() {

double t[6] = {1.0,2.0,3.0,4.0,5.0,6.0};

double* p = t+2;

f4(p,3);

f5(t,6);

}

Quelles sont les valeurs affichées lors de l'exécution de la fonction tableaux ?

B3 R P A void f4(double t[], int n) {

int i;

for(i=0; i<n; i++) t[i]=0.0;

}

void f5(double t[], int n) {

int i;

for(i=0; i<n; i++)

printf("%lf ",t[i]);

}

void add(int* set, int x) {

}

On souhaite représenter un ensemble E d'entiers pouvant contenir des valeurs comprise entre 0 et 31 par un entier. Le principe de cette représentation très concise est que si E contient la valeur i, alors le bit de rang i de l'entier qui représente E vaut 1, sinon il vaut 0.

Donnez le code de la fonction add qui ajoute un élément à un ensemble et de la fonction printSet qui affiche les va- leurs contenues dans un ensemble.

void printSet(int* set) {

}

B1 P A C

(3)

int* filsGauche(int* arbre, int prof) {

return arbre;

}

On souhaite représenter sous la forme d'un tableau d'entiers un arbre binaire complet dont les nœuds sont étiquetés par des en- tiers.

Un arbre de profondeur 1 possède un seul nœud et est représenté par un tableau de une cellule contenant la valeur associée à ce nœud.

Un arbre de profondeur n>1 est représenté par un tableau contenant la représentation de son fils gauche, puis celle de son fils droit, puis la valeur associé à sa racine.

void printInfixe(int* arbre, int prof) {

B3 P A C }

Un exemple d’arbre binaire complet de profondeur 3 et sa représentation par tableau.

4 5 2 6 7 3 1 1

2

7

4 5 6

3

int* filsDroit(int* arbre, int prof) {

}

int racine(int* arbre, int prof) {

} La fonction filsgauche, qui retourne un

pointeur sur la représentation du fils gauche d’un arbre, vous est donnée gratui- tement.

Complétez les définitions des fonctions filsdroit et racine qui retournent respec- tivement un pointeur sur le fils droit et la valeur de la racine d’un arbre de pro- fondeur donnée.

Gratu it

Complétez la définition de la fonction printIn- fixe qui affiche en ordre infixe les valeurs asso- ciées aux nœud d’un arbre binaire complet.

Pour mémoire, l’affichage en ordre infixe consiste à afficher d’abord le fils gauche en ordre infixe, puis la valeur de la racine, puis le fils droit en ordre infixe.

Pour l’arbre d’exemple, cela donne 4 2 5 1 6 3 7.

Utilisez les fonctions racine, filsdroit et filsgauche.

(4)

Réalisez une fonction conv qui accepte en paramètre une chaîne s supposée contenir uniquement des caractère ‘0’ et ‘1’ et qui retourne l’entier dont s est le représentation en base 2.

Par exemple, conv(‘11010’) doit retourner 26.

B4 P A C

int conv(char* s) {

}

Références

Documents relatifs

Completer le tableau puis relier les grandeurs à un object correspondant. En lettre En

Exercice 4: Écrire une fonction qui supprime la première occurrence d’un caractère motif dans une chaîne de caractères source,2. void supp (char motif,

Complétez ce code de sorte à ce qu’il vous permette de découvrir où est stocké le paramètre t de la fonction fct, par rapport à la position en mémoire où le tableau tmp

a+i c’est l’adresse du i-ème élément du tableau a+i c’est aussi &amp;a[i]. L’incrément/décrément dépend du type de

Modifiez la fonction f de l'exercice 3 de manière à ce que la fonction fpn du même exercice permette de calculer 2 à la puissance x, pour toute valeur positive ou nulle de x..

Réalisez une fonction int f0(int x)qui retourne un Booléen ayant la valeur vrai si et seulement si les 4 bits de poids faibles de la représentation binaire de x sont tous à 0..

En utilisant la fonction pt précédemment décrite, réalisez une fonction void tri(int t[], int n) qui trie en ordre croissant les valeurs stockées dans un tableau t supposé de taille

Réalisez une fonction int getPar(char t[], char p[] int n) qui place dans le tableau p toutes les valeurs paires conte- nues dans le tableau t, qui est supposé être de longueur n,