Exercice langage C corrigé variables, tableau, et caractère

1.

(*3) Soit le code suivant :

int i ;

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

printf("i = %d\n", i) ;

}

Réécrivez-le en utilisant une instruction while.

Réponse :

int i = 0 ;

while (i<10) {

printf("i = %d\n", i) ;

i++ ; }

2.

Soit la déclaration suivante, int *tab[10]. Indiquez ce qu’est tab ?

Réponse : tab est un tableau de 10 pointeurs d’entiers.

18. Dans le code suivant :

int i=0, j=0 ;

j = i++ ;

Que vaut la variable j après l’instruction d’affectation ?

Réponse : j vaudra 0.

L’expression i++ se lit de gauche à droite : d’abord, le retour de sa valeur, qui sera stockée dans j, puis l’incrémentation de i. Ainsi, j vaudra 0.

3.

(*2) Donnez l’expression C permettant de calculer i = i 2n.

Réponse : L’expression est i «= n.

Multiplier par 2 consiste « à ajouter un zéro à droite » (poids faible), donc décaler la valeur de 1 vers la gauche. Multiplier par 2n, consiste ainsi à décaler la valeur de n vers la gauche. En C, l’opérateur de décalage vers la gauche est «.

L’expression est donc : i «= n.

Note. Les calculs effectués avec une boucle ont été considérés comme corrects.

4.

(*3) Soit le code suivant :

char tab[] = "bonjour" ;

int i ;

for (i=0 ; tab[i] != ’’ ; i++) {

tab[i] = tab[i] - ’a’ + ’A’ ;

}

Que fait ce programme ?

Proposez une version sans utiliser l’opérateur d’accès tableau ([]).

Réponse : Ce programme transforme la chaine de caractères « bonjour » en majuscules.

char tab[] = "bonjour",

pc ; 

for (pc = tab ;

pc != ’’ ; pc++) {

*pc =

pc - ’a’ + ’A’ 

}

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *