n KTH CSC inda09, Uppgift 10
bild
Skolan för
elektroteknik
och datavetenskap

Uppgift 10

Lappskrivning

Den här gången är det bara två punkter på programmet. Ni ska lämna in slutuppgiften i början av lektionen och sedan blir det en 45-minuters lappskrivning med tio flervalsfrågor. Uppgifterna kommer att handla om de delar av Java som behandlas i kapitel 1-7 i läroboken. Inga hjälpmedel är tillåtna. För godkänt på uppgiften krävs rätt svar på minst hälften av frågorna. Förbered dig genom att göra provet nedan.

INDA - exempelskrivning

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 exekvera följande metod?

public void mystery() {
    int n = 5;
    double x = 2;

    System.out.println(3*n/x);
}
  • a) Det blir ett kompileringsfel.
  • b) Programmet skriver ut talet 7.
  • c) Programmet skriver ut talet 7.5.
  • d) Programmet skriver ut talet 8.
  • e) Inget av ovanstående alternativ.

2. Vad händer om man exekverar följande metod?

public void mystery() {
    int res = 1;
    int n = 4;
    while (n*res > 0) {
        res *= n;
        n /= 2;
    }

    System.out.println(res);
}
  • a) Programmet skriver ut "0".
  • b) Programmet skriver ut "2".
  • c) Programmet skriver ut "4".
  • d) Programmet skriver ut "8".
  • e) Inget av ovanstående alternativ.

3. Vad händer om man försöker kompilera och köra följande metod?

public void mystery() {
    String s = null;
    String t = "";

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

4. Vad blir resultatet av metodanropet mystery(0,2)?

public int mystery(int i, int j) {
    if (i == j)
        return j;
    else
        return i + mystery(i + 1, j);
}
  • a) Metoden returnerar 0.
  • b) Metoden returnerar 1.
  • c) Metoden returnerar 2.
  • d) Metoden returnerar 3.
  • e) Metoden returnerar 4.

5. Vad händer om man försöker kompilera klassen Mystery och sedan försöker skapa ett Mystery-objekt?

import java.util.HashMap;

public class Mystery {
    private HashMap<String, String> secrets;

    public Mystery() {
        secrets = new HashMap<String, String>();
    }

    public void addSecret(String codeName, String realName) {
        secrets.put(codeName, realName);
    }

    public String getRealName(String codeName) {
         return secrets.get(codeName);
    }
}
  • a) Det blir ett kompileringsfel i konstruktorn.
  • b) Det blir ett kompileringsfel i metoden addSecret.
  • c) Det blir ett kompileringsfel i metoden getRealname.
  • d) Det blir ett exekveringsfel.
  • e) Inget av ovanstående.

6. Vad blir utskriften när man exekverar metoden mystery? (Du kan anta att båda metoderna ligger i samma klass.)

public void mystery() {
    int n = 0;
    int[] v = new int[2];

    secret(n, v);
    System.out.println(n +"," + v[1]);
}

public void secret(int n, int[] v) {
    n = n + 1;
    v[1] = v[0] + 1;
}
  • a) "0,0".
  • b) "1,0".
  • c) "0,1".
  • d) "1,1".
  • e) Inget av ovanstående.

7. Vad händer om man försöker kompilera och exekvera följande metod?

public void mystery() {
    int[] v = new int[2];
    int res = 0;

    for (int i : v) {
        v[i]++;
        res += v[i];
    }
    System.out.println(res);
}
  • a) Programmet skriver ut "0".
  • b) Programmet skriver ut "1".
  • c) Programmet skriver ut "2".
  • d) Programmet skriver ut "3".
  • e) Inget av ovanstående alternativ.

8. Vad händer om man försöker exekvera följande metod?

public void mystery() {
    String s = "Svar: ";
    int n;

    System.out.println(s + 1 + 1 + n);
}
  • a) Metoden skriver ut "Svar: ".
  • b) Metoden skriver ut "Svar: 2".
  • c) Metoden skriver ut "Svar: 11".
  • d) Metoden skriver ut "Svar: 110".
  • e) Inget av ovanstående alternativ.

9. Mystery är en av flera klasser i ett större program. Hur många objekt av klassen Mystery kan skapas när man exekverar programmet?

public class Mystery {
    private static Mystery thisObject;

    private Mystery() {
    }

    public static Mystery createMystery() {
        if (thisObject == null)
	    thisObject = new Mystery();
        return thisObject;
    }
}
  • a) Inga.
  • b) Högst ett.
  • c) Högst två.
  • d) Så många som ryms i minnet.
  • e) Så många som skräpsamlaren tillåter.

10. Vad blir resultatet av metodanropet mystery(v, 0, v.length - 1)?

public int mystery(int[] v, int a, int b) {
    if (a > b)
	return 0;
    if (a == b)
        return v[a];
    return mystery(v, a, (a + b)/2) +
           mystery(v, (a + b)/2 + 1, b);
}
  • a) Antalet element i v.
  • b) Det mittersta elementet i v.
  • c) Medianen av elementen i v.
  • d) Summan av elementen i v.
  • e) Inget av ovanstående alternativ.
Copyright © Sidansvarig: Stefan Nilsson <snilsson@nada.kth.se>
Uppdaterad 2009-10-23