Skriftlig tentamen för kursen DV017A. Inledande programmering i Java A

Relevanta dokument
Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

F4. programmeringsteknik och Matlab

Föreläsning 3-4 Innehåll

Klassdeklaration. Metoddeklaration. Parameteröverföring

TENTAMEN OOP

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

Föreläsning 3: Booleans, if, switch

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Programmeringsteknik och Matlab. Dagens program. Viktiga datum. Repetitionsexempel. Repetition av if/else, for, while och Scanner

TDIU01 - Programmering i C++, grundkurs

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

LÖSNINGSFÖRSLAG TENTAMEN

TENTAMEN OOP

DAT043 Objektorienterad Programmering

Objektorienterad programmering i Java

Tentamen , Introduktion till Java, dtaa98, dtea53

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

TENTAMEN OOP

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

OOP Objekt-orienterad programmering

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Tentamen Grundläggande programmering

SMD 134 Objektorienterad programmering

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

Tentamen ID1004 Objektorienterad programmering May 29, 2012

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Tentamen OOP

Programmering för språkteknologer II, HT2011. Rum

OOP Tenta

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering

Tentamen ID1004 Objektorienterad programmering October 29, 2013

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Objektorienterad Programmering (TDDC77)

Anteckningar 1: Grundläggande saker

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Skillnader mellan Python och Java

Objektorienterad Programmering (TDDC77)

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Grundläggande programmering med C# 7,5 högskolepoäng

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

[] Arrayer = Indexerad variabel

TDDC77 Objektorienterad Programmering

Typkonvertering. Java versus C

Programmering för språkteknologer I, VT2012. Rum

Föreläsning 6: Metoder och fält (arrays)

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Att skriva till och läsa från terminalfönstret

Tentamen ID1004 Objektorienterad programmering December 15, 2012

Föreläsning REPETITION & EXTENTA

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER

Föreläsning 2, vecka 8: Repetition

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

OOP Objekt-orienterad programmering

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

Del A (obligatorisk för alla)

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

Föreläsning 5-6 Innehåll

TDIU01 - Programmering i C++, grundkurs

2D1342 Programkonstruktion för F1, ht 2006

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

Java, klasser, objekt (Skansholm: Kapitel 2)

Objektorienterad Programmering (TDDC77)

Tentamen ID1004 Objektorienterad programmering April 7, 2015

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

Tentamen i Grundläggande programmering STS, åk 1 fredag

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

"if"-satsen. Inledande programmering med C# (1DV402)

2D1339 Programkonstruktion för F1, ht 2004

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011,

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.

public och private Obs: private inte skyddar mot access från andra objekt i samma klass.

Transkript:

Skriftlig tentamen för kursen DV017A Inledande programmering i Java A Skrivtid 4 timmar 09.00 13.00 Instruktioner Detta är en tentamen som består av fleralternativsfrågor. Här är några viktiga punkter: Riv försiktigt loss svarsprotokollet på sista sidan Läs igenom tentan och markera era svar i svarsprotokollet och givetvis även i kryssrutorna i tentan om ni vill komma ihåg hur ni har svarat. Fyll i med tydliga kryss! Antalet korrekta alternativ på en fråga kan variera (0 6 kryss). Alla frågor ger maximalt 2 poäng då svaret är helt korrekt. En poäng delas ut för ett svar med minst ett korrekt markerat alternativ och högst ett uteblivet eller felmarkerat alternativ. Inga minuspoäng delas ut. Om inga andra instruktioner ges i en fråga skall du markera de påståenden som du anser vara sanna. Kom ihåg att ange namn och personnummer på svarsprotokollet och kontrollera att ni har fört in era svar på rätt sätt. Det är det ifyllda svarsprotokollet som skall lämnas in! Själva tentan får ni gärna behålla. Ett facit publiceras snart efter tentan, vilket gör att ni själva kan beräkna era poäng. Inga hjälpmedel tillåtna LYCKA TILL! Jonas Boustedt Telefon: 070 6766998 Högskolan i Gävle Akademin för teknik och miljö 1

