LFK Lösungen – prozeduralen Programmierung SS 2013

Die Lösung für die Lernfortschrittskontrolle prozeduralen Programmierung SS 2013 reicht für 90% 🙂

Frage 1 von 40: In vielen prozeduralen Programmiersprachen können Datenfelder im
Sinne aggregierter Daten verwendet werden. Welche Aussagen sind in diesem Zusammenhang richtig?

– Auf die Elemente eines Datenfeldes kann sowohl systematisch iterierend wie auch wahlfrei zugegriffen werden.
– Alle Elemente eines Datenfeldes besitzen die gleiche Größe hinsichtlich des Speicherbedarfs.
– Für die Elemente eines Datenfeldes kann jeweils der Vorgänger beziehungsweise der Nachfolger bestimmt werden.

Frage 2 von 40: Da der Platz einer Speicherzelle begrenzt ist, sind die Wertebereiche von Datentypen in der Regel beschränkt. Es kann daher zu Bereichsüberschreitungen kommen. Welche Aussagen treffen zu?
– Das Resultat der Addition zweier positiver ganzzahliger Werte kann ohne Fehlermeldung negativ werden.
– Bereichsüberschreitungen wirken sich bei Fließpunktwerten in der Regel derart aus, dass sie symbolisch als „unendlich“ („inf“) gekennzeichnet werden.
– Erfolgt die Bereichsüberschreitung durch Nulldivision, dann kommt es in der Regel zu einem Laufzeitfehler.

Frage 3 von 40: In der prozeduralen Programmierung findet ein Teil der dynamischen Speicherverwaltung über den Stack statt. Welche Aussagen sind korrekt?
– Bei rekursiven Prozeduren erfolgt die Verwaltung von Zwischenwerten in der Regel auf dem Stack.
– Beim Aufruf von Unterprogrammen werden die Rücksprungadressen in der Regel auf dem Stack abgelegt.
– In der Regel werden Funktionsargumente auf dem Stack abgelegt.

Frage 4 von 40: Welche Arten von Operatoren treten in prozeduralen Programmiersprachen auf?
– logische,
– relationale,
– arithmetische,

Frage 5 von 40: In prozeduralen Programmen können unterschiedliche Fehler auftreten. Es bestehen unterschiedliche Möglichkeiten, diese Fehler aufzudecken. Welche Aussagen sind in diesem Zusammenhang richtig?
– Zum Verfolgen der korrekten Verarbeitung kann man das Laufzeitverhalten eines Programms mit einem Debugger untersuchen.
– Typische semantische Fehler kann man aufdecken, indem man die Programmquellen von Quelltextanalysatoren überprüfen lässt.
– Zur Überprüfung auf korrekte Verarbeitungsabläufe kann man Ausgabeanweisungen für Zwischenwerte einfügen, die zur Laufzeit zur Anzeige kommen.

Frage 6 von 40: Prozedurale Programmiersprachen bieten Funktionen und Operatoren an. Welche Gemeinsamkeiten besitzen sie?
– Funktionen und Operatoren können unter bestimmten Umständen ihre Argumente manipulieren.
– Funktionen und Operatoren liefern einen Wert.
– Funktionen und Operatoren können Seiteneffekte aufweisen.

Frage 7 von 40: Das Konzept der Identifizierer ist in den prozeduralen Programmiersprachen bedeutsam. Welche Aussagen sind in diesem Zusammenhang korrekt?
– Identifizierer werden verwendet um Variable zu bezeichnen.
– Funktionsnamen sind Identifizierer.

Frage 8 von 40: Welche Aufgaben hat ein Quelltextanalysator (z.B. Lint) bei der Anwendung auf prozedurale Programme?
– Auf Risiken wie Feldüberläufe hinweisen.
– Häufige Missverständnisse von Programmierern aufdecken.
– Syntaxprüfungen durchführen.

Frage 9 von 40: Welche Aufgaben hat ein Profiler?
– Laufzeitanteile einzelner Unterprogramme ermitteln.
– Häufigkeiten von Funktionsaufrufen zur Laufzeit bestimmen.

