Examen de programation - Exercices programmation - Test programmation

Question 1 : Organigramme

Soit un programme devant inverser une matrice carrée. Le principe de l’inversion est de permuter les éléments d’indices [I][J] et [J][I].



1)    Veuillez donner la partie initiale de l’organigramme permettant l’introduction de la matrice carrée initiale NxN.

2)    Veuillez donner le code correspondant à la partie de l’organigramme fournie qui effectue l’inversion.

Question 2 : Analyse de code


Soit le code d’un programme devant effectuer la recherche d’un caractère particulier dans une chaîne de caractères. D’un point de vue conceptuel, ce programme est fonctionnel mais le code comprend des erreurs générant des erreurs, des messages d’attention à la compilation, des erreurs à l’édition de liens ou des dysfonctionnements éventuels à l’exécution.

---------------------------------------------------------------------------
Void main()
{
    Char *tab,c
    Strcpy(tab, "bonjour a tous") ;
    Int longueur,i=0 ;
    Printf(" veuillez introduire le caractere recherche") ;
    Scanf(" %c ",c) ;
    While(i < longueur)
    {
        If(tab[i]=c)
        {
            Printf("caractere trouve a l’indice %d\n ",i) ;
            Break ;
        }
        I++ ;
    }
    Printf(" recherche termine\n") ;
}

---------------------------------------------------------------------------

Question 3 :

a)    Quelle est la taille d’un pointeur d’entier et d’un pointeur de flottant. De quoi dépend-t-elle ?
       Justifier votre réponse.

b)    Donner 3 façons différentes de déclarer une structure ainsi que les variables de ce type.

Question 4 :

1)    En analysant les différentes lignes de code qui suivent, veuillez expliquer à quoi elles correspondent et veuillez ajouter pour chaque cas quelques lignes supplémentaires permettant d’en assurer une meilleur compréhension.

a)    Printf("%s\n ",tab[i]->nom);
b)    If(tab[i] !='c') continue ;
c)    Printf("%d\n",f(10));/* f n’est pas une function */


2)    Que pouvez-vous déduire de l’exécution des lignes de code suivant :

Exemple 1 :
---------------------------------------------------------------------------
Char buffer[255] ;
Char *ptrbuf ;
Strcpy(buffer, "bonjour à tous") ;
Ptrbuf=buffer
Printf("%d\n",sizeof(buffer));
Printf("%d\n,sizeof(ptrbuf));

---------------------------------------------------------------------------

Exemple 2 : 

---------------------------------------------------------------------------
Char tab[10] [10];
Char *buffer=&tab[1] [1]
Printf("%d\n",buffer[1][1]); Quel sera l’élément de tab qui va s’afficher?

---------------------------------------------------------------------------

Inversion d'une matrice carrée



                         

Article plus récent Article plus ancien

Leave a Reply