First 50 of 200 questions. Each one lists the choices, the correct answer, and an explanation. The checker at the top of this page saves progress in this browser when it is available.
Continue in the practice tool above to load more questions, 50 at a time.
Question 1Software development and programming (Modellierung, Algorithmen, Implementierung)
Im Entwurf eines ER-Modells für ein Schulverwaltungssystem soll festgelegt werden, ob ein Schüler genau einer Klasse angehört und eine Klasse mehrere Schüler enthält. Welche Beziehungstyp-Angabe beschreibt diesen Sachverhalt korrekt?
- 1:n von Klasse zu Schüler Correct answer.
- 1:1 zwischen Schüler und Klasse
- n:1 von Klasse zu Schüler
- n:m zwischen Schüler und Klasse
Explanation
Eine Klasse enthält beliebig viele Schüler, jeder Schüler gehört aber genau einer Klasse an. Damit ist die Kardinalität auf der Seite der Klasse 1 und auf der Seite der Schüler n, also 1:n von Klasse zu Schüler. Die Leserichtung ist entscheidend, weil 1:n und n:1 denselben Sachverhalt nur aus unterschiedlicher Perspektive beschreiben.
Question 2Software development and programming (Modellierung, Algorithmen, Implementierung)
Welche Aussage über den Primärschlüssel einer Relation in einem relationalen Datenbankschema ist zutreffend?
- Er darf mehrere NULL-Werte enthalten, solange die übrigen Attribute gefüllt sind.
- Er darf in verschiedenen Datensätzen mehrfach vorkommen, wenn ein Index existiert.
- Er muss aus genau einem Attribut bestehen und darf nicht zusammengesetzt sein.
- Er identifiziert jeden Datensatz eindeutig und darf keine NULL-Werte enthalten. Correct answer.
Explanation
Der Primärschlüssel garantiert die Eindeutigkeit jedes Tupels und schließt NULL-Werte aus, damit die Identifikation immer möglich ist. Er kann durchaus aus mehreren Attributen zusammengesetzt sein, etwa bei einer Zwischentabelle. Ein Index beschleunigt nur den Zugriff und hebt die Eindeutigkeitsbedingung nicht auf.
Question 3Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Algorithmus enthält die Schleife: solange i < 10, erhöhe i um 2, beginnend bei i = 0. Wie oft wird der Schleifenrumpf ausgeführt?
- 4-mal
- 10-mal
- 5-mal Correct answer.
- 6-mal
Explanation
Der Rumpf läuft für i = 0, 2, 4, 6 und 8, also genau fünfmal; bei i = 10 ist die Bedingung i < 10 falsch. Die Schrittweite 2 und die Startbedingung bestimmen die Anzahl der Durchläufe. Man zählt die Werte vor der Erhöhung, nicht die erreichten Endwerte.
Question 4Software development and programming (Modellierung, Algorithmen, Implementierung)
Welche Aufgabe erfüllt ein Compiler im Gegensatz zu einem Interpreter?
- Er prüft den Quelltext ausschließlich auf Rechtschreibfehler in Kommentaren.
- Er übersetzt den gesamten Quelltext vor der Ausführung in Maschinencode. Correct answer.
- Er ersetzt zur Laufzeit fehlende Bibliotheksfunktionen durch Standardroutinen.
- Er führt den Quelltext Anweisung für Anweisung direkt aus.
Explanation
Ein Compiler übersetzt das vollständige Programm vorab in eine ausführbare Zieldatei, wodurch Syntaxfehler vor dem Lauf erkannt werden. Ein Interpreter arbeitet dagegen schrittweise während der Ausführung. Beide Verfahren können dieselbe Sprache verarbeiten, unterscheiden sich aber im Zeitpunkt der Übersetzung.
Question 5Software development and programming (Modellierung, Algorithmen, Implementierung)
In einem Struktogramm (Nassi-Shneiderman-Diagramm) wird eine Verzweigung dargestellt. Wodurch unterscheidet sich diese Darstellung von einer einfachen Anweisungsfolge?
- Durch zwei nebeneinanderliegende, mit einer Bedingung beschriftete Blöcke. Correct answer.
- Durch einen Pfeil, der zum Programmanfang zurückspringt.
- Durch eine gestrichelte Linie, die Variablen miteinander verbindet.
- Durch einen einzelnen Block, der mehrfach untereinander wiederholt wird.
Explanation
Eine Verzweigung wird im Struktogramm als Aufteilung in einen Wahr- und einen Falsch-Zweig gezeichnet, wobei die Bedingung über den beiden Blöcken steht. Dadurch bleibt die Struktur ohne Sprungpfeile lesbar. Wiederholungen werden dagegen als umschließender Rahmen mit Schleifenkopf dargestellt.
Question 6Software development and programming (Modellierung, Algorithmen, Implementierung)
Eine Variable vom Typ integer soll in Java deklariert und mit dem Wert 7 initialisiert werden. Welche Anweisung ist syntaktisch korrekt?
- integer zahl = 7;
- int zahl = 7; Correct answer.
- int = zahl 7;
- zahl int := 7;
Explanation
In Java lautet der primitive Ganzzahltyp int, gefolgt vom Variablennamen und der Zuweisung mit Gleichheitszeichen. Die Reihenfolge Typ, Name, Zuweisung ist verbindlich. Andere Schreibweisen wie := stammen aus Pseudocode oder Pascal.
Question 7Software development and programming (Modellierung, Algorithmen, Implementierung)
Welche Eigenschaft kennzeichnet einen Algorithmus im Sinne der Definition als terminierend?
- Er verwendet ausschließlich Schleifen mit fester Obergrenze.
- Er liefert für jede zulässige Eingabe nach endlich vielen Schritten ein Ergebnis. Correct answer.
- Er benötigt unabhängig von der Eingabe stets denselben Speicherplatz.
- Er ist in einer höheren Programmiersprache notiert.
Explanation
Terminierung bedeutet, dass die Ausführung für jede zulässige Eingabe nach endlich vielen Schritten endet und ein Ergebnis liefert. Sie ist eine der Grundeigenschaften neben Determinismus, Eindeutigkeit und Allgemeinheit. Weder die Programmiersprache noch ein konstanter Speicherbedarf sind dafür Voraussetzung.
Question 8Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Feld (Array) enthält die Werte [3, 8, 12, 17, 21]. Bei der binären Suche nach dem Wert 17 wird zunächst die mittlere Position betrachtet. Welches Element wird im ersten Schritt verglichen?
- 3
- 12 Correct answer.
- 8
- 17
Explanation
Bei fünf Elementen liegt die mittlere Position bei Index 2 (nullbasiert), also beim Wert 12. Da 17 größer als 12 ist, wird anschließend nur die rechte Hälfte weiter durchsucht. Die binäre Suche setzt ein sortiertes Feld voraus und halbiert den Suchraum in jedem Schritt.
Question 9Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Programm soll die Summe der Zahlen von 1 bis n berechnen. Welche Rechenvorschrift liefert das Ergebnis ohne Schleife in konstanter Laufzeit?
- n * n / 2
- n * (n - 1) / 2
- (n + 1) * (n + 1) / 2
- n * (n + 1) / 2 Correct answer.
Explanation
Die gaußsche Summenformel n·(n+1)/2 ergibt für n = 5 den Wert 15, was der Summe 1+2+3+4+5 entspricht. Sie lässt sich als geschlossener Ausdruck in konstanter Zeit berechnen. Die übrigen Formeln weichen um systematische Terme ab.
Question 10Software development and programming (Modellierung, Algorithmen, Implementierung)
Welche Aussage beschreibt die Datenkapselung (Encapsulation) in der objektorientierten Modellierung zutreffend?
- Attribute eines Objekts werden vor direktem Zugriff geschützt und nur über Methoden bearbeitet. Correct answer.
- Methoden dürfen ausschließlich auf Attribute der eigenen Klasse zugreifen.
- Eine Klasse darf keine Vererbungsbeziehung zu einer anderen Klasse haben.
- Alle Attribute eines Objekts müssen öffentlich (public) deklariert werden.
Explanation
Datenkapselung bedeutet, dass der interne Zustand eines Objekts verborgen bleibt und kontrolliert über öffentliche Methoden verändert wird. Dadurch lassen sich Invarianten sichern und Implementierungsdetails austauschen. Vererbung und Zugriff auf fremde Objekte bleiben davon unberührt.
Question 11Software development and programming (Modellierung, Algorithmen, Implementierung)
Eine Relation Schüler(SchülerID, Name, KlasseID) und eine Relation Klasse(KlasseID, Bezeichnung) sollen verknüpft werden. Welche Operation liefert für jeden Schüler zusätzlich die Klassenbezeichnung?
- Projektion auf die Spalte Name
- Differenz der beiden Relationen
- Natürlicher Verbund (Natural Join) über KlasseID Correct answer.
- Kartesisches Produkt ohne Bedingung
Explanation
Der natürliche Verbund verknüpft Tupel über das gemeinsame Attribut KlasseID und ergänzt so jede Schülerzeile um die passende Bezeichnung. Er entfernt dabei das doppelte Verbindungsattribut. Die Projektion wählt nur Spalten aus, das kartesische Produkt kombiniert ohne Bedingung alle Zeilen.
Question 12Software development and programming (Modellierung, Algorithmen, Implementierung)
Für eine Relation mit 1:n-Beziehung zwischen Bestellung und Position soll das relationale Schema abgeleitet werden. Welche Umsetzung ist regelkonform?
- Der Fremdschlüssel PositionsID wird als Attribut in die Relation Bestellung aufgenommen.
- Es wird eine zusätzliche Zwischentabelle mit beiden Schlüsseln angelegt.
- Der Fremdschlüssel BestellID wird als Attribut in die Relation Position aufgenommen. Correct answer.
- Beide Relationen werden zu einer einzigen Relation ohne Schlüssel zusammengeführt.
Explanation
Bei einer 1:n-Beziehung wandert der Primärschlüssel der 1-Seite als Fremdschlüssel auf die n-Seite. Jede Position kennt damit ihre Bestellung, ohne dass Daten redundant gespeichert werden. Eine Zwischentabelle ist nur bei n:m-Beziehungen erforderlich.
Question 13Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Sortieralgorithmus soll ein Feld mit 1000 zufällig angeordneten Zahlen sortieren. Welche Aussage über Bubblesort im Vergleich zu Mergesort ist zutreffend?
- Bubblesort ist bei zufälligen Daten stets schneller als Mergesort.
- Beide Verfahren haben identische Worst-Case-Laufzeiten.
- Bubblesort hat im Mittel eine quadratische Laufzeit, Mergesort eine Laufzeit von n·log n. Correct answer.
- Mergesort benötigt keine zusätzliche Hilfsstruktur und sortiert in-place.
Explanation
Bubblesort vergleicht benachbarte Elemente und benötigt im Mittel etwa n² Vergleiche, während Mergesort durch Teilen und Mischen bei n·log n liegt. Bei 1000 Elementen macht sich dieser Unterschied deutlich bemerkbar. Mergesort ist dafür bekannt, zusätzlichen Speicher für das Zusammenführen zu benötigen.
Question 14Software development and programming (Modellierung, Algorithmen, Implementierung)
Eine Methode in einer Klasse Fahrzeug soll in einer Unterklasse Lastwagen überschrieben werden. Welche Bedingung muss die überschreibende Methode in Java erfüllen?
- Sie muss als static deklariert sein, damit die Bindung dynamisch erfolgt.
- Sie darf nur in einer abstrakten Klasse deklariert werden.
- Sie muss den Zugriffsmodifikator private verwenden.
- Sie muss denselben Namen, dieselbe Parameterliste und einen kompatiblen Rückgabetyp besitzen. Correct answer.
Explanation
Beim Überschreiben muss die Signatur übereinstimmen, also Name und Parameterliste; der Rückgabetyp darf kovariant sein. Nur so kann der Aufruf dynamisch an die Unterklasse gebunden werden. private- oder static-Methoden sind vom Überschreiben ausgeschlossen.
Question 15Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Programm soll prüfen, ob eine eingegebene Zahl eine Primzahl ist. Welche Vorgehensweise ist algorithmisch korrekt und effizient?
- Es wird die Quersumme der Zahl berechnet und auf Teilbarkeit durch 3 geprüft.
- Alle Teiler von 2 bis n-1 werden geprüft; bei einem Teiler ist die Zahl keine Primzahl.
- Alle Teiler von 2 bis zur Wurzel aus n werden geprüft; wird keiner gefunden, ist die Zahl prim. Correct answer.
- Es wird nur geprüft, ob die Zahl gerade ist.
Explanation
Es genügt, mögliche Teiler bis zur ganzzahligen Wurzel aus n zu prüfen, da jeder größere Teiler einen kleineren Partner hätte. Das reduziert den Aufwand erheblich gegenüber der Prüfung bis n-1. Die Prüfung auf Geradheit allein erkennt keine Primzahlen.
Question 16Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Stack (Kellerspeicher) wird mit den Operationen push(1), push(2), push(3), pop(), push(4), pop() verwendet. Welcher Wert wird zuletzt ausgegeben?
- 1
- 4 Correct answer.
- 3
- 2
Explanation
Ein Stack arbeitet nach dem LIFO-Prinzip: Zuletzt eingefügte Elemente werden zuerst entnommen. Nach push(1), push(2), push(3) entfernt pop() die 3, danach wird 4 eingefügt und mit dem zweiten pop() sofort wieder entnommen. Der zuletzt ausgegebene Wert ist daher 4.
Question 17Software development and programming (Modellierung, Algorithmen, Implementierung)
Welche Normalform ist erfüllt, wenn jede nicht-schlüsselabhängige Spalte ausschließlich vom vollständigen Primärschlüssel abhängt und keine transitiven Abhängigkeiten bestehen?
- Boyce-Codd-Normalform
- Dritte Normalform Correct answer.
- Zweite Normalform
- Erste Normalform
Explanation
Die dritte Normalform setzt die zweite voraus und verlangt zusätzlich, dass keine Nichtschlüsselattribute transitiv von Nichtschlüsselattributen abhängen. Die zweite Normalform verbietet nur partielle Abhängigkeiten vom Teil eines zusammengesetzten Schlüssels. Die erste Normalform fordert lediglich atomare Attributwerte.
Question 18Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Objekt der Klasse Konto hat das Attribut stand. Eine Methode soll den Stand um einen Betrag erhöhen und bei negativem Ergebnis eine Ausnahme auslösen. Welches Entwurfsmittel setzt diese Invariante am besten durch?
- Der Betrag wird als Konstante in einer separaten Klasse gespeichert.
- Das Attribut stand wird public deklariert und direkt verändert.
- Die Prüfung wird ausschließlich in der grafischen Oberfläche implementiert.
- Die Erhöhung erfolgt über eine Methode, die den Betrag prüft und bei Verletzung eine Exception wirft. Correct answer.
Explanation
Die Invariante lässt sich nur zuverlässig sichern, wenn der Zugriff über eine Methode mit Prüfung erfolgt und das Attribut gekapselt bleibt. Eine Ausnahme signalisiert dem Aufrufer die Verletzung und verhindert die Zustandsänderung. Prüfungen nur in der Oberfläche lassen sich umgehen.
Question 19Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Flussdiagramm enthält eine Verzweigung, bei der beide Zweige wieder in denselben Knoten münden. Welche Struktur entsteht dadurch?
- Eine Endlosschleife ohne Ausstieg
- Eine Schleife mit Abbruchbedingung am Anfang
- Eine Unterprogrammdefinition mit Rückgabewert
- Eine einfache Auswahl (if) ohne Wiederholung Correct answer.
Explanation
Wenn beide Zweige einer Verzweigung anschließend wieder zusammenlaufen und kein Rücksprung erfolgt, handelt es sich um eine einfache Auswahl. Eine Schleife würde einen Rücksprung zu einem früheren Knoten erfordern. Unterprogramme werden durch separate Symbole für Aufruf und Rücksprung dargestellt.
Question 20Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Feld enthält die Werte [5, 2, 9, 1, 7]. Nach dem ersten vollständigen Durchlauf von Bubblesort (aufsteigend) in der Variante, die benachbarte Paare von links nach rechts vergleicht und tauscht, wie lautet das Feld?
- [2, 5, 1, 7, 9] Correct answer.
- [5, 2, 9, 1, 7]
- [2, 5, 9, 1, 7]
- [1, 2, 5, 7, 9]
Explanation
Im ersten Durchlauf wandert das größte Element schrittweise nach rechts: 5 und 2 werden getauscht, 5 und 9 nicht, 9 und 1 getauscht, 9 und 7 getauscht. Ergebnis ist [2, 5, 1, 7, 9]; das Feld ist noch nicht vollständig sortiert. Jeder Durchlauf garantiert nur, dass das aktuelle Maximum an seiner Endposition steht.
Question 21Software development and programming (Modellierung, Algorithmen, Implementierung)
Eine rekursive Methode fakultaet(n) ruft sich mit fakultaet(n-1) auf und liefert für n = 1 den Wert 1 zurück. Welche Rolle spielt die Abbruchbedingung für die Ausführung?
- Sie ersetzt die Notwendigkeit eines Rückgabewerts.
- Sie erhöht die Laufzeit, weil jeder Aufruf doppelt gezählt wird.
- Sie wandelt die Rekursion automatisch in eine Schleife um.
- Sie verhindert eine unendliche Rekursion und beendet die Aufrufkette. Correct answer.
Explanation
Jede Rekursion benötigt einen Basisfall, der ohne weiteren Selbstaufruf ein Ergebnis liefert und damit die Aufrufkette beendet. Ohne ihn würden die Aufrufe bis zum Überlauf des Stacks fortgesetzt. Die Abbruchbedingung hat keinen Einfluss auf die Anzahl der Rückgabewerte.
Question 22Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein ER-Modell enthält eine n:m-Beziehung zwischen Schüler und Kurs mit dem Attribut Note. Welche Umsetzung im relationalen Schema ist erforderlich?
- Die Note wird als Attribut in die Relation Schüler aufgenommen.
- Die Beziehung entfällt, weil n:m nicht abbildbar ist.
- Die Note wird als Attribut in die Relation Kurs aufgenommen.
- Es wird eine eigene Relation mit den Schlüsseln beider Seiten und dem Attribut Note gebildet. Correct answer.
Explanation
Bei n:m-Beziehungen entsteht eine Zwischenrelation, die die Primärschlüssel beider Seiten als Fremdschlüssel und alle Beziehungsattribute enthält. Nur so kann die Note pro Schüler-Kurs-Paar gespeichert werden. Eine Zuordnung zu einer der beiden Seiten würde die Mehrdeutigkeit zerstören.
Question 23Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Algorithmus durchsucht ein sortiertes Feld der Länge 1024 mit binärer Suche. Wie viele Vergleiche sind im Worst Case höchstens erforderlich?
- 32
- 1024
- 10
- 11 Correct answer.
Explanation
Die binäre Suche halbiert den Suchraum in jedem Schritt; nach k Schritten bleiben höchstens 1024/2^k Elemente. Da 2^10 = 1024 ist, benötigt man im Worst Case 11 Vergleiche, weil auch der letzte Einzelvergleich gezählt wird. Die lineare Suche käme auf bis zu 1024 Vergleiche.
Question 24Software development and programming (Modellierung, Algorithmen, Implementierung)
Eine Methode in Java ist als public void ausgeben(int wert) deklariert. Eine Unterklasse deklariert public int ausgeben(int wert). Welche Folge tritt beim Übersetzen ein?
- Die Unterklassenmethode wird als private behandelt.
- Die Methode wird automatisch als Konstruktor interpretiert.
- Der Compiler akzeptiert die Methode als gültige Überladung.
- Der Compiler meldet einen Fehler, weil der Rückgabetyp nicht zum überschriebenen void passt. Correct answer.
Explanation
Beim Überschreiben muss der Rückgabetyp kompatibel sein; void kann nicht durch int ersetzt werden, da der Aufrufer sonst einen Wert erwarten würde, den die Oberklassenmethode nicht liefert. Überladung würde eine unterschiedliche Parameterliste voraussetzen, die hier nicht vorliegt. Konstruktoren tragen den Klassennamen und haben keinen Rückgabetyp.
Question 25Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Programm soll für ein Feld der Länge n alle Paare (i, j) mit i < j auf Duplikate prüfen. Welche Laufzeitklasse ergibt sich für den naiven paarweisen Vergleich?
- O(n²) Correct answer.
- O(log n)
- O(n)
- O(1)
Explanation
Die äußere Schleife läuft über n Positionen, die innere über die jeweils nachfolgenden, sodass etwa n·(n−1)/2 Vergleiche anfallen. Das wächst quadratisch mit n, also O(n²). Ein Sortieren vorab könnte den Aufwand auf O(n·log n) senken, ist hier aber nicht Teil des Verfahrens.
Question 26Software development and programming (Modellierung, Algorithmen, Implementierung)
In einem Struktogramm (Nassi-Shneiderman-Diagramm) wird eine bedingte Anweisung (if-else) dargestellt. Wie wird die Verzweigung dort abgebildet?
- Als Kreis mit einer Bedingung im Inneren und einem Ausgangspfeil
- Als Raute, aus der zwei Pfeile zu verschiedenen Knoten führen
- Als Parallelogramm mit Ein- und Ausgabe-Anweisung
- Als Rechteck, das durch einen waagerechten Balken in zwei Spalten geteilt wird Correct answer.
Explanation
Struktogramme verzichten bewusst auf Pfeile und bilden Kontrollstrukturen durch Schachtelung von Blöcken ab. Eine Verzweigung entsteht, indem ein Rahmen durch einen waagerechten Balken in zwei Spalten geteilt wird, die den Wahr- und den Falsch-Zweig enthalten.
Question 27Software development and programming (Modellierung, Algorithmen, Implementierung)
Eine Wertetabelle eines Programms enthält für n die Werte 1, 2, 3, 4 und für die Ausgabe die Werte 2, 4, 8, 16. Welche geschlossene Funktionsvorschrift beschreibt die Ausgabe am treffendsten?
- f(n) = n + 1
- f(n) = 2ⁿ Correct answer.
- f(n) = n²
- f(n) = 2n
Explanation
Bei jeder Erhöhung von n um 1 verdoppelt sich die Ausgabe, was auf exponentielles Wachstum mit Basis 2 hindeutet. Die Werte 2, 4, 8, 16 entsprechen genau 2¹ bis 2⁴, also f(n) = 2ⁿ.
Question 28Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Algorithmus wird durch ein Struktogramm mit einer Schleife modelliert, deren Durchlaufzahl vor dem ersten Durchlauf feststeht. Welche Schleifenform entspricht diesem Aufbau?
- Kopfgesteuerte while-Schleife
- Fußgesteuerte do-while-Schleife
- Zählschleife (for-Schleife) Correct answer.
- Rekursiver Selbstaufruf
Explanation
Steht die Anzahl der Wiederholungen vor dem Eintritt in die Schleife fest, wird üblicherweise eine Zählschleife mit Initialisierung, Bedingung und Inkrement verwendet. Sie lässt sich im Struktogramm als Zählrahmen mit Angabe von Start, Ende und Schrittweite notieren.
Question 29Software development and programming (Modellierung, Algorithmen, Implementierung)
In einem Java-Programm soll eine ganzzahlige Konstante für die maximale Anzahl von Versuchen definiert werden, die während der Laufzeit nicht verändert werden darf. Welche Deklaration erfüllt diese Anforderung?
- final int MAX_VERSUCHE = 3; Correct answer.
- readonly int MAX_VERSUCHE = 3;
- static int MAX_VERSUCHE = 3;
- const int MAX_VERSUCHE = 3;
Explanation
In Java kennzeichnet das Schlüsselwort final eine Variable, deren Wert nach der Initialisierung nicht mehr neu zugewiesen werden kann. Für eine Klasssenkonstante wird üblicherweise zusätzlich static verwendet, der entscheidende Teil ist jedoch final.
Question 30Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Programm soll prüfen, ob ein eingegebener Text ein Palindrom ist. Welche Vorgehensweise beschreibt den Algorithmus am treffendsten?
- Den Text sortieren und mit dem Original vergleichen
- Den Text in eine Zahl umwandeln und auf Teilbarkeit prüfen
- Zeichen von beiden Enden paarweise vergleichen, bis sich die Zeiger treffen Correct answer.
- Den Text mit sich selbst konkatenieren und die Länge verdoppeln
Explanation
Ein Palindrom liest sich vorwärts und rückwärts gleich, was sich durch paarweisen Vergleich vom linken und rechten Rand prüfen lässt. Sobald ein Paar ungleich ist, kann abgebrochen werden; treffen sich die Zeiger, ist die Bedingung erfüllt.
Question 31Software development and programming (Modellierung, Algorithmen, Implementierung)
In einem ER-Diagramm wird ein Attribut einer Entität als Primärschlüssel gekennzeichnet. Wozu dient diese Kennzeichnung bei der Umsetzung in ein relationales Schema?
- Zur Festlegung der Datensortierung beim Einfügen
- Zur automatischen Vergabe fortlaufender Werte durch das DBMS
- Zur Definition der maximalen Feldlänge des Attributs
- Zur eindeutigen Identifikation jedes Tupels der entstehenden Tabelle Correct answer.
Explanation
Der Primärschlüssel übernimmt im relationalen Modell die Aufgabe, jedes Tupel eindeutig zu identifizieren und doppelte Einträge auszuschließen. Er wird bei der Schemaableitung aus dem im ER-Modell markierten Schlüsselattribut übernommen.
Question 32Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Feld enthält aufsteigend sortierte Werte. Ein Programm soll feststellen, ob ein bestimmter Wert enthalten ist, und dafür die binäre Suche verwenden. Welche Voraussetzung muss das Feld zusätzlich erfüllen?
- Es muss im Hauptspeicher als verkettete Liste vorliegen
- Es muss eine Länge von einer Zweierpotenz haben
- Es darf keine doppelten Werte enthalten
- Es muss eine sortierte Reihenfolge aufweisen Correct answer.
Explanation
Die binäre Suche halbiert den Suchbereich anhand des mittleren Elements und setzt dabei voraus, dass die Elemente sortiert vorliegen. Nur dann lässt sich aus dem Vergleich mit dem mittleren Wert schließen, in welcher Hälfte weitergesucht werden muss.
Question 33Software development and programming (Modellierung, Algorithmen, Implementierung)
Welche Aufgabe hat ein Compiler im Gegensatz zu einem Interpreter bei der Ausführung eines Programms?
- Er ersetzt fehlende Bibliotheken zur Laufzeit automatisch
- Er prüft ausschließlich die Syntax, ohne Code zu erzeugen
- Er übersetzt den Quelltext vollständig vor der Ausführung in Maschinencode Correct answer.
- Er führt den Quelltext Zeile für Zeile direkt aus
Explanation
Ein Compiler analysiert den gesamten Quelltext und erzeugt daraus vor der Ausführung ein ausführbares Programm in Maschinencode oder Bytecode. Ein Interpreter hingegen führt Anweisungen schrittweise zur Laufzeit aus.
Question 34Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein zweidimensionales Feld speichert die Noten einer Klasse: Zeilen entsprechen Schülerinnen und Schülern, Spalten entsprechen Fächern. Welche Zugriffsanweisung in Java liest die Note des dritten Schülers im zweiten Fach?
- noten[2,1]
- noten[2][1] Correct answer.
- noten[3][2]
- noten[1][2]
Explanation
Java indiziert Felder ab 0, daher entspricht der dritte Schüler dem Index 2 und das zweite Fach dem Index 1. Der Zugriff erfolgt mit zwei getrennten Klammerpaaren in der Reihenfolge Zeile, Spalte.
Question 35Software development and programming (Modellierung, Algorithmen, Implementierung)
Eine Klasse Rechteck besitzt die privaten Attribute laenge und breite sowie die Methode flaeche(). Eine zweite Klasse Wuerfel soll die Fläche eines Quadrats berechnen. Welche Modellierungsentscheidung ist fachlich sinnvoll?
- Wuerfel erbt von Rechteck und überschreibt flaeche()
- Wuerfel dupliziert die Attribute laenge und breite als public
- Wuerfel enthält ein privates Rechteck-Objekt und delegiert die Berechnung Correct answer.
- Wuerfel implementiert eine Schnittstelle mit der Methode flaeche()
Explanation
Ein Quadrat ist ein Sonderfall eines Rechtecks, jedoch führt Vererbung hier zu Problemen, weil laenge und breite unabhängig veränderbar wären. Fachlich sauber ist die Komposition, bei der Wuerfel ein Rechteck-Objekt enthält und die Flächenberechnung delegiert.
Question 36Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Algorithmus soll in einem unsortierten Feld der Länge n den größten Wert finden. Welche Aussage über die Anzahl der notwendigen Vergleiche trifft zu?
- Es sind genau n² Vergleiche erforderlich
- Es genügen log(n) Vergleiche bei geeigneter Wahl
- Es sind mindestens n·log(n) Vergleiche nötig
- Es genügen n−1 Vergleiche im schlechtesten Fall Correct answer.
Explanation
Beim linearen Durchlaufen wird jedes Element einmal mit dem bisherigen Maximum verglichen. Beginnt man mit dem ersten Element als vorläufigem Maximum, sind für die übrigen n−1 Elemente genau n−1 Vergleiche erforderlich.
Question 37Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Programm soll die Summe der geraden Zahlen von 1 bis 100 berechnen. Welche Schleifenkonstruktion setzt dies am direktesten um?
- Eine Rekursion, die bei jedem Schritt um 3 erhöht
- Eine Zählschleife von 1 bis 100, die bei geraden Werten addiert
- Eine while-Schleife, die bei jedem Durchlauf eine Zufallszahl prüft
- Eine Zählschleife von 2 bis 100 mit Schrittweite 2, die jeden Wert addiert Correct answer.
Explanation
Da nur gerade Zahlen summiert werden sollen, kann die Schleife direkt mit Startwert 2 und Schrittweite 2 laufen. Damit entfällt die Bedingungsprüfung in jedem Durchlauf, und die Anzahl der Iterationen halbiert sich.
Question 38Software development and programming (Modellierung, Algorithmen, Implementierung)
Eine Methode soll ein Feld von Zahlen sortieren und dabei das Ergebnis direkt im übergebenen Feld hinterlegen, ohne ein neues Feld zurückzugeben. Welche Signatur passt am besten zu dieser Anforderung?
- public int sortiere(int feld)
- public void sortiere(int[] feld) Correct answer.
- public void sortiere(int feld)
- public int[] sortiere(int[] feld)
Explanation
Da das Ergebnis im übergebenen Feld stehen soll, genügt ein void-Rückgabetyp, und als Parameter wird die Feldreferenz übergeben. Änderungen am Feldinhalt wirken sich beim Aufrufer aus, weil beide Referenzen auf dasselbe Objekt zeigen.
Question 39Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Programm berechnet die Fibonacci-Zahlen rekursiv nach der Vorschrift fib(n) = fib(n−1) + fib(n−2) mit fib(0) = 0 und fib(1) = 1. Welche Schwäche hat diese naive Implementierung?
- Sie liefert für n > 10 falsche Werte
- Sie berechnet dieselben Teilprobleme mehrfach und wächst exponentiell Correct answer.
- Sie benötigt keinen Aufrufstapel und ist daher fehleranfällig
- Sie terminiert für gerade n nicht
Explanation
Bei der naiven rekursiven Fibonacci-Berechnung werden Teilprobleme wie fib(n−2) mehrfach aufgerufen, wodurch die Anzahl der Aufrufe exponentiell wächst. Abhilfe schaffen Memoisierung oder eine iterative Berechnung mit konstantem Aufwand.
Question 40Software development and programming (Modellierung, Algorithmen, Implementierung)
In einer Datenbank soll verhindert werden, dass ein Datensatz mit doppelter SchülerID eingefügt wird. Welches Mittel der Datenbanksprache setzt diese Anforderung durch?
- Ein DEFAULT-Wert für SchülerID
- Ein CHECK-Constraint auf das Attribut Name
- Ein INDEX ohne Eindeutigkeitsbedingung auf SchülerID
- Ein UNIQUE-Constraint oder Primärschlüssel auf SchülerID Correct answer.
Explanation
Eindeutigkeit wird durch einen UNIQUE-Constraint oder durch die Vergabe des Primärschlüssels auf dem Attribut abgesichert. Das DBMS lehnt dann Einfügungen mit bereits vorhandenem Wert ab.
Question 41Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Programm soll aus einer Liste von Messwerten den Median bestimmen. Welche Voraussetzung muss dafür zunächst geschaffen werden?
- Die Werte müssen in einen String umgewandelt werden
- Die Werte müssen auf ihren absoluten Betrag reduziert werden
- Die Werte müssen auf ganze Zahlen gerundet werden
- Die Werte müssen aufsteigend oder absteigend sortiert werden Correct answer.
Explanation
Der Median ist der mittlere Wert der sortierten Folge; bei gerader Anzahl wird das arithmetische Mittel der beiden mittleren Werte gebildet. Ohne Sortierung lässt sich die mittlere Position nicht zuverlässig bestimmen.
Question 42Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Flussdiagramm enthält eine Schleife, bei der die Bedingung am Ende des Rumpfes geprüft wird. Welche Eigenschaft hat diese Schleife?
- Der Rumpf wird bei falscher Bedingung nie ausgeführt
- Die Bedingung wird vor jedem Durchlauf geprüft
- Der Rumpf wird mindestens einmal ausgeführt Correct answer.
- Die Schleife kann niemals terminiieren
Explanation
Wird die Bedingung erst nach dem Rumpf geprüft, handelt es sich um eine fußgesteuerte Schleife. Der Rumpf durchläuft damit in jedem Fall mindestens einen Durchlauf, bevor über eine Wiederholung entschieden wird.
Question 43Software development and programming (Modellierung, Algorithmen, Implementierung)
Eine Klasse Bankkonto besitzt die private Methode pruefeLimit(). Eine Unterklasse Geschaeftskonto möchte diese Prüfung in abgewandelter Form nutzen. Welche Vorgehensweise ist objektorientiert sinnvoll?
- Die Methode in der Unterklasse mit anderem Rückgabetyp deklarieren
- Die Methode in der Oberklasse public machen und in der Unterklasse verbergen
- Die Methode in der Unterklasse als private neu deklarieren
- Die Methode in der Oberklasse als protected deklarieren und in der Unterklasse überschreiben Correct answer.
Explanation
Private Methoden sind für Unterklassen nicht sichtbar und können daher nicht überschrieben werden. Soll die Unterklasse die Prüfung erweitern, muss die Sichtbarkeit in der Oberklasse auf protected erhöht werden, damit Überschreiben möglich ist.
Question 44Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Programm soll aus einer Zeichenkette alle Ziffern entfernen. Welche Strategie ist algorithmisch am einfachsten umzusetzen?
- Die Zeichenkette in ein Feld umwandeln und jedes Zeichen prüfen Correct answer.
- Die Zeichenkette sortieren und doppelte Zeichen löschen
- Die Zeichenkette mit sich selbst vergleichen
- Die Zeichenkette in eine Zahl umwandeln und wieder zurück
Explanation
Die Umwandlung in ein Zeichenfeld erlaubt es, jedes Zeichen einzeln zu prüfen und nur die nicht-Ziffern in eine neue Zeichenkette zu übernehmen. Das ist ein einfacher linearer Durchlauf ohne zusätzliche Datenstrukturen.
Question 45Software development and programming (Modellierung, Algorithmen, Implementierung)
Eine Methode berechnet die Potenz aⁿ durch wiederholtes Multiplizieren in einer Schleife. Welche Laufzeitklasse ergibt sich in Abhängigkeit vom Exponenten n?
- O(log n)
- O(n²)
- O(2ⁿ)
- O(n) Correct answer.
Explanation
Die Schleife wird n-mal durchlaufen und führt pro Durchlauf eine Multiplikation aus. Damit wächst die Laufzeit linear mit dem Exponenten, also in O(n).
Question 46Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Programm soll zwei bereits sortierte Felder zu einem sortierten Feld zusammenführen. Welches Verfahren ist dafür geeignet?
- Mit zwei Zeigern das jeweils kleinere Element übernehmen und zeigerweise vorrücken Correct answer.
- Beide Felder mit einem Hashverfahren auf Duplikate prüfen
- Das erste Feld mit binärer Suche in das zweite einfügen
- Beide Felder konkatenieren und anschließend mit Bubblesort sortieren
Explanation
Beim Merge-Verfahren laufen zwei Zeiger durch die sortierten Felder und übernehmen jeweils das kleinere Element in das Ergebnis. Da jedes Element einmal betrachtet wird, entsteht ein lineares Verfahren in O(n+m).
Question 47Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Programm soll die Anzahl der Vorkommen eines Zeichens in einem Text zählen. Welche Datenstruktur ist dafür am wenigsten geeignet?
- Ein Stack, in den jedes Zeichen eingefügt und wieder entnommen wird Correct answer.
- Eine HashMap von Zeichen auf Zählerstände
- Ein einfacher Zähler mit einem linearen Durchlauf
- Ein Feld mit 256 Zählern für alle möglichen Zeichen
Explanation
Ein Stack eignet sich für LIFO-Zugriffe, nicht für das Zählen von Häufigkeiten. Er würde die Zeichen zwar aufnehmen, aber keine Zählung liefern, ohne zusätzlichen Aufwand zu erzeugen.
Question 48Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Algorithmus soll ein Feld mit n Zahlen sortieren und verwendet dazu die Auswahl des jeweils kleinsten Elements aus dem unsortierten Rest. Welche Aussage über dieses Verfahren ist zutreffend?
- Es ist stabil und benötigt O(n·log n) Vergleiche
- Es setzt eine sortierte Eingabe voraus
- Es benötigt im Worst Case O(n²) Vergleiche und ist nicht stabil Correct answer.
- Es benötigt nur O(n) Vergleiche bei zufälliger Eingabe
Explanation
Die Auswahl des Minimums durchsucht den unsortierten Rest vollständig, was zu etwa n·(n−1)/2 Vergleichen führt und damit quadratisch wächst. Durch das Tauschen entfernter Elemente kann die relative Reihenfolge gleicher Werte verloren gehen, das Verfahren ist also nicht stabil.
Question 49Software development and programming (Modellierung, Algorithmen, Implementierung)
Ein Programm soll eine große Anzahl von Datensätzen anhand eines Schlüssels schnell durchsuchen, wobei die Datensätze nicht sortiert vorliegen. Welche Struktur bietet im Durchschnitt konstante Suchzeit?
- Eine einfach verkettete Liste
- Ein Stack
- Eine Hash-Tabelle mit guter Streuung Correct answer.
- Ein sortiertes Feld mit binärer Suche
Explanation
Eine Hash-Tabelle berechnet aus dem Schlüssel direkt den Speicherplatz und erreicht bei guter Streuung im Durchschnitt konstante Suchzeit O(1). Sie benötigt dabei keine Sortierung der Datensätze.
Question 50Software development and programming (Modellierung, Algorithmen, Implementierung)
Eine rekursive Methode durchläuft einen binären Suchbaum zur Ausgabe aller Werte in aufsteigender Reihenfolge. Welche Traversierungsart liefert dieses Ergebnis?
- Preorder (Wurzel, links, rechts)
- Inorder (links, Wurzel, rechts) Correct answer.
- Postorder (links, rechts, Wurzel)
- Levelorder (ebenenweise von oben)
Explanation
Beim Inorder-Durchlauf wird zuerst der linke Teilbaum, dann die Wurzel und schließlich der rechte Teilbaum besucht. Da im binären Suchbaum alle linken Werte kleiner und alle rechten größer sind, ergibt sich eine aufsteigend sortierte Ausgabe.