Extenta DD1332

Inga hjälpmedel är tillåtna. Kryssa för ett alternativ per uppgift. För godkänt på uppgiften krävs rätt svar på minst hälften av frågorna.

1. Vad händer om man försöker kompilera och köra följande metod? (Du kan anta att metoden finns i en korrekt utformad klass.)
public void mystery() {
    double x = 2;
    System.out.println(7/x);
}
  • a) Det blir ett exekveringsfel.
  • b) Programmet skriver ut talet 3.
  • c) Programmet skriver ut talet 3.5.
  • d) Programmet skriver ut talet 4.
  • e) Inget av ovanstående alternativ.

2. Vad händer om man exekverar följande metod?
public void mystery() {
    int i;
    for (i = 3; i > 2; i--) {
        System.out.print(i + " ");
    }
    System.out.println(i);
}
  • a) Programmet skriver ut raden "3 2 1".
  • b) Programmet skriver ut raden "3 2 2".
  • c) Programmet skriver ut raden "3 2".
  • d) Programmet skriver ut raden "3 3".
  • e) Inget av ovanstående alternativ.

3. Vad händer om man försöker exekvera följande metod?
public void mystery() {
    String s = "t";
    String t = s;

    if (s.equals(t)) {
        System.out.print("A");
    }
    if (s == t) {
        System.out.print("B");
    }
    if (s.length() == t.length()) {
        System.out.print("C");
    }
    System.out.println();
}
  • a) Det blir ett exekveringsfel.
  • b) Programmet skriver ut raden raden "A".
  • c) Programmet skriver ut raden raden "AB".
  • d) Programmet skriver ut raden raden "BC".
  • e) Programmet skriver ut raden raden "ABC".

4. Vad blir resultatet av metodanropet mystery(4)?
public int mystery(int n) {
    if (n <= 2) {
        return n;
    } else {
        return mystery(n - 2) + mystery(n - 1);
    }
}
  • a) Metoden returnerar 1.
  • b) Metoden returnerar 2.
  • c) Metoden returnerar 3.
  • d) Metoden returnerar 4.
  • e) Metoden returnerar 5.

5. Vad händer om man försöker kompilera klassen U5 och sedan försöker skapa ett U5-objekt och anropa metoden serve() på detta objekt?
public class U5 {
    private String sentence;

    public U5() {
        this.sentence = "10 years in prison";
    }

    public String serve() {
        return this.sentence;
    }
}
  • a) Det blir ett kompileringsfel.
  • b) Det blir ett exekveringsfel.
  • c) Metoden returnerar null.
  • d) Metoden returnerar strängen "10 years in prison".
  • e) Inget av ovanstående.

6. Vad blir utskriften när man exekverar metoden mystery(1)? (Du kan anta att båda metoderna ligger i samma klass.)
public void mystery(int i) {
    int j = 2*i;
    int k = secret(i, j);
    System.out.println(i + " " + j + " " + k);
}

public int secret(int i, int j) {
    i++;
    j--;
    if (i < j) {
        return i;
    } else if (i > j) {
        return j;
    } else {
        return i + j;
    }
}
  • a) "1 2 1".
  • b) "1 2 2".
  • c) "2 1 1".
  • d) "2 1 2".
  • e) "2 1 3".

7. Vad händer om man exekverar följande metod?
public void mystery() {
    String[] v = {"A", "B", "C"};
    for (int i = 0; i < v.length; i++) {
        v[0] += v[i];
    }
    System.out.println(v[0]);
}
  • a) Programmet skriver ut raden "A".
  • b) Programmet skriver ut raden "ABC".
  • c) Programmet skriver ut raden "AABC".
  • d) Programmet skriver ut raden "AABBCC".
  • e) Det blir ett exekveringsfel.

8. Betrakta följande två klasser.
public class Chapter {
    private int value;

    public Chapter(int value) {
        this.value = value;
    }

    public int value() {
        return value;
    }
}

 - - -
 
import java.util.ArrayList;

public class Book {
    private ArrayList<Chapter> chapters;

    public Book(Chapter[] ch) {
        chapters = new ArrayList<Chapter>();
        for (int i = 0; i < ch.length; i++) {
            chapters.add(ch[i]);
        }
    }

    public int mystery() {
        int sum = 0;
        for (Chapter ch : chapters) {
            sum  += ch.value();
        }
        return sum;
    }
}

 - - -
Vad händer om vi skapar ett objekt på följande sätt
new Book(new Chapter[]{new Chapter(1), new Chapter(2)})
och därefter anropar metoden mystery() på detta objekt?
  • a) Metoden returnerar 0.
  • b) Metoden returnerar 3.
  • c) Metoden returnerar heltalsvektorn {1, 2}.
  • d) Metoden returnerar en Chapter-vektor med två element.
  • e) Inget av ovanstående alternativ.

9. Vilken utskrift får man när man exekverar följande metod?
public void mystery() {
    boolean hasStarted = true;
    boolean hasFinished = false;

    System.out.print("I'm");
    if (hasStarted && !hasFinished) {
        System.out.print(" busy and");
    }
    if (hasFinished == !true) {
        System.out.print(" " + !hasFinished + "ly");
    }
    System.out.println(" overworked.");
}
  • a) "I'm busy and overworked."
  • b) "I'm overworked."
  • c) "I'm busy and truely overworked."
  • d) "I'm falsely overworked."
  • e) Inget av ovanstående alternativ.

10. Vad händer om man försöker kompilera och sedan anropa metoden mystery()?
public int mystery() {
    int[] v = new int[3];
    int sum = 0;
    for (int i : v)  {
        sum += i;
    }
    return sum;
}    
  • a) Det blir ett kompileringsfel.
  • b) Det blir ett exekveringsfel.
  • c) Metoden returnerar 0.
  • d) Metoden returnerar 3.
  • e) Inget av ovanstående alternativ.



Stefan Nilsson
2016-02-29