next up previous
Nächste Seite: Über dieses Dokument ... Aufwärts: Test-Fragen Vorherige Seite: Test-Fragen

Test-Fragen

Was ist ein Algorithmus?


zur Computer-Architektur nach von Neumann: was ist ein Programmzustand? welche zwei elementaren Programmbausteine gibt es?

wo steht das Programm? was folgt daraus?


Welche Möglichkeiten gibt es beim strukturierten Programmieren, die Abarbeitungsreihenfolge zu beeinflussen?


Welche (zwei!) Beziehungen müssen zwischen Eingabe und Ausgabe eines Sortier-Algorithmus gelten?


Wie definiert man die Komplexität eines Algorithmus?

Nennen Sie die Komplexität von zwei Sortierverfahren.


Auf welchem Algorithmen-Entwurfs-Prinzip beruht a) Bubblesort, b) Mergesort?


Wie definiert man die Komplexität eines Problems?

Nennen Sie ein algorithmisch unlösbares Problem.


Welche Gemeinsamkeiten, welche Unterschiede gibt es zwischen Prozeduren und Funktionen?


Was ist ein Datentyp? Nennen Sie einige einfache und einige zusammengesetzte Typen.

Wann und wie werden Typ-Informationen ausgenutzt?


Was ist ein Objekt? Wozu benutzt man Klassen?


Wie muß die Methode foo der Klasse C deklariert sein, damit folgender Aufruf korrekt ist:

C x = new C ();
int y = 4 + x.foo ("bar", 6);


Zeichnen Sie den Syntaxbaum für den Ausdruck

i < a [ a.length - i ]
und beschriften Sie jeden Knoten mit seinem Typ. Wie müssen i und a deklariert sein?


Warum werden in Java Objekte nicht als Wert, sondern durch Verweis an Unterprogramme übergeben? (Zwei Gründe.)


Wie ist ein Konstruktor für eine Klasse C zu deklarieren, der ein Argument vom Typ int hat?


Erläutern Sie die Bezeichnungen Aggregation und Vererbung für Beziehungen zwischen Klassen.


Welche Gemeinsamkeiten und Unterscheide gibt es zwischen Überladen und Überschreiben von Methoden?


Folgende Deklarationen sind gegeben:

class C { 
    int f (int x) { ... }
    int f (int x, int y) { ... }
    int g (int z) { ... }
    int h (int x, C y) { ... }
}
class D extends C {
    int f (int x) { ... }
}
class E { 
    int f (int x) { ... }
}
Kennzeichnen Sie Überladungen, Überschreibungen.

Die folgenden Objekte sind deklariert

C c; D d; E e;
Sind die folgenden Methoden-Aufrufe korrekt? Falls ja, welches Unterprogramm wird jeweils tatsächlich aufgerufen? (Wir nehmen an, daß die Variablen initialisiert wurden.)
c.f (); c.f ("foo");
d.f (4); d.g (5); 
d.f (4, 6); e.f (4, 6);
c.h (8, d);


Untersuchen Sie, ob alle Bedingungen bei der Benutzung der static-Annotation erfüllt sind:

class C {
    static int i;
    int j;
    static int f (int x) {
       return i + 2 * j;
    }
    int g (int x) { ... }
    static void check () {
        System.out.println (f (3) * g (4));
    }
}


Welche Aufgabe hat ein ActionListener, wie wird dieses Interface in einem Applet benutzt?


Warum sollte man zum Layout der Komponenten eines GUI einen Manager benutzen?


Was ist ein Interface?

Welche Beziehungen sind zwischen einem Interface und anderen Programmteilen möglich?

Warum geht das nicht:

interface Foo { ... }
...
Foo x = new Foo ();


Sowohl ein Array als auch eine Liste speichert eine Folge von Elementen.

Welche Listen-Operation ist für Arrays nicht ausführbar?


Sowohl ein Baum als auch eine Liste speichern eine Menge von Elementen (Schlüsseln).

Wieso ist ein Baum günstiger, wenn man oft über die Schlüssel auf die Elemente zugreifen muß?


Beweis oder Gegenbeispiel: wenn man die Pre-Order-Reihenfolge eines binären Baumes spiegelt, dann erhält man die Post-Order-Reihenfolge.


Wie kann man aus einer vorgegebenen Liste von Schlüsseln einen balancierten Suchbaum herstellen?

(Hinweis: nicht durch wiederholtes Einfügen)


next up previous
Nächste Seite: Über dieses Dokument ... Aufwärts: Test-Fragen Vorherige Seite: Test-Fragen
Johannes Waldmann 2004-01-30