Fråga 1 Med en kommandotolk vill du arbeta med källkodsfilen Nerdo.java. Vad gäller? a. Du kan kompilera din kod med kommandot: javac nerdo b. Du kan kompilera din kod med kommandot: javac Nerdo.java c. Du kan kompilera din kod med kommandot: javac Nerdo.class d. Du kan köra din kod med kommandot: java Nerdo (men bara om Nerdo innehåller en main-metod) e. Du kan köra din kod med kommandot: java Nerdo.java f. Du kan köra din kod med kommandot: java Nerdo.class Fråga 2 Analysera koden och tänk dig att den körs. Markera sanna påståenden: int a = 1, b = 2; a = b; b = a; System.out.println( a = + a +, b = + b); a. Utskriften blir: a = 1, b = 2 b. Utskriften blir: a = 2, b = 1 c. Utskriften blir: a = 1, b = 1 d. Utskriften blir: a = 2, b = 2 e. Utskriften blir: a = a, b = b f. Utskriften blir: a = b, b = a Fråga 3 Analysera koden och tänk dig att den körs. Markera sanna påståenden: int a = 2, b = 2; a++; ++b; System.out.println( a = + a +, b = + b); a. Utskriften blir: a = 2, b = 3 b. Utskriften blir: a = 3, b = 3 c. Utskriften blir: a = 1, b = 1 d. Utskriften blir: a = 3, b = 2 e. Utskriften blir: a = a, b = b f. Utskriften blir: a = 21, b = 12 Fråga 4 Analysera koden och tänk dig att den körs. Markera sanna påståenden: int a = 1, b = 1; a = ++b + a; b = b + a++; System.out.println( a = + a +, b = + b); a. Utskriften blir: a = 3, b = 3 b. Utskriften blir: a = 3, b = 4 c. Utskriften blir: a = 4, b = 4 d. Utskriften blir: a = 2, b = 2 e. Utskriften blir: a = a, b = b f. Utskriften blir: a = 4, b = 5 Högskolan i Gävle Akademin för teknik och miljö 2

Fråga 5 Analysera koden och tänk dig att den körs. Markera sanna påståenden: int a = 1, b = 2, c = 3; a += 10; b *= 10; c = b % a; System.out.println( a = + a +, b = + b +, c = + c ); a. När variabeln a skrivs ut visas värdet 10 b. När variabeln a skrivs ut visas värdet 11 c. När variabeln b skrivs ut visas värdet 20 d. När variabeln b skrivs ut visas värdet 10 e. När variabeln c skrivs ut visas värdet 11 f. När variabeln c skrivs ut visas värdet 9 Fråga 6 Analysera koden och tänk dig att den körs. Markera sanna påståenden: double d = 2 + 3 * 2-5 / 2 + ( 5.0 / 2 ); a. Kompileringsfel: kompilatorn vet inte i vilken ordning beräkningarna ska göras. b. Variabeln d initieras till 5.0 c. Variabeln d initieras till 8.0 d. Variabeln d initieras till 8.5 e. De två divisionerna ger två skilda värden f. Det krävs fler parenteser för att undvika kompileringsfel Fråga 7 Vilka alternativ visar primitiva typer i Java a. java.lang.string b. byte, char c. java.util.scanner d. int, float, double e. java.lang.math f. boolean Fråga 8 Vilka påståenden är sanna för begreppet variabel? double 12tunnor; double tunnor12; double tunnor13 = 75.1; int tunnor12 = 5; a. Det är ok att en variabel heter 12tunnor b. Det är ok att en variabel heter tunnor12 c. Man kan välja om en variabel ska initieras eller inte när den deklareras d. I samma scope (kodblock) kan en variabel deklareras om från en typ till en annan (se tunnor12) e. Efter initiering kan en variabels värde ändras (med tilldelningar) när programmet exekveras f. Variabelns typ bestämmer vilken sorts värden som kan lagras i variabeln Högskolan i Gävle Akademin för teknik och miljö 3

