Probeklausur Sommersemester 2018, Fragen und Antworten PDF

Title Probeklausur Sommersemester 2018, Fragen und Antworten
Course Informationstechnik
Institution Hochschule Karlsruhe - Technik und Wirtschaft
Pages 6
File Size 99.6 KB
File Type PDF
Total Downloads 117
Total Views 145

Summary

summer...


Description

Hochschule Karlsruhe –Technik und Wirtschaft Sommersemester 2018 Fakultät: Fakultät für Informatik und Wirtschaftsinformatik Informatik 1: Programmieren Prüfungsfach: PROBEKLAUSUR 2 == BLATT12 Dozent: Prof. Dr. Bröckl Hilfsmittel: Keine, außer einem zweiseitigen, handgeschriebenen DIN-A4-Blatt Name:

Seite 1/6 Semester:

1

Prüfungsnr.:

111

Zeit: Matr. Nr.:

60 Min __ __ __ __ __

Hinweise: Tragen Sie unbedingt Ihren Namen und Ihre Matrikelnummer ein! Orientieren Sie sich beim Antworten an dem jeweils in der Aufgabe freigelassenen Weißraum. Falls Ihnen der Platz – wegen einer Streichung zum Beispiel – nicht ausreicht, verwenden Sie bitte die Rückseiten der Aufgabenblätter. Diese Probeklausur hat mehr als 60 Minuten, da als Übungsblatt gedacht.

1. Aufgabe

Grundbegriffe

(ca. 10 min)

Beantworten Sie die folgenden Fragen: 1.1 Wofür steht die Abkürzung IDE?

Integrated Development Environment

1 min

1.2 Nennen Sie bitte drei zweistellige Boolsche Operatoren von Java, mit kurzem Beispiel jeweils.

UND:

A & B

ODER:

A | B

3 min

X-ODER: A ^ B 1.3 Was bedeutet Boxing? Geben Sie bitte auch ein Beispiel an.

Ein einfacher Datentyp wird in entsprechende objektorientierte Variante überführt: byte b=127; Byte bW = new Byte(b);

3 min

1.4 Wofür steht das „L“ bei dem Begriff L-Value?

Left

1 min

1.5 Was kennzeichnet einen L-Value?

Ihm kann ein Wert zugewiesen werden

1 min

1.6 Geben Sie bitte ein Beispiel an für die implizite Konvertierung von einfachen Datentypen.

Byte b = 23; short s = b;

1 min

Sommersemester 2018

2. Aufgabe

Inf1Prg

Matrikelnummer: __ __ __ __ __

Operatoren

Seite 2/6

(ca. 13 min)

2.1 Geben Sie bitte ein Beispiel für einen einstelligen Operator:

!false; 2.2 Geben Sie bitte ein Beispiel für einen zweistelligen Operator:

a + b; 2.3 Geben Sie bitte ein Beispiel für einen dreistelligen Operator:

a % 2 == 0 ? „gerade“ : „ungerade“; 2.4 Nennen Sie bitte einen zweistelligen Operator für Zeichenketten (Strings).

String s = „Viel“ + „ Erfolg“; 2.5 Eine int-Variable a sei mit 1 initialisiert. Einige Fragen zu folgendem Ausdruck: a == (a % 2); •

Was ist der Rückgabewert dieses Ausdrucks?



Was ist der Rückgabetyp dieses Ausdrucks?

true

boolean •

Welche Namen hat der Operator % in diesem Ausdruck?

Modulo- oder Restwertoperator •

Wieso kann man die Klammern weglassen?

Der Vorrang des %-Operators ist höher als der Vorrang des Identitäts-Operators == •

Ist der Teilausdruck in den Klammern ein L-Wert? Bitte mit kurzer Begründung.

Nein, er ist ein R-Wert, man kann ihm keinen Wert zuweisen. 2.6 Überführen Sie bitte den Ausdruck a = a + 3; in einen äquivalenten Ausdruck mit Nebenwirkung.

a += 3; 2.7 Überführen sie bitte den Ausdruck a = a - 1; in einen äquivalenten Ausdruck mit Nebenwirkung.

a--;

Sommersemester 2018

3. Aufgabe

Inf1Prg

Matrikelnummer: __ __ __ __ __

Kontrollstrukturen

Seite 3/6

(ca. 12 min)

Hinweis: Bitte, wenn möglich, Inkrement- oder kombinierte Zuweisungsoperatoren einsetzen. 3.1 Überführen Sie bitte folgende Schleife in eine äquivalente for-Schleife: int a = 0; int b = 0; do { b = b + a; a = a + 1; } while (a < 10);

for(a = 0, b = 0; a < 10; /*leer*/) {b += a; a++;}

3 min

3.2 Überführen Sie bitte folgende Schleife in eine äquivalente for-Schleife: a = 0; b = 0; while (a < 4) { b = b + ( a = a + 1); }

