Cee Quizz Diskussion
StartSeite | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Von CeeQuizz
- Gibts auch irgendwo ne "Auflösung"?
Auflösung im Sinne einer Erklärung? Oder Auflösung als Liste der - meiner Meinung nach - richtigen Antworten? -- HelmutLeitner
- Ja, ich meinte die deiner Meinung nach richtigen Antworten - denn man will ja vielleicht wissen, auf welcher Grundlage die Auswertung des Quizes erfolgt. // Diese Seite hier zeigt, weshalb ich danach gefragt hatte... ;-) - Ich denke aber, dass sich hier schon ein "Konsens" finden lässt, was als richtig und was als falsch zu gelten hat.
gleiches Problem: Wie lautet den die richtige (bzw erwartete) Antwort fuer Frage 4 ?
-- ulho
/* Anmerkung: Die folgende Diskussion ist obsolet, weil die Antworten zu den Fragen des Quizes inzwischen abgeändert wurden [- die Bemerkungen beziehen sich also teilweise nicht mehr auf das Quiz, wie es jetzt ist]! - Frage: Mag irgendwer nun GarbageCollection machen? ;-) */
Zur 3. Frage: Antworten 1+4 sind korrekt, funkt. aber nicht. 5. kann passieren.--hs
- Wie man aus der Seite sieht, habe ich 4 als einzige korrekt Antwort.
- wenn ich diese aber wähle, erscheint stets: "Falsch bei 3."
- Versteh ich nicht. Mit 1.6,2.3,3.4 erhalte ich 100%. --hl
- Ich hab genau das gestern 6..7-mal probiert... heute gehts.
- Das war vermutlich mein Fehler. Nach dem Entfernen einer Frage hatte den Antwortparameter falsch geändert. Entschuldige. --hl
- Warum sollte \n bei printf obligatorisch sein? --hl
- stimmt, Irrtum von mir
- Warum sollte man mit einem Absturz rechnen müssen? --hl
- x=i*i++; verstößt gegen die Sequenzpunktregel --> undef.behaviour
- Aber in der Praxis wird der Compilerbauer einen Wert liefern und keinen Absturz. --hl
- Das i++ isoliert ist okay, so daß Antw.4 eigentlich falsch ist.
- Wenn zwischen zwei Seq.punkten ein Schreibzugriff auf i erfolgt, muessen alle Lesezugriffe auf i der Ermittlung des neuen Wertes von i dienen! Bei i* ist das nicht der Fall.
- Ich kam mit 3 insgesamt etwas ins Rudern...--hs
- Das sollte nicht der Sinn der Sache sein (das Rudern eines Experten). Bin selber kein "language lawyer", weil ich Sprachen eher intuitiv als über ein Regelwerk verstehen möchte. Deswegen wollte ich auch bei den Fragen eine Sprache verwenden, die man versteht, ohne dass man die Begriffswelt des Standards kennen muss. Die Formulierung 4 geht eigentlich auf einen Umformulierungs-Vorschlag von Kurt Watzka (auf meiner Homepage) zurück. --hl
- Ich dachte, 4. ist die gemilderte Folge der Verletzung der Sequenzpunktregel, bzw. soll das sein. (Falsche Werte fuer x)
- Ich fand 4. besser als "ist von der Implementation abhängig" weil es "unspecified" ist, wann die Seiteneffekte auftreten, und eben nicht "implementation defined". Der Wert des Ausdrucks ist damit, vom Sequenzpunkt-Problem abgesehen, zumindest unspezifiziert. -- KurtWatzka
- Und 5. kann passieren/soll passieren koennen, wegen dieser Verletzung. -- So kam ich ins Rudern.
- Das Postinkrement allein ist auf jeden Fall i.O. und fuehrt nicht zu falschen Werten. -- So kam ich ins Rudern.--hs
- Auf 5. bin ich auch reingefallen, weil zwar ein "shall-constraint" verletzt wird, ein Absturz aber keine zwingende Folge davon ist. Vieleicht wäre es besser, entweder auf das "Abprüfen" der Kenntnis von 6.5 Satz 2 zu verzichten, oder die Items so zu formulieren, dass weder die Kenntnis der Sprachdefinition noch ein intuitives Verständnis zu falschen Antworten verleitet. (Etwa: x = i * i++ sollte durch x = i * i; i++; ersetzt werden) -- kw
Unüberprüfte sprintf's sind eine der häufigsten Stackoverwrite-quellen die es gibt. Wieso ist das bei Frage 2 nicht berücksichtigt?
- Das ist eine mögliche Fehlerquelle, aber der Programmier hat es völlig unter Kontrolle. Bei gets hat er nichts unter Kontrolle. --hl
- Wie kontrolliert man denn die Ausgabelänge eines sprintf? Doch nur, indem man allen Feldern eine explizite Längenangabe mitgibt, oder? Ich war mir sehr sicher, dass sprintf als gefährlich gilt.
- Warum? Du hast völlig unter Kontrolle, wieviele Zeichen maximal in den Zielpuffer geschrieben werden. Also ist sprintf richtig angewendet ungefährlich. Allerdings gibt es in C99 zusätzlich für diejenigen, die Probleme lieber durch unter den Tisch kehren lösen auch snprintf(). Damit wird die Ausgabe halt irgendwo abgeschnitten und der Entwickler spart sich das Nachdenken über den Platzbedarf seiner Ausgabe. -- kw
KategorieC KategorieCee
StartSeite | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Text dieser Seite ändern (zuletzt geändert: 29. November 2007 8:29 (diff))