Fråga 9 Titta på koden och markera sanna påståenden: class X private static int q = 4; public static void main(string [] args) q = sqr( q + 1); System.out.print( q + ); public static int sqr(int q) System.out.print( q + ); return q*q; a. En variabel som är deklarerad i en klass, utanför en metod, är åtkomlig för alla metoder i klassen b. En lokal variabel överskuggar en global varabel med samma namn c. Utskriften när programmet körs blir: 4 4 d. Utskriften när programmet körs blir: 25 5 e. Utskriften när programmet körs blir: 16 4 f. Utskriften när programmet körs blir: 5 25 Fråga 10 Antag att en variabel deklareras inuti en metod. Vilka påståenden är sanna i detta sammanhang? a. En annan metod kan komma åt exakt samma variabel om den deklareras med samma namn där b. En annan metod får deklarera en variabel med samma namn, men det är inte samma variabel c. Variabeln lever endast då metoden exekveras. Vid nästa metodanrop skapas variabeln på nytt d. Variabeln lever under hela programmets körtid och kommer ihåg sitt värde mellan metodanropen e. Om metoden redan har en parametervariabel med samma namn får man ett kompileringsfel f. Det är ok att ha parametervariabler och lokala variabler med samma namn Fråga 11 Markera korrekt deklarerade/implementerade metoder: a. public void foo( int a, b, c) System.out.println( a + b + c ); b. public void bar( int a, int b, int c) System.out.println( a + b + c ); return; c. public void zoo( int a, int b, int c) System.out.println( a + b + c ); d. public void boo( int a, int b, int c) return a + b + c; e. public int goo( int a, b, c) return a + b + c; f. public int goo( int a, int b, int c) return a + b + c; Fråga 12 Markera de kodrader som ger upphov till kompileringsfel a. int i = 1.9; b. double a = 1; c. double b = (int) 1.0; d. boolean c = 18; e. char ch = A ; f. float f = 1.0; Högskolan i Gävle Akademin för teknik och miljö 4

Fråga 13 Markera de påståenden som är korrekta för koden och sammanhanget nedan: System.out.print( Mata in första betyget (A-E): ); char b1 = (char)system.in.read(); System.out.print( Mata in andra betyget (A-E): ); char b2 = (char)system.in.read(); a. Variabeln b2 kommer inte att innehålla ett betygstecken ( A E ) efter att sista raden har körts b. System.in.read() kan inte ge upphov till några undantagsfall (exception). c. Det är onödigt att skriva (char) framför System.in.read() i detta fall. d. Användaren får skriva in ett betyg, men hinner sidan inte skriva in nästa betyg e. Ett tryck på tangenten <ENTER> genererar i sig minst ett tecken (beroende på operativsystem) f. System.in.read() är lämplig att använda även för att läsa in decimaltal, t.ex. 3.141592 Fråga 14 Markera det som är sant för klassen java.util.scanner i Java, samt det sammanhang som ges nedan: Scanner scan = new Scanner(System.in); String line = scan.nextline(); double d = scan.nextdouble(); // A user enters: Hejbaberiba 123.9 765.99 a. Variabeln line = Hejbaberiba, variabeln d = 123.9 b. Variabeln line = Hejbaberiba 123.9, variabeln d = 765.99 c. Man läser in data från standard input med koden i exemplet d. Man läser in data från filen System.in med koden i exemplet e. Ett objekt av typen Scanner kan läsa data från en sträng (String) om man vill f. Ett objekt av typen Scanner kan användas för att läsa data från en textfil om man vill Fråga 15 Markera korrekta sätt formulera uttryck som beräknar ett sanningsvärde för villkoren att värdet av alla variablerna a, b, c ska vara större än 0, dessutom att a är minst, b mittemellan och c störst. a. boolean svar = 0 < a < b < c; b. boolean svar = 0 > a > b > c; c. boolean svar = a > 0 && b > 0 && c > 0 && a < b && b < c; d. boolean svar = a > 0 && b > a && c > b; e. boolean svar = a > 0 b > a c > b; f. boolean svar =!( c <= b b <= a a <= 0); Fråga 16 Markera de påståenden som är sanna. a. En if-sats används för att upprepa en kodsekvens ända tills villkoret inte länge gäller b. En if-sats anger villkoret som måste vara uppfyllt för att ett stycke kod skall exekveras c. Med if-else-satsen väljs och körs antingen den ena eller den andra kodsekvensen, aldrig båda d. If-satsen kan endast styra en kodrad. Vill man styra flera krävs flera if-satser. e. En if-sats kan endast hantera heltalsvärden f. En if-sats kräver en villkorsuttryck, d.v.s., ett logiskt uttryck som är sant eller falskt Högskolan i Gävle Akademin för teknik och miljö 5

Fråga 17 Studera koden. Vad händer när programmet körs vad skrivs ut? double rand = Math.random() * 100; // mellan 0 och 100 (ej inklusive 100) if( rand > 50 ) System.out.println( Över 50! ); if( rand > 70) System.out.println( Över 70! ); System.out.println( Grattis! ); a. Om rand = 51 blir utskriften: Över 50! b. Om rand = 69 blir utskriften: Över 50! samt Grattis! c. Om rand = 75 blir utskriften: Över 50! samt Över 70! samt Grattis! d. Om rand = 11 blir det ingen utskrift alls e. Om rand = 80 blir utskriften: Över 70! samt Grattis! f. Om rand = 50 blir utskriften: Grattis! Fråga 18 Studera koden. Markera de påståenden som stämmer? if( a == b ) if(b == c) if(c == d) System.out.println( Lika! ); a. Om a=1 och b=1 och c=2 och d=2 blir utskriften: Lika! b. Koden kan skrivas om: if(a==b==c==d) System.out.println( Lika! ); c. Det blir kompieringsfel eftersom det saknas block ( måsvingar ) d. Koden kan skrivas om: if(a==b c==d) System.out.println( Lika! ); e. Koden kan skrivas om: if(a==b && b==c && c==d) System.out.println( Lika! ); f. Endast om variablerna a, b, c, d har samma värde blir utskriften: Lika! Fråga 19 Studera koden. Vad händer när programmet körs vad skrivs ut? double age = Math.random() * 100; // mellan 0 och 100 (ej inklusive 100) if( rand > 12.0 ) System.out.println( Tonåring! ); else if(age > 19.0) System.out.println( Ung vuxen! ); else if(age > 29.0) System.out.println( Mogen! ); else System.out.println( Barn! ); a. Om age = 30.0 blir utskriften: Mogen! b. Om age = 25.0 blir utskriften: Ung vuxen! c. Om age = 13.0 blir utskriften: Tonåring! d. Om age = 12.0 blir utskriften: Barn! e. Om age = 89.0 blir utskriften: Tonåring! f. Om age = 98.0 blir utskriften: Mogen! Högskolan i Gävle Akademin för teknik och miljö 6