for(a = 0, b = 0; a < 4; a++, b += a); 3 min 3.3 Überführen Sie bitte folgende Fallunterscheidung in eine äquivalente Fallunterscheidung mit einer switch-case-Anweisung: enum Farben { R, G, B }; // ... Farben zufall = Farben.values()[ (int)( Math.random() * Farben.values().length ) ]; //(1) if (zufall == Farben.R) {s = "Rot";} else if (zufall == Farben.G) {s = "Grün";} else {s = "Blau";}

switch (zufall) { case R : s = "Rot";

break;

case G : s = "Grün"; default : s = "Blau"; } // 4 min

break; break;

3.4 Wieso ist der cast-Operator bei Kommentar //(1) oben nötig?

Math.random() gibt double zurück, der []-Operator funktioniert aber nur mit int.

2 min

Sommersemester 2018

4. Aufgabe

Inf1Prg

Matrikelnummer: __ __ __ __ __

Blöcke, Methoden

Seite 4/6

(ca. 13 min)

Gegeben sei folgender Code: class SS18_P2_A4{ int a; static int b; void c() { System.out.println(b); int b = 17; System.out.println(b); //(1) } public static void main(String[] args) { SS18_P2_A4 d = new SS18_P2_A4(); /*(2)*/ d.c(); } } 4.1 Was gibt das Programm aus?

0 17

2 min

4.2 Hat die Klasse Instanzvariablen? Begründen Sie bitte Ihre Antwort.

Ja. Variable a ist eine Instanzvariable

2 min

4.3 Welche Variablen sind bei Kommentar (1) gültig?

Klassenvariable b, lokale Variable b, Instanzvariable a

2 min

4.4 Welche Variablen sind bei Kommentar (1) sichtbar?

Lokale Variable b, Instanzvariable a 2 min 4.5 Welche Variablen sind bei Kommentar (2) auf dem Stack? Welchen Wert haben diese?

Lokale Variable d zeigt auf Instanz im Heap, z.B. d == blattxx.SS18_P2_A4@1eb44e46

1 min

4.6 Welche Variablen sind bei Kommentar (2) in der Method-Area? Welchen Wert haben diese?

Klassenvariable b == 0

2 min

4.7 Welche Variablen sind bei Kommentar (2) im Heap? Welchen Wert haben diese?

Instanzvariable a == 0

2 min

Sommersemester 2018

5. Aufgabe

Inf1Prg

Matrikelnummer: __ __ __ __ __

Rekursion

Seite 5/6

(ca. 14 min)

Gegeben sei folgende rekursive Methode: int a(long z) { if(0L == z) { return 0; //(1) } else { return 1 + a(z / 2); } } 5.1 Markieren Sie bitte die Rekursionsbasis im obigen Code mit einem Kommentar.

If

1 min

5.2 Markieren Sie bitte die Rekursionsfortsetzung im obigen Code mit einem Kommentar.

Else

1 min

5.3 Was ist das Ergebnis, wenn die Methode a mit dem Wert 6 aufgerufen wird.

3

2 min

5.4 Zeichnen Sie bitte den relevanten Teil des Stacks, wenn die Methode a mit dem Wert 6 aufgerufen wird.

z: 6

↓ Wachstumsrichtung des Stacks

z: 3 z: 1 z: 0

4 min

5.5 Was berechnet diese Methode verbal ausgedrückt?

Anzahl der Binärziffern von z

2 min

Gegeben sei weiterhin folgende rekursive Methode: void b(int i) { if(i > 4) { System.out.println(i); b(i - 1); } else {} } 5.6 Schreiben Sie bitte eine äquivalente iterative Methode mit einer for-Schleife.

void b_iterativ(int i) { for(;i > 4; i--) { System.out.println(i); } }

4 min

Sommersemester 2018

6. Aufgabe

Inf1Prg

Matrikelnummer: __ __ __ __ __

Vererbung

Seite 6/6

(ca. 12 min)

6.1 Was ist der Unterschied zwischen Überschreiben und Überladen?

Überladen: Mehrere Methoden mit gleichem Namen aber verschiedenen Signaturen in der selben Klasse. Überschreiben: Methode mit gleicher Signatur einer Superklasse wird durch eine Subklasse überschrieben. 4 min 6.2 Was bedeutet Statische Bindung?

Für einen Methodenaufruf kann schon zur Compile-Zeit die passende Methode bestimmt werden.

2 min

6.3 Wie kann man beim Programmieren Statische Bindung erzwingen?

Methoden, die private, static oder final deklariert werden, werden statisch gebunden.

2 min

6.4 Wozu kann man das Schlüsselwort super einsetzen? Nennen Sie bitte zwei Beispiele.

Aufruf von Methoden und Konstruktoren der Superklasse 1 min 6.5 Gegeben seien folgende Klassen: class A {int a;} class B extends A {int b;} a. Programmieren Sie damit bitte ein Beispiel für einen Up-Cast:

A a = new B(); // Impliziter Upcast 1 min b. Programmieren Sie damit bitte ein Beispiel für einen Down-Cast:

B b = (B) a; // Expliziter Downcast 1 min c. Welche Klasse generalisiert hier welche Klasse?

A generalisiert B

1 min...


Similar Free PDFs