Frage 10 von 40: Welche Aufgaben hat ein Projektmanagementwerkzeug (z.B. Make)?
– Organisation von Compiler- und Linkerläufen automatisieren.
– Erzeugen des Softwareproduktes (z.B. Programm) aus seinen Quellen.

Frage 11 von 40: In der prozeduralen Programmierung kommt dem Konzept des Ausdrucks eine besondere Bedeutung zu. Welche Aussagen treffen zu?
– In vielen prozeduralen Programmiersprachen sind arithmetische und logische Ausdrücke verfügbar.
– Eine syntaktisch korrekte Formulation von Operatoren und Operanden ist ein Ausdruck.
– Ein Ausdruck repräsentiert einen Wert.

Frage 12 von 40: In prozeduralen Programmiersprachen werden Operatoren verwendet, die hinsichtlich ihrer Kardinalität klassifiziert werden können. Welche Aussagen sind zutreffend?
– Wird für eine unäre und eine binäre Operation dasselbe Symbol verwendet, dann ist die Assoziativität der unären Operation meist höher.
– Die Kardinalität des Additionsoperators ist mindestens zwei.
– Der Negationsoperator besitzt in der Regel unäre Kardinalität.

Frage 13 von 40: Was gilt bezüglich der Phonetik einer prozeduralen Programmiersprache?
– Eine Phonetik ist für keine prozedurale Sprache festgelegt.

Frage 14 von 40: Welche der folgenden Aussagen sind unter Bezug auf die Anzahl der Schleifendurchläufe in einem prozeduralen Programm zutreffend?
Lösung unbekannt

Frage 15 von 40: Die meisten prozeduralen Programmiersprachen bieten Felder (Arrays) an. Welche Aussagen sind in diesem Zusammenhang korrekt?
– Die Elemente eines Feldes sind vom gleichen Datentyp.
– Die Elemente eines Feldes liegen im Speicher angeordnet vor, so dass sie per Index der Reihenfolge nach verarbeitet werden können.

Frage 16 von 40: Zur Laufzeit stellt das Betriebssystem einem prozeduralen Programm einen Stack zur Verfügung. Welche Aussagen über seine Verwendung sind zutreffend?
Lösung unbekannt

Frage 17 von 40: Schleifen bieten in prozeduralen Programmen oft Optimierungspotentiale. Welche Aussagen treffen in diesem Zusammenhang zu?
– Schleifen mit identischer Steuerung können und sollten zusammengefasst werden.
– Schleifen können zur Steigerung der Verarbeitungsgeschwindigkeit ganz oder teilweise aufgelöst werden (Loop Unwinding). Ein trickreiches Beispiel in C ist „Duff’s Device“.
– Anweisungen, die von der Schleifensteuerung unabhängig sind, sollten aus der Schleife herausgezogen werden.

Frage 18 von 40: In der Regel können prozedurale Programme nicht unmittelbar auf die Ressourcen eines Rechners zugreifen, sondern müssen dafür Betriebssystemfunktionen in Anspruch nehmen. Welche Aussagen sind in diesem Zusammenhang richtig?
– Zugriff auf Peripheriekomponenten erfolgt in der Regel über Betriebssystemfunktionen.
– Elementare Funktionen der Ein- und Ausgabe sind in vielen Programmiersprachen standardisiert, so dass die Quelltexte betriebssystemübergreifend portabel sind.

Frage 19 von 40: Operatoren, die in prozeduralen Programmiersprachen verwendet werden, lassen sich nach unterschiedlichen Kriterien kategorisieren? Welche gehören dazu?
– Präzedenz.
– Assoziativität.
– Kardinalität.
– Existenz von Nebenwirkungen.

Frage 20 von 40: Viele prozedurale Programmiersprachen bieten die Verwendung fußgesteuerter Schleifen an. Welche Aussagen treffen zu?
– Der Schleifenkörper wird mindestens einmal durchlaufen.
– Bei fußgesteuerten Schleifen findet der Test nach der Bearbeitung des Schleifenkörpers statt.

