IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

reponses QCM en programmation C


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 10
    Par défaut reponses QCM en programmation C
    bonsoir la communauté,
    Après un test de qcm passé, voici quelques questions qui m'ont donné du fil à retordre et j'aimerai que vous m'éclairer là dessus:

    1. convertir l'expression ((A + B) * C -(D-E) ^ (F + G)) à la notation de préfixe équivalent.
    a) -^/-*+ABC-DE+FG
    b) AB+C*DE--FG+^
    c) ^-*+ABC-DE+FG
    d) ^-+*ABC-DE+FG

    2. Quelle structure de données est utilisée pour effectuer la récursion?
    a) Liste chainée
    b) tableau
    c) Pile (Stack)
    d) String
    e) Char

    3. Laquelle des structures de données suivante est de type linéaire?
    a) String
    b) Liste
    c) Pile
    d) aucune bonne réponse
    4. Lequel des algorithmes de tri suivant est de type diviser pour régner?
    a) tri à bulles,
    b) le tri par insertion,
    c) tri rapide,

    5. Les listes chainées sont meilleures ...
    a) pour les collections relativement permanentes de données ,
    b) pour les structures dont la taille et les données sont en constante évolution,
    c) le a) et le b)
    d) aucune bonne réponse

    6: Laquelle des structures de données suivantes est de type non linéaire?
    a) String
    b) Listes
    c) Pile
    d) aucune bonne réponse

    NB: la question suivante est à réponse ouverte

    7. Quelle est la struture de données qui permet les suppressions aux deux extrémités de la liste mais l'insertion à une seule extrémité?


    pour mes réponses voilà mes choix

    1. b

    2. a

    3. b

    4. c (normalement c'est le tri par fusion mais je ne sais pas pourquoi ce choix n' a pas été mis)

    5. b

    6. a

    7.Aucune idée

    cordialement

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Bonjour

    1 => je ne vois pas trop lequel convient mais le b ne convient pas. Le b c'est la notation postfixe (désolé). Me semble que c'est le 1c...
    2c => hé oui, la récursion implique un empilement des valeurs qu'on met en attente et un empilement se fait dans une pile...
    3 => je ne vois pas trop ce qu'ils entendent par "linéaire". Si c'est des données contigües, alors c'est 3a (une string est un tableau de caractères et un tableau est toujours contigu en mémoire)
    4c => C'est vrai que le tri fusion est une division du travail mais le tri rapide part d'un pivot d'où on place à gauche toutes les valeurs inférieures et à droites les valeurs supérieures. Puis on réapplique le même algo sur la partie gauche puis la partie droite. Il s'agit donc bien là aussi d'une division du travail...
    5b je suis d'accord
    6 => même problématique que 3 mais inversée...
    7 => là non plus je ne vois pas...

    Bon courage
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 769
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 769
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Si c'est des données contigües, alors c'est 3a (une string est un tableau de caractères et un tableau est toujours contigu en mémoire)
    Je sais c'est du C , mais on peut faire un tableau dynamique (une liste chaînée de chunk par exemple): donc contigu en mémoire, cela dépend de l'implémentation de ton tableau.

    C'est comme la réponse 2: tableau, string utilisent une structure de données. char est un type de base et faire une pile de récursion avec une liste chaînée au lieu d'une pile - stack (<- d'ailleurs tu l'implémentes comment), c'est toi qui voit

    Sinon pour le 7b, je pense à une liste [doublement] chaînée cyclique ("last->Next = first"), et soit il y a une contrainte soit une débilité de marketeux (*)

    * -> du style: tu peux supprimer le dernier et le premier maillon, mais l'insertion se fera toujours entre les 2 (donc 1 seule possibilité)

  4. #4
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Pour la 7, c'est débile, si on connait une extrémité qu'on peut changer, on peut le faire en ajout comme en suppression.

  5. #5
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 769
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 769
    Par défaut
    Citation Envoyé par leternel Voir le message
    Pour la 7, c'est débile, si on connait une extrémité qu'on peut changer, on peut le faire en ajout comme en suppression.
    Bon non justement c'est "la feinte du loup gris"

    Si tu as une structure cyclique avec 2 pointeurs last et first, alors:
    1. Pour la suppression, tu peux choisir de supprimer l'un ou l'autre.
    2. Mais pour l'insertion, que ce soit une insertion à la fin ou au début, le nœud sera toujours ajouter au milieu des 2 nœuds. Et alors ce nœud devient le dernier? le premier?. Donc quelle que soit la façon dont tu gères tes pointeurs, il sera toujours "ajouté à la fin"

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 10
    Par défaut reponses QCM en programmation C
    Merci pour toutes vos interventions pertinentes;
    j'aimerai exposer sur certaines questions ma façon de raisonner et à vous de me guider:

    =>pour la question 6, mon choix est porté sur le a) car dans certains tutos on dit les listes linéaires chainées et comme une pile est un cas particulier de listes alors je ne pouvais que prendre les String qui sont des tableaux de caractères et à ce que je sache les tableaux sont des types structurés

    => Et c'est pour cette même raison (liste linéaire chainée) qu'à la question 3 j'ai choisi le b) (et dans ce cas, je devrai aussi prendre le c) car les piles sont un cas particulier des listes chainées), c'est pertubant!!!

    => Pour la question 2 je ne sais quoi dire? et j'aimerai savoir pourquoi à la question 1 ce n'est pas le d) puisqu'elle peut aussi être une notation préfixée

    => Pour le 7, c'est liste doublement chainée cyclique ou quoi?

    Merci encore ...

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par foetus Voir le message
    ...et faire une pile de récursion avec une liste chaînée au lieu d'une pile - stack (<- d'ailleurs tu l'implémentes comment), c'est toi qui voit
    On n'est pas obligé d'utiliser des listes chainées pour implémenter une pile. On peut très bien l'implémenter via malloc/realloc.
    On alloue N et on insère n (<= N) éléments. Et dès que n atteint N, on réalloue N de plus. Et au pop on supprime l'élément [n] et on décrémente n...

    Pour moi la récursion utilise donc une pile. Le fait que tu implémentes ta pile par une liste chainée ça c'est de ton implémentation...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Invité
    Invité(e)
    Par défaut
    Pour la réponse 7, mon professeur d'algorithmie nous scanderait haut et fort : " Il s'agit d'une liste chainée ".

    Pour la simple et bonne raison qu'à partir d'une liste chainée, il en revient à nous et à nous seul de définir la manière dont l'ajout et l'insertion se font. Pile, File, tout ce genre de chose sont des conventions et l'on peut tout aussi bien définir une pile contenant un pointeur sur le dernier de ces éléments et pour une raison X ou Y dépiler le dernier plutôt que le premier élément. ( c'est crade, je l'accorde, mais dans les faits rien ne l'empêche en C ).

  9. #9
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Citation Envoyé par archMqx. Voir le message
    Pour la réponse 7, mon professeur d'algorithmie nous scanderait haut et fort : " Il s'agit d'une liste chainée ".

    Pour la simple et bonne raison qu'à partir d'une liste chainée, il en revient à nous et à nous seul de définir la manière dont l'ajout et l'insertion se font.
    Oui, mais pour autant tu ne peux pas dire que la liste chaînée limite l'insertion à une extrémité. Et si tu as une liste circulaire, il n'y a pas d'extrémité du tout


    Soit dit en passant, si on veut être extrèmement rigoureux, on pourrait dire qu'aucune de ces questions ne concerne le langage C.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. reponse QCM temps limite ou mesuré
    Par menthol34 dans le forum Développement Web avec .NET
    Réponses: 1
    Dernier message: 15/05/2010, 20h43
  2. Limiter reponse QCM
    Par pouetpouet56 dans le forum ASP
    Réponses: 1
    Dernier message: 25/09/2007, 23h35
  3. Réponses: 1
    Dernier message: 25/06/2007, 21h09
  4. Programme qui gère les QCM
    Par Ora92_IDS dans le forum Langage
    Réponses: 7
    Dernier message: 03/04/2007, 17h58
  5. Réponses: 7
    Dernier message: 03/09/2006, 13h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo