Verständnisfragen 19.September2013
Frage 1
Welchen Wertebereich hat der Datentyp byte in Java ?
a. -128 bis 127
b. 0 bis 255
c. -32767 bis 32768
d. 0 bis 65535
Frage 2
In welche anderen Datentypen kann man einen Wert vom Typ boolean umwandeln ?
a. In alle primitiven Typen.
b. Nur in ganzzahlige Typen.
c. Nur in den Typ int.
d. In keinen anderen Typ.
Frage 3
Mit welcher der genannten Anweisungen kann einer Variablen a vom Typ int der (umgewandelte) Wert einer Variablen b vom Typ double zugewiesen werden ?
a. a = (int)b;
b. (double)a = b;
c. a = b.int;
d. a = (double)b;
e. Mit keiner der genannten.
Frage 4
Welche Datentypen können mit dem Operator '<' verglichen werden ?
a. Nur primitive Datentypen.
b. Nur Referenztypen.
c. Primitive Datentypen und Referenztypen.
d. Weder primitive Datentypen noch Referenztypen.
Frage 5
Wie lang ist der Datentyp double in Java ?
a. 16 Bit (2 Byte)
b. 32 Bit (4 Byte)
c. 64 Bit (8 Byte)
d. 128 Bit (16 Byte)
Frage 6
Welche Aussagen treffen auf folgende Klassendefinition zu ?
1. public class Test
2. {
3. public static void main(String[] args)
4. {
5. short s = 10;
6. char c = s;
7. s = c;
8. }
9. }a. Fehler in Zeile 5
b. Fehler in Zeile 6
c. Fehler in Zeile 7
d. Die Klasse lässt sich ohne Fehler übersetzen.
Frage 7
Welche der genannten Initialisierungen sind korrekt ?
a. byte b = 320;
b. short s = 360;
c. float f = 360;
d. float f = 360.0;
e. double d = 360.0;
Frage 8
Welche Aussagen zu Typumwandlungen in Java sind wahr ?
a. Eine explizite Typumwandlung von char auf long ist überflüssig.
b. Eine explizite Typumwandlung von byte auf short ist überflüssig.
c. Eine explizite Typumwandlung von long auf float ist notwendig.
d. Eine explizite Typumwandlung von byte, char oder short auf int, long oder float ist überflüssig.
Frage 9
Welche der genannten Symbole sind Operatoren in Java ?
a. sizeof
b. instanceof
c. +++
d. exp
e. %
Frage 10
Welcher der angegebenen Werte sind von primitiven Typen ?
a. "x"
b. 'x'
c. 7.89
d. false
Frage 11
Welche der genannten Bezeichner sind in Java Schlüsselwörter ?
a. default
b. throws
c. String
d. const
Frage 12
Was passiert, wenn folgende Klasse übersetzt und gestartet wird ?
public class TestClass {
public static void main(String[] args) {
unsigned byte b = 0;
b--;
System.out.println(b);
}
}
a. Fehler schon beim Übersetzen.
b. Ausgabe: 0
c. Ausgabe: -1
d. Ausgabe: -128
e.Ausgabe: 255
Frage 13
Welcher ganzzahlige Datentyp hat einen Wertebereich von –231 bis 231 –1 ?
a. byte
b. short
c. int
d. long
Frage 14
Welches sind gültige Escape-Sequenzen in Java ?
a. Sequenz \b
b. Sequenz \t
c. Sequenz \x
d. Sequenz \n
e. Sequenz \f
Frage 15
Welche Ausgaben werden jeweils durch folgende Anweisungen produziert ?
System.out.println("" +5 + 6);
System.out.println(5 + "" +6);
System.out.println(5 + 6 +"");
System.out.println(5 + 6);a. Ausgabe: 56, 56, 56, 56
b. Ausgabe: 56, 56, 56, 11
c. Ausgabe: 56, 56, 11, 11
d. Ausgabe: 56, 11, 11, 11
e.Ausgabe: 11, 11, 11, 11
Frage 16
Welche Datentypen repräsentieren genau 2 hoch 16 verschiedene Werte ?
a. Datentyp char
b. Datentyp short
c. Datentyp int
d. Datentyp long
Frage 17
Welche Aussagen bzgl. der folgenden Programmzeilen sind wahr ?
int a, b; b = 5;
a. Variable a ist nicht deklariert.
b. Variable b ist nicht deklariert.
c. Variable a ist deklariert, aber nicht initialisiert.
d. Variable b ist deklariert, aber nicht initialisiert.
e. Variable b ist initialisiert, aber nicht deklariert.
Frage 18
Was passiert, wenn folgende Klasse übersetzt und ausgeführt wird ?
class Test {
public static void main(String args[]) {
System.out.println(0x10 + 10 + 010);
}
}
a. Fehler schon beim Übersetzen
b. Ausgabe: 30
c. Ausgabe: 34
d. Ausgabe: 36
Frage 19
Der numerische Wert des Buchstaben a ist 97. Welche der folgenden Anweisungen deklariert und initialisiert eine Variable vom Typ char erfolgreich mit diesem Wert ?
a. char c = 'a';
b. char c = '\97';
c. char c = '\u0097';
d. char c = 0x97;
Frage 20
Für welche Datentypen von resultat lässt sich folgende Sequenz übersetzen ?
byte b = 5; short s = 3; resultat = s * b;
a. byte
b. short
c. int
d. long
e. double
Frage 21
Was passiert, wenn folgende Klasse übersetzt und ausgeführt wird ?
class Test {
public static void main(String args[]) {
byte b1 = 5;
byte b2 = 3;
b1 = b1 % b2;
System.out.println("b1 = " + b1);
}
}
a. Fehler schon beim Übersetzen
b. Ausgabe: b1 = 0
c. Ausgabe: b1 = 1
d. Ausgabe: b1 = 2
e. Ausgabe: b1 = 3
Frage 22
Welche der folgenden Zeilen verursacht einen Fehler beim Übersetzen des (hier nicht weiter ausgeführten) Programms ?
1. byte b = 5; 2. char c = 'c'; 3. short s = 55; 4. int i = 555; 5. float f = 555.5F; 6. b = s; 7. i = c; 8. f = i;
a. Zeile 5
b. Zeile 6
c. Zeile 7
d. Zeile 8
e. Es gibt keinen Fehler beim Übersetzen.
Frage 23
Welche Ausgabe ergibt sich durch folgende Anweisungen ?
int x = 3; int y = 10; System.out.println(y % x);
a. Ausgabe: 0
b. Ausgabe: 1
c. Ausgabe: 2
d. Ausgabe: 3
Frage 24
Welche Werte besitzen die Variablen x, a und b nach Ausführung folgender Anweisungen ?
int x, a = 6, b = 7; x = a++ + b++ ;
a. x = 15, a = 7, b = 8
b. x = 15, a = 6, b = 7
c. x = 13, a = 7, b = 8
d. x = 13, a = 6, b = 7
Frage 25
Welches sind gültige Bezeichner in Java ?
a. newint
b. bytes
c. $1
d. _new
e. 2byte
Frage 26
Für welche der angegebenen Datentypen ist der positive Zahlenbereich genauso groß wie der negative ?
a. byte
b. short
c. int
d. long
e. Für keinen der genannten Datentypen
Frage 27
Welche Aussagen über switch-Konstrukte sind richtig ?
a. Ein switch-Konstrukt muss immer ein default-Label haben.
b. Der default-Zweig eines switch-Konstrukts wird in jedem Fall ausgeführt, egal, ob eines der case-Labels gegriffen hat oder nicht.
c. Ein switch-Konstrukt darf beliebig viele case-Labels haben.
d. Das default-Label in einem switch-Konstrukt ist optional.
Frage 28
Welche Typen darf die Testvariable in einem switch-Konstrukt haben ?
a. byte
b. short
c. int
d. char
e. String
f. float
g. double
Frage 29
Was gibt das folgende Programmfragment aus ?
int i;
int j;
for (i = 0, j = 0; j < i; ++j, i++) {
System.out.println(i + " " + j);
}
System.out.println(i + " " + j);
a. Zweimal „0 0“.
b. Einmal „0 0“.
c. Das Fragment gibt in einer Endlosschleife immer wieder „0 0“ aus.
d. Erst „0 0“ und dann „1 1“.
e. Erst „0 0“ und dann „0 1“.
Frage 30
Was gibt die folgende Methode aus ?
public static void schleifen() {
int i;
int j;
for (i = 0, j = 0 ; j < 1 ; ++j , i++) {
System.out.println(i + " " + j);
}
System.out.println(i + " " + j);
}
a. Zweimal „0 0“
b. Einmal „1 1“
c. Erst „0 1“ und dann „1 2“
d. Erst „0 0“ und dann „1 1“
e. Erst „0 0“ und dann „0 1“
Frage 31
Welchen Wert gibt die folgende Methode aus, wenn sie mit dem Argument 4 aufgerufen wird ?
public static void
switchTest(int k) {
int j = 1;
switch(k) {
case 1:
j++;
case 2:
j++;
case 3:
j++;
case 4:
j++;
case 5:
j++;
default :
j++;
}
System.out.println(j + k);
}
a. 8
b. 7
c. 6
d. 5
e. 9
f. 10
g. 11
Frage 32
Was ist das Ergebnis des Versuchs, das folgende Programm zu kompilieren und zu starten ?
class SwitchTest {
public static void main(String args[]) {
for (int i = 0; i < 3; i++) {
boolean flag = false;
switch (i) {
flag = true;
}
if (flag)
System.out.println(i);
}
}
}
a. Das Programm gibt 0, 1 und 2 aus.
b. Das Programm gibt nichts aus.
c. Das Programm lässt sich wegen eines Fehlers nicht kompilieren.
d. Das Programm bricht wegen eines Laufzeitfehlers ab.
Frage 33
Welche Aussage über ein Programm mit der folgenden Methode trifft zu ?
public static void test() {
int x = 0;
labelA: for (int i = 10; i < 0; i--) {
int j = 0;
labelB: while (j < 10) {
if (j > i)
break labelB;
if (i == j) {
x++;
continue labelA;
}
j++;
}
x--;
}
System.out.println(x);
}
a. Das Programm lässt sich wegen eines Fehlers in dieser Methode nicht kompilieren.
b. Beim Aufruf dieser Funktion bleibt das Programm in einer Endlosschleife hängen.
c. Wenn diese Methode aufgerufen wird gibt sie 10 aus.
d. Wenn diese Methode aufgerufen wird gibt sie 0 aus.
Frage 34
Welche der folgenden Aussagen sind wahr ?
a. Wenn die Variablen a und b beide vom Datentyp boolean sind, so kann (a==b) als Bedingung in einem if-Konstrukt stehen.
b. Ein if-Konstrukt kann nur entweder eine if-Klausel oder eine else-Klausel enthalten.
c. Der Ausdruck in Klammern hinter dem Schlüsselwort if muss einen Wert vom Typ boolean haben.
Frage 35
Welche Programmfragmente führen zu einem Fehler beim Kompilieren ?
a. for (int i = 5; i = 0; i--) { }
b. int i, j; for (j = 10; i < j; j--) { i += 2; }
c. int i = 10; for ( ; i > 0; i--) { }
d. for (int i = 0, j = 10; i < j; i++, --j) { }
Frage 36
Betrachten Sie das folgende Programmfragment. Welche der als Antwortmöglichkeiten vorgegebenen Zeilen kommen in der Ausgabe dieses Fragments vor ?
outer:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 2; j++) {
if (i == j) {
continue outer;
}
System.out.println( "i=" + i + " , j=" + j );
}
}
a. i = 1, j = 0
b. i = 0, j = 1
c. i = 1, j = 2
d. i = 2, j = 1
e. i = 2, j = 2
Frage 37
Welche Aussage über die folgende Methode ist richtig ?
public static void zaehlen() {
int sum = 0;
int i, j;
for (i = 0, j = 10; sum > 20; ++i, --j) {
sum = sum + i + j;
}
System.out.println("Sum = " + sum);
}
a. Die Methode lässt sich nicht übersetzen, da die Zeile mit der for-Anweisung einen Fehler enthält.
b. Bei einem Aufruf der Methode wird der Text „Sum = 0" ausgegeben.
c. Bei einem Aufruf der Methode wird der Text „Sum = 20" ausgegeben.
d. Bei einem Aufruf der Methode bricht das Programm mit einem Laufzeitfehler ab.
Frage 38
Welche Ziffernfolge gibt der folgende Programmabschnitt aus, wenn i den Wert 0 hat ?
switch (i) {
case 1:
System.out.println(1);
case 0:
System.out.println(0);
case 2:
System.out.println(2);
break;
case 3:
System.out.println(3);
default:
System.out.println(4);
}
a. 1 0 2
b. 0 2
c. 0 1 2
d. 0 1 2 3 4
e. 1 0
f. 1
g. 0
Frage 39
Ist der folgende Programmausschnitt syntaktisch korrekt ? Welche der Aussagen ist wahr ?
void test(int x) {
switch(x) {
case 1:
case 2:
case 0:
default:
}
}
a. Nein, der Datentyp der Variable x ist für die Testvariable in einem switch-Konstrukt nicht zulässig.
b. Nein, das case-Label mit der Konstanten 0 muss vor dem Label mit der Konstanten 1 stehen.
c. Nein, jedem case-Label muss eine break-Anweisung folgen.
d. Ja, der Programmausschnitt ist syntaktisch korrekt.
Frage 40
Was geschieht, wenn Sie das folgende Programm kompilieren und starten ?
class TestClass {
public static void main(String args[]) {
int i = 0;
for (i = 1; i < 5 ; i++) continue;
for (i = 0; ; i++) break;
for ( ; true ; );
}
}
a. Das Programm lässt sich kompilieren und läuft bis zum Ende ohne Fehler.
b. Das Kompilieren schlägt fehl, die Zeile mit der continue-Anweisung ist fehlerhaft.
c. Das Kompilieren schlägt fehl, die Zeile mit der break-Anweisung ist fehlerhaft.
d. Das Kompilieren schlägt fehl, die zweite for-Schleife ist fehlerhaft.
e. Das Kompilieren schlägt fehl, die Zeile mit der dritten for-Schleife ist fehlerhaft.
f. Das Programm lässt sich kompilieren und läuft ohne Fehler in einer Endlosschleife.
Frage 41
Betrachten Sie die folgende Java-Klasse:
class Test {
public static void main(String[] args) {
if (args[0].equals("Peter")) {
if (args[1].equals("jemand")) {
System.out.println("Hallo");
} else {
System.out.println("Hau ab "+ args[1]);
}
}
}
}
Was geschieht, wenn dieses Programm (nach dem Übersetzen) mit dem Aufruf java Test Paul gestartet wird ?
a. Es tritt eine ArrayIndexOutOfBoundsException auf.
b. Das Programm beendet sich ohne etwas auszugeben.
c. Das Programm gibt den Text „Hau ab Paul" aus.
d. Das Programm gibt den Text „Hau ab Paul" aus und dann tritt eine ArrayIndexOutOfBoundsException auf.
e. Keine der genannten Aussagen ist korrekt.
Frage 42
Betrachten Sie den folgenden Programmausschnitt. Welche Zahlenfolge würde das Programm ausgeben, wenn die Methode loopTest mit dem Argument 0 (Null) aufgerufen wird ?
public void loopTest(int x) {
loop: for (int i = 1; i < 5; i++) {
for (int j = 1; j < 5; j++) {
System.out.println(i);
if (x == 0) {
continue loop;
}
System.out.println(j);
}
}
}
a. Keine, denn das Programm lässt sich durch einen Fehler in dieser Methode nicht übersetzen.
b. 1 2 3 4
c. 1 1 2 3 4
d. 1 1 2 2 3 3 4 4
e. Mit dem Argument 0 gibt die Funktion nichts aus.
Frage 43
Was geschieht beim Übersetzen und Ausführen des folgenden Programms ?
public class TestClass {
public static void main(String[] args) {
int x = 1;
int y = 0;
if (x / y) {
System.out.println("Gut");
} else {
System.out.println("Schlecht");
}
}
} a. Der Text „Gut“ wird ausgegeben.
b. Der Text „Schlecht“ wird ausgegeben.
c. Es tritt ein Fehler zur Laufzeit (Division durch 0) auf.
d. Das Übersetzen schlägt bereits fehl.
e. Keine der genannten Möglichkeiten.