mikrocontroller.net

Forum: Offtopic Teste dein C/C++/.. Können


Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Echt krass! Da wird einem ja Angst und Bange, da werden Fragen gestellt,
die man im echten Leben nie treffen sollte, wenn gefälligst die
unmöglichsten, aber leider technisch möglichen Konstrukte weggelassen
werden würden ;-) (c++)

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
74% bei C. Naja mit schummeln wäre es mehr gewesen :)

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt's einen Weg, mit dem mehr als der Wert "93%" rauskommt? Wär
schon schon, zu wissen, was man falsch gemacht hat.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Apropos falsch: Kann mir jemand C++ Frage 11 erklären? Vielleicht habe
ich ja was verpasst, aber mein letztere Stand ist, dass Klammern kein
"sequence point" sind, folglich 2 Ergebnisse möglich sind.

Autor: Bri (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Thomas

Kennst du aus der boost Bibliothek z.B. das spirit parser framework?
(www.boost.org)

Da ist der C++ Test doch ziemlich harmlos ;-)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Kann mir jemand C++ Frage 11 erklären?

Wie war denn Frage 11?
Hab's grad nochmal probiert, aber da tauchen anscheinend
bei jedem Durchlauf andere Fragen auf.

Du hast aber auf jeden Fall Recht: Klammern sind
keine Sequence Points (sofern es sich nicht um
die Klammern um die Argumentliste eines Funktions-
aufrufes handelt).

Autor: D. W. (dave) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, nach der 2ten Frage isch hier Schluss...

Assembler ist da viel einfacher.

Autor: A.K. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Frage 11 anbei - sind bei mir auch im 3. Durchlauf immer noch die
gleichen Fragen.

Autor: Christoph __ (chris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Würde ich auch sagen: Undefiniertes Verhalten, weil ein sequence point
fehlt.

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Wo seht ihr da zusätzlichen Bedarf an einem sequence point? Das
Verhalten ist IMHO absolut definiert und a = 1.

Matthias

Autor: Tobi H. (tobi-) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
81% bei C. Aber der Test ist schwer...

Ich hatte aber meiner Meinung nach einen Fehler im Test. Da wurde nach
der Anweisung für ein 'logical or' gefragt, aber die Auswahl || gab
es nicht, nur or, |, ^, & und nochwas sinnloses. Oder habe ich da
irgendwas verpasst?

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

kam bei mir auch. Allerdings war die Frage welches char man verwendet
für ein logical or. Und da ist | durchaus richtig. Man braucht halt
zwei davon.

Matthias

Autor: Tobi H. (tobi-) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh, ok. So um die Ecke gedacht habe ich dann nicht. Aber hatte natürlich
trotzdem | genommen, da der Rest sinnlos war.

C++ jetzt auch 80%, obwohl ich dachte, dass mehr falsch ist.

Zu Frage 11: Wird das b++ erst nach dem gesamten Ausdruck ausgeführt?

Autor: Bartli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
C : 96%
C# : 81%

C++ probier ich gar nicht erst :D

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

b++ erhöht b zum nächsten sequence point um eins und liefert b zurück.
--c verringert c zum nächsten sequence point um eins und liefert c-1
zurück.

Matthias

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Matthias: Nach dieser These wäre
   char *p;
   int a = *p++ - *p++;
definiert als äquivalent zu
   char *p;
   int a = *p - *p;
   p += 2;
Stimmt so aber nicht.

Der Spruch geht anders: "b++ erhöht b spätestens zum nächsten
sequence point um eins". Oder irgendwann vorher.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Matthias

Das Verhalten ist undefiniert.
Du darfst eine Variable in einem Ausdruck nur entweder
  * immer lesen
  * oder nur einmal veraendern. In dem Fall muss die
    Veraenderung aber die einzige Aktion sein, die auf
    die Variable ausgefuehrt wird.

In C++ - speak lautet das so:

5 Expressions

5.4 Except where noted, the order of ...
    Between the previous and next sequence point a scalar object
    shall have its stored value modified at most once by the
    evaluation of an expression. Furthermore, the prior value
    shall be accessed only to determine the value to be stored.

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ups, nur 96% bei C geschafft. Schade, dass keine Auswertung kommt damit
ich sehen könnte, wo ich mich verklickt habe...

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Uh, und bei C++ mit 90% geloost... Bin wohl etwas eingerostet...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail, Yahoo oder Facebook? Keine Anmeldung erforderlich!
Mit Google-Account einloggen | Mit Yahoo-Account einloggen | Mit Facebook-Account einloggen
Noch kein Account? Hier anmelden.