C-Programmering Flashcards

1
Q

Vad är/gör funktioner ?

A

Skall lösa en specifik uppgift
Ska vara lätt att förbättra
Man ska kunna skriva gränssnittet för funktioner på ett tydligt sätt
Den ska vara tillräckligt generell så man ska kunna återanvända den

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Vad är en pekare ?

A

Är en variabel som innehåller minnesadress till en plats i primärminnet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Vad har pekare för användningsområden för pekare ?

A

Referensanrop- som gör så att man kan ändra på ett värde på en variabel på en funktion.
Dynamisk minnesallokering- Hantera minne utan att deklarera variabel med namn
Åtkomst av variablens minnesadress
Effektivare minneshantering genom att skicka pekare till en funktion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Generell pekare

A

Kan användas som ett mellanresultat när man vill göra omvandlingar mellan olika pekartyper

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Lokala Variabler

A

Deklareras inuti funktion. Existerar inte när exekveringen av programmet lämnar koden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Globala Variabler

A

Deklareras utanför alla funktioner & main-funktionen. Existerar i alla kodblock

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Vad är enum ?

A

Enum används för att skapa datatyp som kan användas för att gruppera objekt med fasta värden(konstanter)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Vad är struct ?

A

Struct används för att skapa datatyp som kan användas för att gruppera objekt med variabler(värden som kan ändras)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Nämn några fördelar med enum

A

Lätt att utvidga och ändra vad enum representerar vid en uppdatering av koden
Den ger programmeraren och den som läser koden en bra vägledning om hur siffervärden skall tolkas

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Nämn några fördelar med struct

A

Skicka innehållet i en struct som parametrar till en funktion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Får man klistra och klippa kod från internet och använda den i programmet som man själv gör publikt tillgängligt ?

A

Ja, om koden inte kan anses ha verkshöjd

Nej, såvida det inte finns en licens som säger att det är okej

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

FOSS, Fri Programvara, Öppen Källkod, Free Software, Öppna Programvaror, FLOSS & Open Source är alla namn på mjukvara som är släppta under en licens som tillåter dig att vadå ?

A

Köra mjukvaran som du vill
Lära dig hur programmet fungerar
Distribuera mjukvaran
Förbättra programvaran/mjukvaran och tillåter dig distribuera denna

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Skapade verk skyddas av vadå ?

A

Upphovsrätten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Om man skall använda en textfil för att lagra data från ett program, vilka steg är nödvändiga för att hantera filen ?

A

Skapa ett filhandtag
Öppna filen och kontrollera att öppningen lyckades
Skriv till filen
Stäng filen om öppningen gick bra

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Implicit typkonvertering

A

Regler i språkspecifikationen styr hur datatypskonflikter i beräkningsuttryck löses

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Explicit typkonvertering

A

Programmeraren styr hur datatypskonflikter i beräkningsuttryck löses

17
Q

Vad innebär “loop and a half” problemet ?

A

Att det värde som skall testas i villkoret uppkommer i mitten av loopen

18
Q

Hur man kan lösa “loop and a half” problemet ?

A

Det kan lösas på två sätt:

  1. Genom att inför en selektionssats i mitten av loopen som bryter loopen med en break-sats
  2. Read - Ahead tekniken: Läser in ett värden före loopen och gör en motsvarande inläsning i slutet på loopen.
19
Q

Vad är ett värde anrop/call by value ?

A

Vid värdeanrop kopieras innehållet i den variabel som användas vid anropet till den variabel som skapas i själva metoden.

20
Q

Vad är ett referens anrop/call by reference ?

A

Vid referensanrop kommer variabeln som används i parameterlistan att “peka på” minnesarean för variabeln som används vid anropet.

21
Q

Vad är ett sentinel-värde?

A

Ett särskilt värde som inmatas för att avsluta en iteration

22
Q

Vad viktigt för ett bra gränssnitt för funktionerna i ett bibliotek?

A