Frage 21 von 40: Manche prozeduralen Programmiersprachen wie Modula-2 unterstützen das Konzept der Coroutinen. Welche Aussagen treffen zu?
– Die Coroutine stellt eine Verallgemeinerung der klassischen Subroutine dar.
– Coroutinen können mehrere verschiedene Ein- und Ausstiegspunkte besitzen.
– Coroutinen benötigen jeweils eine eigene Zustandsverwaltung. Deshalb sind sie in Sprachen, die nur einen zentralen Stack unterstützen, schwierig zu implementieren.
– Coroutinen sind geeignet, um kooperatives Multitasking zu implementieren.

Frage 22 von 40: Welche der folgenden Systeme können zur Erstellung von Quelltexten prozeduraler Programme verwendet werden?
– Eclipse.
– Notepad.
– Emacs.

Frage 23 von 40: Variable müssen in vielen prozeduralen Programmiersprachen zwar deklariert, nicht aber definiert werden. Welche Auswirkungen kann der Verzicht auf eine Variablendefinition haben?
– Wird der Variableninhalt ohne vorherige Definition verwendet, dann kann ihr Wert unbestimmt sein, was sich auf das Resultat der Verwendung auswirken kann.
– Der Verzicht auf Definition ist unproblematisch, wenn zur Laufzeit die erste Verwendung der Variablen in einer Zuweisung besteht.

Frage 24 von 40: Die Verwendung uninitialisierter Variabler kann zu Problemen führen. Welche gehören dazu?
Lösung unbekannt.

Frage 25 von 40: Welche Aussage über die Funktionen eines Compilers für prozedurale Programme sind zutreffend?
– Der Compiler führt eine syntaktische Analyse durch.
– Der Compiler führt eine lexikalische Analyse durch.
– Der Compiler übersetzt den Quelltext in maschinenlesbaren Code.

Frage 26 von 40: In welchen Situationen ist die Verwendung prozeduraler Programmierung vorteilhaft?
– Bei hardwarenahen Anwendungen.
– Bei geringen verfügbaren Ressourcen.
– Bei einfachen und kurzen Programmen.
– Bei hohen Anforderungen an Performanz.

Frage 27 von 40: In welcher Reihenfolge werden Programmierwerkzeuge genutzt?
– Editor, Compiler, Linker.

Frage 28 von 40: In der prozeduralen Programmierung unterscheidet man zwischen Deklaration und Definition. Welche Aussagen sind in diesem Zusammenhang richtig?
– Durch Deklaration werden Name und Typ festgelegt
– Durch Definition wird die Semantik einer Variablen oder einer Funktion festgelegt.
– Durch Deklaration wird der erforderliche Speicherplatz bestimmt.

Frage 29 von 40: In prozeduralen Programmiersprachen werden Operatoren verwendet, die nicht nur einen Wert repräsentieren, sondern auch (Neben-)Wirkungen, sogenannte Seiteneffekte aufweisen. Welche der folgenden Operatoren gehören für die Programmiersprachen, in denen diese Operatoren unterstützt werden, dazu?
– Dekrementoperator.
– Zuweisungsoperator.

Frage 30 von 40: Welche Bestandteile umfasst der Sprachumfang einer prozeduralen Programmiersprache im allgemeinen?
– Kontrollstrukturen.
– Ein- und Ausgabe.
– Operatoren.
– Variable.

Frage 31 von 40: Dynamische Variable – welche Eigenschaften haben sie?
– Dynamische und statische Variable verhalten sich unterschiedlich.
– Der von ihnen belegte Speicherplatz kann zwischen zwei Unterprogrammaufrufen anderweitig verwendet werden.
– Sie werden bei Unterprogrammaufrufen neu alloziert.

