Programmering istudering

Övningen är skapad 2020-03-03 av alexderosa1. Antal frågor: 25.




Välj frågor (25)

Vanligtvis används alla ord som finns i en övning när du förhör dig eller spelar spel. Här kan du välja om du enbart vill öva på ett urval av orden. Denna inställning påverkar både förhöret, spelen, och utskrifterna.

Alla Inga

  • Vad innebär preprocessing? Programmet tar in information innan kompileringen sker. T.ex. #stdio eller #stdlib men även dina egna .h filer inkluderingsfiler.
  • Vad innebär länkning? Ett program består av olika objektfiler som tillsammans skapar programmet. Länkning sätter ihop filerna till ett fungerande program.
  • Vad innebär kompilering? Programtexten översätts till maskinkod om den inte upptäcker några fel, varje kompilator är specifik för ett språk.
  • Vad betyder en deklaration? Exempel på en deklaration: int antal; När man ... en variabel talar man om vad den ska heta och vilken typ den är. T.ex. Int, char, double, float etc.. Datatypen skrivs först och efter skrivs namnet. En variabel tar upp en plats i minnet där storleken baseras på typen. Till variabeln kan man adressera ett värde. Innan en variabel kan användas måste man ... vilken sort den är.
  • Varför ska man indentera (tabba in delar av) kod? Med ... menas att texten på raderna raderna dras in så att de avspeglar programmets struktur. Det har med läsbarheten att göra, så man ser vart en function börjar och slutar tex.
  • Påverkar indentering den kompilerade koden? Nej
  • Varför måste man använda adressoperatorn (&) när man använder standardfunktionen scanf för att läsa in ett tal? När man har allokerat en minnesplats och storlek med en variabel måste man med hjälp av tecknet hänvisa till just den platsen.
  • Radbytestecknet \n används ofta i textsträngar i samband med standardfunktionen printf. Ge ett exempel på hur radbytestecknet används i ett printf-anrop och förklara vad en programrad med ett printf-anrop gör. Förklara också varför man bör undvika radbytestecknet i ett scanf-anrop. I printf används \n som ett radbyte. Printf används för att skriva ut en text i terminalen. Om du skriver ett \n i en scanf kommer du behöva göra två inskrivningar för att spara till variabeln. \n (blankvärde) gör att den fortsätter leta efter ett inscanningsvärde. Därför måste man scanna in ett till värde för att få det att sluta och spara in värdet
  • För att tilldela en variabel ett värde använder vi tilldelningsoperatorn =. Vad betyder det att den är en operator i C och att en tilldelning inte bara är en sats? En operator är något som verkar på en eller flera termer (argument). Det finns olika typer av operatorer: Unära operatorer (tar ett argument, ex. &, *, !, sizeof) & Binära operatorer (tar två argument, ex. +, -, ==, <= etc…)
  • Vad gör operationen n +=2 ? Den lägger till värdet 2 till det redan befintliga värdet på variabeln n.
  • Vad är betyder n++? lägger till 1 men returnerar original värdet.
  • Vad betyder ++n? lägger till 1 och returnerar det tillagda värdet
  • Hur bör olikheten 3 < i ≤ 7 skrivas som villkor i C? ex: if(i>3&&i<=7)
  • Varför ska man inte använda goto? När man använder ... hänvisar man till en specifik plats utan att man bryr sig om koden mellan goto och den specifika platsen. Man anser att programmet blir svårt att följa och uppdatera, speciellt för en person som inte skapat koden.
  • När vi har flera nästlade loopar skulle goto kunna vara ett enkelt sätt att hoppa ur alla loopar medan break bara hoppar ur den innersta loopen. Man kan naturligtvis sätta alla loopvillkor så att de testas falskt för att hoppa ur men ibland känns det omständigt. Hur kan du enkelt hoppa ur flera nästlade loopar utan att använda goto? Man använder sig av en "flagga" då kan vi sätta ett flagg statement i flera loopar och ett flaggvärde deklarerat innan loopen. När flaggan uppfylls kommer den hoppa ur alla loopar som har samma värde. Oftast ges en “flagga” värdena 0 och 1 där 0 står för false och 1 för true. Detta används sedan i ovanstående fall när man vill avsluta och hoppa ur en loop (0) eller fortsätta med en loop (1).
  • Heltalsvariabler kan vara ”unsigned”, vad innebär det? Vad är skillnaden mellan en unsigned int och en int? Antag att variabeln a är deklarerad som en unsigned int. Ange vad som händer (principiellt) om man gör tilldelningen a = –1; Skillnaden är att unsigned inte kan innehålla negativa och positiva tecken. Endast positiva heltal. Om man printar med %d kommer man få samma negativa tal. Om man printar med %u kommer man få 4294967295, då en unsigned int är 32bit stor. Den ger dig maxvärde och tolkar det som positivt.
  • Varför kan det vara bra att initiera alla variabler? Så man kan förebygga så kallade buggar
  • I C lagrar vi bokstäver i typen char men char är en heltalstyp. Hur hänger detta ihop? Detta hänger ihop då bokstäver/text kompileras och görs om av kompilatorn till maskinkod som sedan kan visas i terminalen.
  • Nämn ett exempel då man kan behöva göra en explicit konvertering i C? Om en typ ska ... till någon annan kan man göra det explicit, dvs. att man skriver ut den nya typen inom parantes precis efter likamedtecknet. Typer kan konverteras hur som helst sinsemellan, utom i fallet boolean. Boolean kan inte konverteras till eller från någon annan typ.
  • Antag att vi har deklarerat en array att ha längden 10 int a[10]; och sedan tilldelat: a[10]=4; Beskriv vad som händer när vi kör programmet. a[10] finns inte eftersom array slutar på “a[9]”
  • Hur initierar man en matrisarray (en 2-dimensionell array). Ge ett exempel där man initierar en 3 gånger 3 matris med ettor i diagonalen. int a[3][3]= {{1, 0 ,0}, {0, 1, 0}, {0, 0, 1}};
  • Vad är en funktionsdeklaration och vad kan man använda den till? En ... ska se ut som följer: funktionstyp funktionsnamn(funktionsargument); Den kallar på en funktion och kommer köra funktionen. Deklarationen ger funktionens egenskaper och måste stämma med definitionen av samma funktion. Deklarationen gör över main.
  • Var gäller en deklaration av en lokal variabel? Inuti satsen som ... deklareras i.
  • Varför ska man normalt inte använda globala variabler? Använder minne under hela programmet. Inte bara när de körs. Eftersom värdet på en ... kan ändras i varje funktion i programmet, finns det risk för oönskade förändringar uppstår och därmed buggar i programmet. Denna risk ökar ju fler .. man använder och ju större programmet är. Man bör alltid eftersträva att skriva funktioner så allmänna som möjligt så att man kan återanvända den i andra sammanhang. Användning av ... minskar denna möjlighet.
  • Vad är en pekar-variabel? En ... är en typ av data som innehåller en specifik minnesadress. En ... till en variabel kan användas för att läsa och ändra värdet på variabeln. För att deklarera en ... skrivs en asterisk, *, framför variabelnamnet och för att få adressen till en variabel föregås den av ett och-tecken, &.

Alla Inga

Utdelad övning

https://glosor.eu/ovning/programmering-istudering.9671598.html

Dela