En utökning av biblioteket med ytterligare funktioner är OK
Gränssnittet skall hållas intakt även om implementationen ändras
Gränssnittet skall vara tydligt, dvs det skall klart framgå vad funktionerna gör och hur deras resultat och argument ser ut

23
Q

Beskriv tre viktiga egenskaper för en konstant i C

A

Placeras med fördel globalt
Initieras vid definitionen/deklarationen
Kan inte ändras i koden

24
Q

Vilket feltyp innebär att programmet ser ut att fungera men ger sporadiskt felaktiga beräkningar?

A

Ett logiskt fel

25
Q

Nämn några viktiga aspekter att tillämpa vid modulär programuppbyggnad?

A

Dela upp källkoden i lämpliga bibliotek Uppdelningsstrategi–urval av funktioner så att man
Hittar rätt abstraktion för en viss uppdelning
Begränsar beroendet mellan moduler
Om möjligt skapar återanvändbara moduler Bevara modulens interna tillstånd
En modul kan internt hantera “globala variabler”
Variabler vars innehåll bevaras mellan funktionsanrop Globala variabler deklareras
Utan för alla funktioner(i modulens.c –fil)
Med nyckelordet static för att de skall vara lokala inom modulen
Vid returnering av en pekare se till att den returneras som en konstant, med nyckelordet const

26
Q

Vad menas med företrädesregler för operatorer i beräkningsuttryck?

A

Operatorer är ordnade i kategorier med olika prioritet. De med högre prioritet utförs före de
med lägre prioritet

27
Q

Vad innebär det att en variabel deklareras?

A

Variabeln ges en minnesarea med en bestämd storlek

28
Q

Vad är sant för en funktion som inte returnerar något värde?

A

Den kan skriva ut text genom att i sin kod anropa en printf-sats

29
Q

Vad skall man göra för att programkoden skall bli lättare att förstå ?

A

Gränssnittet, funktioner och variabler ska ha vettiga namn.
Kommentera i koden där det behövs, funktionsdefeinition och funktionsdekleration.
Initiering är viktigt
Stegvis förfining, skriva ner iterationer, selektioner, analyseringar till man får en klar bild av vad programmet gör.

30
Q

Vad skall en programmerare göra för att göra programkoden lättare att förstå ?

A

Dela upp koden på ett bra sätt, alla funktionsdefinitioner tsm, alla funktionsdeklerationer tsm.
Ha flera c/h-filer beroende på vad de olika funktioner är till för/gör.
Lägga funktionsprototyper en h-fil och i rätt ordning för att det ska bli lättare för läsaren att förstå vilken funktionsprototyp som motsvarar vilken funktion i koden.

31
Q

Skillnaden mellan en konstant och en en variabel ?

A

En konstant är ett värde som inte kan ändra. Det värde som konstanten får innan programkörningen kommer den även ha efter programkörningen.
Ex: const int myNumber = 10;

En variabel är ett värde som kan ändras efter programkörningen.
Ex: int myNumber;

32
Q

Synonymet med defekt eller bug

A

Fault

33
Q

Det är ett kodmisstag som orsakar inkorrekt resultat

A

Error

34
Q

Systemet fungerar inte enligt kravspecifikationen

A

Failure

35
Q

Test Levles

A

Componant Testing
Integration Testing
System Testing
Acceptance Testing

36
Q

Test Types

A

Functional Testing
Non-functional Testing
White Box Testing
Change Related Testing

37
Q

Test Techniques

A

Black Box
White Box
Experience Box

38
Q

Software Testing Lifecycle

A
  1. Test Planning
  2. Test Monotoring & Control (Pågår hela tiden)
  3. Test Analysis
  4. Test Design
  5. Test Implementation
  6. Test Execution
  7. Test Completion
39
Q

Översättningsprocessen från kod till körbar applikation

A

Vid kompelering översätts koden till binärkod och som senare går in i en mellan level steg där koden tilldelas minne från primärminnet och som senare omvandlas till källkod.