• Aucun résultat trouvé

Contrôle de Langage C

N/A
N/A
Protected

Academic year: 2022

Partager "Contrôle de Langage C"

Copied!
3
0
0

Texte intégral

(1)

Nom : Prénom :

POLYTECH – ELEC3 2016–2017

Contrôle de Langage C

Durée : 1h Aucun document autorisé

Documents non autorisés

Note : la qualité des commentaires, avec notamment la présence d’affirmations significatives et d’invariant, ainsi que les noms donnés aux variables, et la bonne indentation rentreront pour une part importante dans l’appréciation du travail.

I1. Soit le programme C suivant :

#i n c l u d e < stdlib .h >

#i n c l u d e < stdio .h >

v oi d p(char *t , i n t *i) { t [++* i] = ’a ’;

}

i n t main (v oi d) {

char a [] = { ’t ’, ’z ’};

i n t b = 0;

p(a ,& b );

printf ("%c - %c - %d\n", *a , *( a +1) , b );

r e t u r n EXIT_SUCCESS ; }

1. Est-ce quegcccompile ce programme sans erreur ? 2. Si oui, qu’est-ce qu’est écrit sur la sortie standard ?

1

I 2. En utilisant la notation de pointeur, écrivez en C la fonctionremplacerChiffres qui prend en paramètre une chaîne de caractères, et qui remplace chaque chiffre par le caractère’_’dans celle-ci. La fonction renvoie un pointeur sur le 1er caractère de la chaîne modifiée. Vous pourrez utiliser la fonctionisdigit, à l’exclusion de toutes les autres.

I 3. Écrivez en C une fonctionmainqui donne un exemple d’utilisation de votre fonctionremplacerChiffres.

2

(2)

On veut représenter une suite d’entiers par une structure de liste dynamique doublement chaînée. Pour cela, les éléments de typenoeudseront chaînés entre eux par deux liens, un pointeur qui pointe sur l’élément suivant et un autre qui pointe sur l’élément précédent. On considérera que chaque élément mémorise une valeur entière.

I4. Complétez la déclaration de type suivante pour qu’elle soit conforme aux indications précédentes.

s t r u c t noeud { ... };

Les éléments d’une liste pourront être accessibles par le début (le premier nœud) ou par la fin (le dernier nœud).

I5. Complétez la déclaration suivante pour définir une liste conforme aux indica- tions précédentes.

t y p e d e f ... Liste ;

3

I 6. Selon la structure précédente, dessinez précisément : (1) une liste vide, (2) une liste contenant les trois entiers -8, 20, et 5.

I 7. Écrivez en C la procédureallerRetourqui prend uneListeen paramètre, et qui effectue son parcours aller et retour (i.e. du premier au dernier, et du dernier au premier).

4

(3)

I8. Écrivez en C la procédureajouterALaFinqui ajoute dans une listel, après le dernier élément, un nouvel entierx. La liste et l’entier sont les deux seuls paramètres de la procédure.

5

Références

Documents relatifs

Rajoutez un attribut privé à la classe Chanteur : maisonEdition (chaîne de caractères) et écrivez une méthode setEdition() qui prend en paramètre une chaîne de caractères (le nom

Il faut donc faire défiler le message dans buffer, c'est à dire copier message dans buffer à partir d'une position donnée, afficher son contenu pendant un instant donné

Une constante chaîne de caractères peut être définie par une suite de caractères délimitée par des guillemets, ou à l’aide d’une initialisation classique de tableau. Le

En utilisant la notation de tableau, écrivez la fonction strRchr qui renvoie l’indice de la dernière occurrence d’un caractère c dans une chaîne de caractère s.. Si le

En utilisant la notation de tableau, écrivez la fonction strRchr qui renvoie l’indice de la dernière occurrence d’un caractère c dans une chaîne de caractère s.. Récrivez

Avec la notation de pointeur (i.e. pas de tableau), écrivez la fonction strrchr qui renvoie un pointeur sur la dernière occurrence d’un caractère dans une chaîne de caractères..

L’exemple suivant montre la déclaration d’une variable de type pointeur de fonction qui doit retourné un entier nommé pFonction1 et d’une fonction retournant

Écrivez une fonction lecture(nomfichier) , qui prend en paramètre une chaîne de caractères représentant un nom de fchier, lis dans ce fchier les lignes de couples de valeurs theta