Frage 32 von 40: Welche Aussagen über die Auswertungsreihenfolge von Ausdrücken in prozeduralen Programmiersprachen treffen zu?
– Wenn in einer Programmiersprache die Punkt-vor-Strich-Regel gilt, ergibt sich dies aus der Präzedenz der arithmetischen Operatoren.
– Die Auswertungsreihenfolge hängt von Präzedenz und Assoziativität ab.
– Wenn in einer Programmiersprache die Punkt-vor-Strich-Regel gilt, dann ist für eine Summe von zwei Produkten die zeitliche Abfolge der Auswertung der Produkte in der Regel nicht vorhersagbar.

Frage 33 von 40: In vielen prozeduralen Programmiersprachen können globale Variable verwendet werden. Welche Aussagen treffen in diesem Zusammenhang zu?
– Globale Variable sind in allen Programmteilen sichtbar.
– Globale Variable können verwendet werden, um Daten schnell zwischen Unterprogrammen auszutauschen.

Frage 34 von 40: Welche Hardwarevoraussetzungen muss ein System erfüllen, für das prozedural programmiert werden soll?
– Das System benötigt RAM für Variable.
– Der Prozessor muss bedingte Sprünge ausführen können.
– Der Prozessor muss Tests ausführen können.
– Der Prozessor muss Datenoperationen ausführen können.

Frage 35 von 40: In den meisten prozeduralen Programmiersprachen werden unterschiedliche Arten von Schleifen unterstützt. Welche gehören dazu?
– Fußgesteuerte Schleifen.
– Kopfgesteuerte Schleifen.

Frage 36 von 40: Welche Aussagen treffen über Datentypen in prozeduralen Programmiersprachen zu?
– Welche Operatoren auf Werte angewendet werden können, hängt in der Regel vom Datentyp ab.

Frage 37 von 40: Welche der folgenden Sprachen gehören zu den prozeduralen Sprachen?
– C.
– Fortran.

Frage 38 von 40: In vielen prozeduralen Programmiersprachen können Felder (Arrays) gebildet werden, deren Komponenten über ganzzahlige Indizes angesprochen werden. Welche Aussagen dazu sind richtig?
Lösung unbekannt

Frage 39 von 40: Eine prozedurale Programmiersprache besitzt verschiedene Bestandteile. Welche gehören dazu?
– Operatoren.
– Ausführungssteuerung durch Fallunterscheidung und Schleife.
– Speicherung von Daten in Variablen.

Frage 40 von 40: Ein wichtiges Instrument bei der Qualitätssicherung prozeduraler Programme ist der Dubugger. Welche Aussagen über seine Funktionen sind zutreffend?
– Ein Debugger kann verwendet werden, um zur Laufzeit die Reihenfolge von Funktionsaufrufen zu ermitteln.
– Der Debugger kann zur Laufzeit die Verarbeitungsfolge aufzeigen.
– Mit einem Debugger können zur Laufzeit Variableninhalte verändert werden.
– Der Debugger kann zur Laufzeit an bestimmten Verarbeitungspunkten – sogenannten Breakpoints – die Ausführung stoppen, um beispielsweise Variableninhalte zu präsentieren.

3 Kommentare
  1. mf says:

    Ich kann zumindest noch so viel beitragen:
    Frage 16 von 40: Zur Laufzeit stellt das Betriebssystem einem prozeduralen Programm einen Stack zur Verfügung. Welche Aussagen über seine Verwendung sind zutreffend?
    -Der Stack wird verwendet, um in Unterprogrammen dynamische lokale Variable zu allozieren.
    -Der Stack wird beim Funktionsaufruf genutzt, um die Rücksprungadresse zu speichern.
    -Der Stack kann verwendet werden, um sie Argumente bei Unterprogrammaufrufen zu speichern und sie auf diese Weise zu übergeben.

    Antworten
  2. CH says:

    14:
    – Wenn die Anzahl der Schleifendurchläufe vor Schleifeneintritt bestimmt wird, ist eine Endlosschleife unmöglich.

    Antworten

Dein Kommentar

Want to join the discussion?
Feel free to contribute!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.