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.