Fråga 20 Antag att a, b, c är heltalsvariabler. Studera koden och markera de påståenden du tycker är korrekta. if( a < b ) c = a; else c = b; a. Koden räknar ut det största värdet i variablerna a och b och kopierar detta till variabeln c. b. Koden räknar ut det minsta värdet i variablerna a och b och kopierar detta till variabeln c. c. Koden kan skrivas enklare: c = if(a < b)? a : b; d. Koden kan skrivas enklare: c = (a < b)? a : b; e. Variabeln c kommer garanterat att tilldelas ett av värdena i a och b f. Endast om a är mindre än b kommer c att tilldelas det minsta värdet Fråga 21 Studera koden. Antag att de fem talen som slumpas är 1, 13, 20, 30, 5. Vad gäller? for(int i=0 ; i<5 ; i++) int age = 1 + (int)(0.5 + Math.random() * 100); // 1-100 switch(age) case 1: System.out.print( B ); case 13: System.out.print( T ); break; case 20: System.out.print( U ); case 30: System.out.print( M ); default: System.out.print(? ); break; a. Utskriften blir: BTTUM?M?? b. Utskriften blir: BTUMB c. Utskriften blir: BTUM? d. Satsen switch kan endast användas på värden av heltalstyp såsom int (och dit räknas även char) e. Satsen switch kan användas på alla primitiva typer f. Ett break innebär att programflödet hoppar ut switch-satsen Fråga 22 boolean s1 = false, s2 = false; for(int a = 0; a<2; a++) for(int b = 0; b<2; b++) System.out.print( (s1 && s2) + + (s1 s2) + ); s2 =!s2; s1 =!s1; a. Den här koden går inte att kompilera b. Den här koden går att kompilera och köra c. Utskrift: false false false true false true true true d. Utskrift: false false false false true true true true e. Utskrift: false false false false false false false false f. Alla kombinationer av möjliga värden på s1 och s2 har testats Högskolan i Gävle Akademin för teknik och miljö 7

Fråga 23 Vad händer? int v = 2; while(v < 5) System.out.println( v * v ); v = v + 1; a. Första utskriften blir 4 b. Andra utskriften blir 9 c. Tredje utskriften blir 4; d. Tredje utskriften blir 16 e. Första utskriften blir 1 f. Det blir en oändlig loop Fråga 24 Analysera koden och markera korrekta påståenden: int i = 0; final int J = 4; do i = i + 1; System.out.print( i ) while( i < j ); a. Utskrift: 01234 b. Utskrift: 1234 c. Utskrift: 0123 d. Utskrift: 123 e. Om J skulle initieras till 0 skulle ingenting skrivas ut f. J är en konstant. Fråga 25 Vad skrivs ut? for(int i = 10; i>0 ; i--) System.out.print( --i ); a. 10 11 12 13 14 15 16 17 18 19 b. 9 8 7 6 5 4 3 2 1 c. 97531 d. 987654321 e. 0123456789 f. 108642 Högskolan i Gävle Akademin för teknik och miljö 8

Fråga 26 int n = 0; do System.out.print( (n/3 + 1) * (n%3 + 1) + ); while(++n < 9); a. Utskrift: 1 2 3 2 4 6 3 6 9 b. Utskrift: 1 2 3 2 4 6 3 6 c. Utskrift: 1 2 3 2 4 6 3 6 9 4 d. Det blir en oändlig utskrift e. I exemplet förekommer heltalsdivision vars resultat är ett heltal f. % är den så kallade modulusoperatorn, som beräknar resten vid heltalsdivision Fråga 27 Studera koden och markera korrekta påståenden. System.out.print( A ); for(int i=0;i<2;i++) ; System.out.print( B ); System.out.print( B ); for(int i=0;i<1;i++) System.out.print( A ); a. Utskriften blir: ABBBBA b. Ett semikolon ( ; ) räknas som en sats i sig själv eftersom den är en satsavslutare c. Utskriften blir: AA d. Utskriften blir: ABBA e. Utskriften blir: ABBBA f. En sammansatt sats innebär att flera satser skrivs i samma kolumn Fråga 28 Betrakta följande funktion. Vilka påståenden är korrekta (lämpliga)? public static int [] xuyrazt( int [] a ) int [] r = new int[a.length]; for(int i = 0 ; i<a.length; i++) r[i] = a[a.length-i-1]; return r; a. Denna funktion returnerar en exakt kopia av den array (vektor) som skickas in som parameter b. Denna funktion returnerar en array som har sina element i omvänd ordning relativt den inskickade c. Ett lämpligt namn på denna funktion istället för xuyrazt vore copyarray d. Ett lämpligt namn på denna funktion istället för xuyrazt vore reversearray e. Denna kod är felaktig. Mär man skapar en array måste ett konstant värde anges, tex new int[5] f. Denna kod är korrekt, men om man skickar in null som argument så sker ett runtime exception Högskolan i Gävle Akademin för teknik och miljö 9

