Verständnisfragen 20.September2013

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

== 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 42 ==
'''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.