TU Wien:Einführung in die Programmierung 2 VU (Puntigam)/MC-Fragen 2023

Aus VoWi
Zur Navigation springen Zur Suche springen

Welche der folgenden Aussagen treffen auf Ausnahmen und Ausnahmebehandlungen in Java zu?

   Richtig:  finally-Blöcke werden trotz aufgetretener Ausnahme ausgeführt.                     (1A) +
   Falsch:   Ausnahmen vom Typ IOException sind unüberprüft (unchecked).                        (1B) +
   Richtig:  Das Ergebnis von getMessage() ist bei der Objekterzeugung festlegbar.              (1C) +
   Richtig:  Das Java-Laufzeitsystem wirft nur unüberprüfte (unchecked) Ausnahmen.              (1D) +
   Falsch:   'Propagieren einer Ausnahme' bedeutet: 'Ausnahme wird abgefangen'.                 (1E) +

public int median(int[] e) { return e[e.length / 2]; } Welche der folgenden Aussagen können (jede für sich) als Vor- bzw. Nachbedingungen dieser Methode sinnvoll sein?

   Richtig:  Vorbedingung: Setzt voraus, dass e mindestens einen Eintrag hat.                   (2A) +
   Falsch:   Vorbedingung: Wirft eine Exception wenn e == null.                                 (2B) +
   Falsch:   Vorbedingung: Gibt einen Eintrag etwa in der Mitte von e zurück.                   (2C) +
   Falsch:   Nachbedingung: e != null                                                           (2D) +
   Falsch:   Nachbedingung: e ist absteigend sortiert.                                          (2E) +

Welche der folgenden Aussagen treffen auf Klassen und Interfaces im Java-Collections-Framework zu?

   Richtig:  LinkedList<E> erlaubt mehrere gleiche Einträge.                                    (3A) +
   Richtig:  TreeSet<E> ist Untertyp von SortedSet<E>.                                          (3B) +
   Falsch:   LinkedList<E> ist Untertyp von ArrayList<E>                                        (3C) +
   Falsch:   Aus einer Queue<E> kann man Elemente mittels peek und poll löschen.                (3D) +
   Richtig:  LinkedHashMap<K,V> ist sowohl Hashtabelle als auch lineare Liste.                  (3E) +

Welche der folgenden Hoare-Tripel gelten (für Anweisungen in Java)?

   Falsch:   {v > -63} while (v > -63) v--; {v > -63}                                           (4A) +
   Richtig:  {true} v = e > z ? e : z; {v >= e}                                                 (4B) +
   Richtig:  {e == -63} while (v > -63) v--; {e == -63}                                         (4C) +
   Falsch:   {true} v = e < z ? e : z; {v >= e}                                                 (4D) +
   Falsch:   {e <= -63} while (++v < 66) e--; {e < -63}                                         (4E) +

Welche der folgenden Aussagen treffen für Design-by-Contract zu?

   Falsch:   Nachbedingungen beschreiben häufig Eigenschaften von Parametern.                   (5A) +
   Falsch:   Es gilt nur das, was explizit in Zusicherungen steht.                              (5B) +
   Richtig:  Eine Nachbedingung darf im Untertyp stärker sein als im Obertyp.                   (5C) +
   Falsch:  Objektzustände dürfen nur geändert werden, wo dies erwartet wird.                   (5D) +
   Richtig:  Invarianten beziehen sich auf Objektzustände.                                      (5E) +