Fråga 29 Betrakta koden och markera korrekta påståenden om klassen java.lang.string (String): String str1 = new String( LaTeX ); String str2 = str1.touppercase(); String str3 = str2.tolowercase(); System.out.println(str1 + str2 + str3); a. En sträng i Java är mutable, d.v.s. det går att ändra på ett strängobjekt b. En sträng i Java är immutable, d.v.s. det går inte att ändra på ett strängobjekt c. Utskriften blir: LATEX latex latex d. Utskriften blir: LaTeX LaTeX LaTeX e. Utskriften blir: LaTeX LATEX latex f. Utskriften blir: latex latex latex Fråga 30 Betrakta koden och markera korrekta påståenden om klassen java.lang.string (String): String str1 = new String( LaTeX ); int len = str1.length(); String str2 = str1.substring(2); str2 = str2.substring(1,2); System.out.println(str2 + S + len); a. substring(med en parameter) och substring(med två parametrar) skapar nya strängobjekt b. Utskriften blir: LaLaS 5 c. Utskriften blir: TeXaS 5 d. Utskriften blir: LaLaS 7 e. Metoden length() returnerar strängobjektets längd f. Metoden length() returnerar höjden på den font som används i texten. Fråga 31 Markera alla sanna påståenden (Exceptions i Java) a. Kod där RuntimeException kan uppstå kräver inte att man använder try/catch eller throws b. Om en metod innehåller System.in.read(); (som kan skapa ett IOException) så måste denna kod läggas i ett try-block, följt av en catch. Det finns inget annat sätt att få koden körbar. c. En metod som deklarerats med throws kan anropas antingen i en try-klausul eller i en metod som också deklarerats med throws d. Koden: String s = null; s.length(); ger ett exception e. Koden: String s = ; s.length(); ger ett exception f. Koden: String s = exception ; s.length(); ger ett exception Fråga 32 Vilka av alternativen kan i Java-sammanhang användas för att beskriva begreppet "metod"? a. En referensvariabel (pekare) b. En annat namn (inom objektorienterad programmering) för begreppen procedur eller funktion c. Ett visst strukturerat sätt att arbeta d. En instans av ett arv e. En publik metod är en operation som ett objekt tillhandahåller till omvärlden f. En privat metod kan inte anropas från kod som inte tillhör samma klass som metoden tillhör Högskolan i Gävle Akademin för teknik och miljö 10

Fråga 33 Markera sanna påståenden. I Java gäller att en instans av en klass (ett objekt): a. bara är ett annat namn för klassen b. har ett eget unikt minnesutrymme för sina instansvariabler, d.v.s. sina attribut c. kan anta värdet null d. kan endast refereras av en referensvariabel åt gången e. inte kan förekomma i mer än ett exemplar åt gången (samtidigt) f. kan skapas med operatorn new Fråga 34 Vilka påståenden är sanna för referensvariabler? (i Java) a. En referensvariabel kan referera till ("peka på") olika objekt under samma programkörning b. En referensvariabel kan referera till alla typer av objekt c. En referensvariabel är antingen null eller så innehåller den adressen till ett objekt d. Tilldelningen a = b innebär att objektet b kopieras till objektet a e. En referensvariabel kan sättas till null f. Referensvariabels typ avgör vilka objekt den kan referera till OBS! Rättningsprotokoll skall bifogas tentan. Fyll i svaren i protokollet! Dubbelkolla! Högskolan i Gävle Akademin för teknik och miljö 11

Högskolan i Gävle Akademin för teknik och miljö 12

Svarsprotokoll för tentamen i kursen: DV017A, "Inledande programmering i Java, A" Datum: 2010-08-21 Lärare: Jonas Boustedt Mobil: 070 6766998 Sätt tydliga kryss i rutorna! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 a a b b c c d d e e f f 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 Eventuella kommentarer Studentens namn: Studentens personnummer: Studentens namnteckning: Inlämningstid: