Verständnisfragen 19.September2013

Aus ProgrammingWiki

Inhaltsverzeichnis

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.