Beispiel:2005.json

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche
{
  "data": [
    {
      "category": "JavaScript",
    "question": "Welche Angabe erzeugt als Datum den 04.12.1961?",
    "answers": [
      {
        "answer": "new Date(1960,23,4,23,59,60)",
        "correct": false
      },
      {
        "answer": "new Date(1960,22,33,23,59,59,999)",
        "correct": false
      },
      {
        "answer": "new Date(1961,11,4,23,60,-1)",
        "correct": true
      },
      {
        "answer": "new Date(1961,12,4,23,59,59,59)",
        "correct": false
      }
    ],
    "explanation": "JavaScript verarbeitet überzählige Zeitangaben intern korrekt, indem sie über die Grenzen hinaus aufgerechnet werden. Die Antwort <code>new Date(1961,11,4,23,60,-1)</code> ergibt genau den 4. Dezember 1961, 23:59:59."
  },
  {
    "category": "JavaScript",
    "question": "Welchen der folgenden Operatoren kennt JavaScript nicht?",
    "answers": [
      {
        "answer": "instanceof",
        "correct": false
      },
      {
        "answer": "typeof",
        "correct": false
      },
      {
        "answer": "in",
        "correct": false
      },
      {
        "answer": "valueof",
        "correct": true
      }
    ],
    "explanation": "Es gibt keinen Operator <code>valueof</code> in JavaScript. Lediglich eine Methode <code>valueOf()</code> existiert bei Objekten."
  },
  {
    "category": "JavaScript",
    "question": "JavaScript erlaubt die prototypische Erweiterung der meisten vordefinierten Objekte. Welches Objekt kann nicht erweitert werden?",
    "answers": [
      {
        "answer": "Math",
        "correct": true
      },
      {
        "answer": "Number",
        "correct": false
      },
      {
        "answer": "String",
        "correct": false
      },
      {
        "answer": "RegExp",
        "correct": false
      }
    ],
    "explanation": "Das Objekt <code>Math</code> ist nicht instanziierbar und besitzt keinen Prototyp. Es kann daher nicht erweitert werden."
  },
  {
    "category": "JavaScript",
    "question": "Welche der folgenden Beispielaufgaben ist falsch?",
    "answers": [
      {
        "answer": "parseInt(\"5,5\") * 2 = 10",
        "correct": false
      },
      {
        "answer": "String(12) + 4 = 16",
        "correct": true
      },
      {
        "answer": "Math.floor(4.25) * 82 = 328",
        "correct": false
      },
      {
        "answer": "parseInt(16,16) * 2 = 44",
        "correct": false
      }
    ],
    "explanation": "Die Angabe <code>String(12) + 4 = 16</code> ist falsch. Der Ausdruck ergibt <code>\"124\"</code>, da <code>+</code> bei einem String eine Verkettung bewirkt."
  },
  {
    "category": "Datenbank",
    "question": "Welcher der folgenden Datentypen wird nicht von MySQL unterstützt?",
    "answers": [
      { "answer": "BOOLEAN", "correct": true },
      { "answer": "TINYINT(1)", "correct": false },
      { "answer": "CHAR(1)", "correct": false },
      { "answer": "TIMESTAMP", "correct": false }
    ],
    "explanation": "Der Datentyp <code>BOOLEAN</code> entspricht seit MySQL Version 4.1.0 intern dem Datentyp <code>TINYINT(1)</code>. Als eigenständiger Datentyp ist er in älteren Versionen nicht direkt verfügbar."
  },
  {
    "category": "Datenbank",
    "question": "Welchen der folgenden Join-Typen gibt es nicht?",
    "answers": [
      { "answer": "LEFT OUTER JOIN", "correct": false },
      { "answer": "CROSS JOIN", "correct": false },
      { "answer": "LEFT INNER JOIN", "correct": true },
      { "answer": "NATURAL LEFT OUTER JOIN", "correct": false }
    ],
    "explanation": "Es gibt keinen <code>LEFT INNER JOIN</code>. Der Begriff ist widersprüchlich, da <code>INNER</code> nur gemeinsame Treffer beschreibt, <code>LEFT</code> hingegen alle Zeilen der linken Tabelle einbezieht – beides schließt sich aus."
  },
  {
    "category": "Datenbank",
    "question": "Welchen der folgenden Transaction Levels gibt es nicht?",
    "answers": [
      { "answer": "Repeatable Read", "correct": false },
      { "answer": "Serializable", "correct": false },
      { "answer": "Read Committed", "correct": false },
      { "answer": "Read New", "correct": true }
    ],
    "explanation": "„Read New“ ist kein definierter Transaktionslevel. Bekannte Isolation Levels in SQL sind: <code>Read Uncommitted</code>, <code>Read Committed</code>, <code>Repeatable Read</code> und <code>Serializable</code>."
  },
  {
    "category": "Datenbank",
    "question": "Mit welchem Schlüsselwort beginnt der Teil einer Query, der Datensätze zusammenfasst?",
    "answers": [
      { "answer": "GROUP BY", "correct": true },
      { "answer": "WHERE", "correct": false },
      { "answer": "FROM", "correct": false },
      { "answer": "HAVING", "correct": false }
    ],
    "explanation": "<code>GROUP BY</code> fasst Zeilen mit identischen Werten in bestimmten Feldern zusammen. <code>WHERE</code> filtert vor der Gruppierung, <code>HAVING</code> danach. <code>FROM</code> gibt die Quelle der Daten an."
  },
  {
    "category": "Datenbank",
    "question": "In welcher Reihenfolge sind Datensätze im Normalfall in einer Tabelle abgelegt?",
    "answers": [
      { "answer": "Fortlaufend in der Reihenfolge der Eintragung", "correct": false },
      { "answer": "Aufsteigend nach Primary Key", "correct": false },
      { "answer": "Nach einem selber festlegbaren Kriterium", "correct": false },
      { "answer": "Unsortiert", "correct": true }
    ],
    "explanation": "Daten sind in einer Tabelle im Normalfall unsortiert gespeichert. Ohne <code>ORDER BY</code>-Klausel ist keine feste Reihenfolge garantiert. Ausnahmen bestehen bei bestimmten Speicherformen wie Clustered Indexes."
  },
  {
    "category": "HTTP",
    "question": "Welcher der folgenden HTTP-Statuscodes existiert nicht?",
    "answers": [
      { "answer": "102", "correct": true },
      { "answer": "202", "correct": false },
      { "answer": "302", "correct": false },
      { "answer": "402", "correct": false }
    ],
    "explanation": "Die <a href='https://wiki.selfhtml.org/wiki/HTTP/Statuscodes'>Übersicht der HTTP-Status-Codes</a> zeigt, dass <code>102</code> ursprünglich nicht spezifiziert war. Heute existiert er zwar als 'Processing' in WebDAV (RFC 2518), wird aber in vielen Umgebungen nicht verwendet. Die übrigen Codes sind Standard."
  },
  {
    "category": "HTTP",
    "question": "Welche dieser Möglichkeiten sind gültige Werte für einen Location-Header?",
    "answers": [
      { "answer": "/index.html", "correct": false },
      { "answer": "index.html", "correct": false },
      { "answer": "http://www.example.org/", "correct": true },
      { "answer": "http://www.example.org/index.html", "correct": true },
      { "answer": "http://www.example.org/index.html#top", "correct": false }
    ],
    "explanation": "Ein <code>Location</code>-Header muss laut HTTP-Standard eine absolute URI enthalten. Relative URIs wie <code>/index.html</code> oder <code>index.html</code> sind formal nicht gültig, werden aber von vielen Browsern akzeptiert. <code>http://www.example.org/</code> und <code>http://www.example.org/index.html</code> sind korrekt. Der Eintrag mit Fragment <code>#top</code> ist formal laut RFC 2616 unzulässig, wurde jedoch in späteren Korrekturen toleriert (siehe <a href='http://skrb.org/ietf/http_errata.html#location-fragments'>Errata</a>)."
  },
  {
    "category": "HTTP",
    "question": "Welcher HTTP-Statuscode sollte gesendet werden, um eine POST-Anfrage so umzuleiten, dass sie auf die umzuleitende Adresse noch einmal erfolgt?",
    "answers": [
      { "answer": "301", "correct": false },
      { "answer": "302", "correct": false },
      { "answer": "303", "correct": false },
      { "answer": "307", "correct": true }
    ],
    "explanation": "Der Statuscode <code>307</code> wurde eingeführt, um eine POST-Anfrage korrekt umzuleiten und dabei die ursprüngliche Methode (z. B. POST) beizubehalten. <code>301</code> und <code>302</code> führen in vielen Browsern stattdessen zu einer GET-Anfrage. <code>303</code> fordert explizit GET. Nur <code>307</code> garantiert die Wiederholung der ursprünglichen Methode. Siehe auch: <a href='http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.8'>RFC 2616</a>."
  },
  {
    "category": "HTTP",
    "question": "Welche dieser Transferkodierungen müssen HTTP-1.1-kompatible Clients verstehen?",
    "answers": [
      { "answer": "chunked", "correct": true },
      { "answer": "gzip", "correct": false },
      { "answer": "compress", "correct": false },
      { "answer": "deflate", "correct": false }
    ],
    "explanation": "Laut <a href='http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.6.1'>HTTP/1.1-Standard</a> müssen alle HTTP/1.1-Clients die Transfercodierung <code>chunked</code> verstehen. Andere wie <code>gzip</code> oder <code>deflate</code> gehören zu den <em>Content-Codings</em> und sind optional."
  },
  {
    "category": "Perl",
    "question": "Welchen Inhalt hat <code>$foo</code> nach folgender Zuweisung? <code>$foo = 83.69.76.70;",
    "answers": [
      { "answer": "83.697670", "correct": true },
      { "answer": "den Stringwert \"SELF\"", "correct": false },
      { "answer": "einen Hostnamen, z.B. www.google.de (automatische Namensauflösung)", "correct": false },
      { "answer": "eine Referenz auf die Speicheradresse $5345:4C46", "correct": false }
    ],
    "explanation": "In <a href='http://perldoc.perl.org/perldata.html#Scalar-value-constructors'>perldoc perldata</a> steht unter \"Version Strings\", dass <code>v83.69.76.70</code> ein sogenannter \"Version-String\" wäre, bei dem jeder Zahlenblock ein ASCII-Zeichen darstellt. <code>83</code>, <code>69</code>, <code>76</code> und <code>70</code> entsprechen <code>S</code>, <code>E</code>, <code>L</code> und <code>F</code>. Da mehrere Punkte verwendet wurden, wird die Eingabe als Zahl gewertet (Dezimaltrennzeichen bei Perl), sodass <code>83.69.76.70</code> zu <code>83.697670</code> evaluiert wird."
  },
  {
    "category": "Perl",
    "question": "Wie kann man eine nach den zugehörigen Werten numerisch sortierte Liste von Hash-Schlüsseln erhalten?",
    "answers": [
      { "answer": "@sorted = sort values %myhash;", "correct": false },
      { "answer": "@sorted = sort { $myhash{$a} &lt;=&gt; $myhash{$b} } values %myhash;", "correct": false },
      { "answer": "@sorted = sort { $myhash{$a} &lt;=&gt; $myhash{$b} } keys %myhash;", "correct": true },
      { "answer": "Gar nicht, weil Hashes im Gegensatz zu Arrays ungeordnet im Speicher abgelegt werden und somit nicht sortiert werden können", "correct": false }
    ],
    "explanation": "In <a href='http://perldoc.perl.org/perlfaq4.html#How-do-I-sort-a-hash-(optionally-by-value-instead-of-key)%3f'>perldoc perlfaq4</a> wird erklärt, wie man Hash-Schlüssel nach ihren zugehörigen Werten sortiert: mit <code>sort { $hash{$a} &lt;=&gt; $hash{$b} } keys %hash</code>."
  },
  {
    "category": "Perl",
    "question": "Wie viele Zeichen (Bytes) können in einem Skalar gespeichert werden?",
    "answers": [
      { "answer": "65536 Zeichen", "correct": false },
      { "answer": "1 Zeichen (Char-Wert)", "correct": false },
      { "answer": "sehr viel, abhängig von der Hardwareausstattung und Systemarchitektur", "correct": true },
      { "answer": "16,7 Millionen Zeichen", "correct": false }
    ],
    "explanation": "Aus <a href='http://perldoc.perl.org/perldata.html#Scalar-values'>perldoc perldata</a>: <blockquote>A scalar is a single string (of any size, limited only by the available memory)...</blockquote> Es gibt also keine feste Grenze durch Perl selbst, sondern nur durch Systemressourcen."
  },
  {
    "category": "Perl",
    "question": "Wie lautet die Ausgabe des folgenden Programms?<br><code>$x = 1; while ($x &lt; 20) { $x = $x * 2; } print \"$x\\n\";",
    "answers": [
      { "answer": "20", "correct": false },
      { "answer": "32", "correct": true },
      { "answer": "21", "correct": false },
      { "answer": "16", "correct": false }
    ],
    "explanation": "Die Schleife verdoppelt <code>$x</code> solange es kleiner als 20 ist. <code>$x</code> durchläuft: 1 → 2 → 4 → 8 → 16 → 32. Nach dem letzten Durchlauf (16 → 32) ist <code>$x = 32</code>, und das wird ausgegeben."
  },
{
  "category": "XML",
  "question": "Wieviele Achsen gibt es in XPath?",
  "answers": [
    { "correct": false, "answer": "5" },
    { "correct": false, "answer": "8" },
    { "correct": true, "answer": "13" },
    { "correct": false, "answer": "15" }
  ],
  "explanation": "<a href='https://wiki.selfhtml.org/wiki/XML/XSL/XPath#Knotentypen.2C_Achsen_und_Pfade'>SELFHTML: Knotentypen, Achsen und Pfade</a>. Durch Nachzählen der Anzahl an Zeilen in der Tabelle mit den Achsen kommt man auf die korrekte Lösung: <code>13</code>."
},
{
  "category": "XML",
  "question": "Welches ist der \"recursive descent operator\" (XSLT/XPath)?",
  "answers": [
    { "correct": true, "answer": "//" },
    { "correct": false, "answer": "::" },
    { "correct": false, "answer": "@" },
    { "correct": false, "answer": "*" },
    { "correct": false, "answer": "[ ]" }
  ],
  "explanation": "<a href='https://wiki.selfhtml.org/wiki/XML/XSL/XPath#Adressierung_mit_Positionsangabe_und_Bedingungen'>Adressierung mit Positionsangabe und Bedingungen</a>. Die Syntax <code>//</code> wird als <em>recursive descent operator</em> bezeichnet."
},
{
  "category": "XML",
  "question": "Welche der folgenden Begriffe bezeichnen XML-basierte Sprachen?",
  "answers": [
    { "correct": true, "answer": "SMIL" },
    { "correct": false, "answer": "E4X" },
    { "correct": false, "answer": "DTD" },
    { "correct": true, "answer": "XML Schema" },
    { "correct": false, "answer": "HTML" },
    { "correct": true, "answer": "RDF" },
    { "correct": true, "answer": "XSL" },
    { "correct": false, "answer": "XPCOM" },
    { "correct": true, "answer": "SVG" },
    { "correct": false, "answer": "DOM" },
    { "correct": true, "answer": "XHTML" },
    { "correct": true, "answer": "XUL" },
    { "correct": false, "answer": "CSS" },
    { "correct": false, "answer": "SAX" },
    { "correct": true, "answer": "SOAP" },
    { "correct": false, "answer": "DSSSL" },
    { "correct": false, "answer": "XPath" },
    { "correct": true, "answer": "WDDX" },
    { "correct": false, "answer": "RFC" },
    { "correct": false, "answer": "ASP" }
  ],
  "explanation": "Zur Einführung siehe <a href='https://wiki.selfhtml.org/wiki/XML/Dialekte'>XML und XML-Derivate</a>."
},
{
  "category": "XML",
  "question": "Was bedeutet DTD?",
  "answers": [
    { "correct": true, "answer": "Document Type Definition" },
    { "correct": false, "answer": "Distributed Template Development" },
    { "correct": false, "answer": "Document Type Declaration" },
    { "correct": false, "answer": "Document Template Definition" }
  ],
  "explanation": "<a href='https://wiki.selfhtml.org/wiki/XML/Regeln/DTD'>SELFHTML: Dokumenttyp-Definitionen</a>."
},
{
  "category": "XML",
  "question": "Welche Attribute sind in der folgenden XML-Deklaration verpflichtend?<br><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?&gt;</code>",
  "answers": [
    { "correct": false, "answer": "encoding" },
    { "correct": false, "answer": "standalone" },
    { "correct": true, "answer": "version" }
  ],
  "explanation": "<a href='https://wiki.selfhtml.org/wiki/XML/Regeln/XML-Deklaration'>XML-Deklaration</a>: Nur die Versionsangabe <code>version</code> ist zwingend erforderlich. <code>encoding</code> und <code>standalone</code> sind optional, je nach Dokumentkontext."
},
{
  "category": "CSS",
  "question": "Welche Reihenfolge der Pseudoklassen für Verweise ist am sinnvollsten, damit alle Formatierungen stets Wirkung zeigen?",
  "answers": [
    { "correct": false, "answer": ":link, :active, :hover, :visited, :focus" },
    { "correct": false, "answer": ":link, :active, :focus, :hover, :visited" },
    { "correct": true, "answer": ":link, :visited, :focus, :hover, :active" },
    { "correct": false, "answer": ":active, :link, :hover, :focus, :visited" }
  ],
  "explanation": "Nur die dritte Antwortmöglichkeit stuft von generelleren Pseudoklassen zu spezielleren ab. Zuerst wird für alle Verweise eine Formatierung beschrieben. Wenn die Verweise besucht sind, gelten die Formatierungen für <code>:visited</code> anstelle der für <code>:link</code>. Wenn der Verweis den Fokus hat, überschreiben die Formatierungen für <code>:focus</code> alle vorhergehenden. Wenn zusätzlich der Mauszeiger über dem Verweis schwebt, gibt es mit <code>:hover</code> neue Formatierungen. Schließlich überschreiben <code>:active</code>-Formatierungen alle anderen.<br>Siehe auch: <a href='https://wiki.selfhtml.org/wiki/CSS/Kaskade'>Kaskade</a> und <a href='https://wiki.selfhtml.org/wiki/CSS/Selektoren/Pseudoklasse/hover,_active,_focus'>Pseudoklassen</a>."
},
{
  "category": "CSS",
  "question": "Welche andere CSS-Eigenschaft müssen Sie mit \"z-index\" zusammen verwenden, damit \"z-index\" Wirkung zeigt?",
  "answers": [
    { "correct": false, "answer": "display" },
    { "correct": false, "answer": "clip" },
    { "correct": true, "answer": "position" },
    { "correct": false, "answer": "width" }
  ],
  "explanation": "<a href='https://wiki.selfhtml.org/wiki/CSS/Eigenschaften/z-index'>z-index</a> wirkt nur bei Elementen, die eine <code>position</code>-Angabe wie <code>relative</code>, <code>absolute</code> oder <code>fixed</code> besitzen."
},
{
  "category": "CSS",
  "question": "Welcher CSS-Eigenschaft können Sie den Wert \"Window\" geben?",
  "answers": [
    { "correct": false, "answer": "display" },
    { "correct": false, "answer": "width" },
    { "correct": false, "answer": "content" },
    { "correct": true, "answer": "color" }
  ],
  "explanation": "<a href='https://wiki.selfhtml.org/wiki/CSS/Wertetypen/Farbangaben'>Farbangaben</a>: <code>window</code> ist ein systemabhängiges Farbwort und entspricht der Hintergrundfarbe von Dokumentfenstern."
},
{
  "category": "CSS",
  "question": "Welcher Wert ist kein standardisierter Wert für die \"cursor\"-Eigenschaft?",
  "answers": [
    { "correct": true, "answer": "hand" },
    { "correct": false, "answer": "w-resize" },
    { "correct": false, "answer": "text" },
    { "correct": false, "answer": "wait" }
  ],
  "explanation": "<a href='https://wiki.selfhtml.org/wiki/CSS/Eigenschaften/cursor'>cursor (Mauszeiger)</a>: <code>hand</code> war ein IE-spezifischer Wert, aber kein standardisierter CSS-Wert. Stattdessen sollte <code>pointer</code> verwendet werden."
},
{
  "category": "CSS",
  "question": "Wie kann man die vertikale Darstellung eines Texts erreichen?",
  "answers": [
    { "correct": false, "answer": "nur mit einer Grafik" },
    { "correct": false, "answer": "mit der Angabe: vertical-align:top;" },
    { "correct": true, "answer": "mit der Angabe: writing-mode:tb-rl;" },
    { "correct": false, "answer": "mit der Angabe: text-align:vertical;" }
  ],
  "explanation": "<a href='https://wiki.selfhtml.org/wiki/CSS/Eigenschaften/writing-mode'>writing-mode</a>: Mit dem Wert <code>tb-rl</code> (top-to-bottom, right-to-left) lässt sich Text vertikal darstellen. Diese CSS-Eigenschaft wurde früher nur von IE unterstützt, ist aber inzwischen Teil des CSS3-Standards."
  }
]
}