Skriv i mån av plats dina lösningar direkt i tentamen. Skriv ditt kodnummer längst upp på varje blad.

Relevanta dokument
Johan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen

Tentamen *:58/ID100V Programmering i C Exempel 3

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN1 - Teoretisk tentamen Tid: Torsdagen den 20 oktober 2011,

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011,

*Pekarvärden *Pekarvariabler & *

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

Länkade listor kan ingå som en del av språket, dock ej i C Länkade listor är ett alternativ till:

Tentamen i Programmering grundkurs och Programmering C

Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl Omtentamen i Programmering C, Fri, Kväll,

Tentamen i Programmering grundkurs och Programmering C

Programmeringsteknik med C och Matlab

tentaplugg.nu av studenter för studenter

C++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011

BINÄRA TRÄD. (X = pekarvärdet NULL): struct int_bt_node *pivot, *ny; X X X 12 X X 12 X X -3 X X

Föreläsning 10. Pekare (Pointers)

Programmering, grundkurs, 8.0 hp HI1024, TEN1. Fredagen den 2 mars 2012

#include <stdio.h> #include <string.h>

Tentamen i Programmering grundkurs och Programmering C

Agenda. Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer. Övningar nu och då

Programmering i C, 7,5 hp

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

Minnestilldelning (allokering) och frigörande (avallokering) av minne

struct egendefinierad typ struct LECTURE_TYPE { char teacher[99]; float lengthinminutes; char type; /* L = lecture, E = exercise */ };

Programmeringsteknik för Ingenjörer VT06. Föreläsning 10

Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl Tentamen i Programmering C, Fri, Kväll,

Övning från förra gången: readword

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

TDIU01 - Programmering i C++, grundkurs

LÖSNINGSFÖRSLAG TILL Tentamen i objektorienterad programmering i C++ I

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl

KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012

Tentamen i Programmering grundkurs och Programmering C

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll,

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.

Tentamen ges för: Tentamensdatum: Tid:

Funktioner och programstruktur. Föreläsning 5

Dynamiskt minne. Vad är dynamiskt minne Motivering Hur gör man i C Övningar

Funktioner och programstruktur. Föreläsning 5

Tentamen i Programmering grundkurs och Programmering C

Programmering, grundkurs, 8.0 hp HI1024, omtentamen, TEN1. Tisdagen den 7 juni 2011,

Lösningar till uppgifterna sätts ut på kurssidan på nätet idag kl Omtentamen i Programmering C, 5p, A1, D1, E1, Fri, Pr1, Te/Ek1,

Tentamen i. Programmering i språket C

BMI = (vikt i kg) / (längd i m) 2. Lösningsförslag

Föreläsning 4. Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag

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

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

Tentamen i. för D1 m fl, även distanskursen. lördag 28 maj 2011

Programmering, grundkurs, 8.0 hp HI1024, extra tentamen, TEN1, för TIDAA1. Fredagen den 11 mars 2011,

Pekare och arrayer. Indexering och avreferering

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

2 Pekare och dynamiska variabler.

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

GU / Chalmers Campus Lindholmen Tentamen Programutveckling LEU 482 / TIG167

Värmedistribution i plåt

Programmering Grundkurs (HI1900) Teoridel

Funktionspekare, inledning: funktionsanropsmekanismen. Anrop via pekare

Programmering av inbyggda system. Kodningskonventioner. Viktor Kämpe

Programmering C: Tentamen of 5 Prioritet och associativitet hos operatorerna i C De viktigaste operatorerna: Prioritet Kategori Operator

En kort text om programmering i C.

TDIU01 - Programmering i C++, grundkurs

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.

HI1024 Programmering, grundkurs TEN

TDDC74 Programmering, abstraktion och modellering. Tentamen

Tentamen i Introduktion till programmering

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

Abstrakta datastrukturer

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

Programmering i C. Vad är C? Målsättning. Litteratur. Jämförelse med Java. Exempel : Ett program som skriver ut texten Hello, world

HI1024 Programmering, grundkurs TEN

Tentamen i. för D1 m fl, även distanskursen. lördag 19 januari 2013

Laboration 13, Arrayer och objekt

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

Lösningar till uppgifterna sätts ut på kurssidan och på WebCT (Gamla Tentor) i dag kl 19. Tentamen i Programmering C, 5p, Distans, övriga,

Exempel ( )

Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl 13. Omtentamen i Programmering C, 5p, A1, D1, PA1, Fri,

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

Poster ( structar ) Postdeklarationer

Typkonvertering. Java versus C

Föreläsning 4. Val, boolska värden, läsbarhet, osv

Instuderingsfrågor, del D

C++ - En introduktion

PROGRAMMERING-JAVA TENTAMINA

Tentamen i Programmering grundkurs och Programmering C

Problemlösning. Veckodagsproblemet Gissa talet Siffersumman

Planering Programmering grundkurs HI1024 HT 2014

Tentamen i Grundläggande Programvaruutveckling, TDA548

Övningsuppgift. En array baklänges. Steg 1. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

GU / Chalmers Campus Lindholmen Tentamen Programutveckling LEU 482 / TIG167

Tentamen Programmeringsteknik II och NV2 (alla varianter) Skriv bara på framsidan av varje papper.

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

TDDC76 - Programmering och Datastrukturer

TENTAMEN OOP

Nedan skapar vi klassen Person innehållande datamedlemmar för förnamn, efternamn, ålder, längd och vikt:

SP:PROG3 HT12 Tenta

Tentamen i Programmering

Kompilatorer och interpretatorer

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Detta är andra problemlösningsföreläsningen, vi diskuterar problemen ur Problem II.

Transkript:

5(16) Tentamen på kurserna Programmeringsteknik med C och Matlab Programmering i C Tid: 2/11-11, kl. 9-13 Lärare: Jonny Pettersson Totalt: 60 poäng Betyg 3: 30 poäng Betyg 4: 39 poäng Betyg 5: 48 poäng Inga hjälpmedel tillåtna. Skriv i mån av plats dina lösningar direkt i tentamen. Skriv ditt kodnummer längst upp på varje blad. Om du behöver mer plats, skriv dina lösningar på extrablad. Lös bara en uppgift på varje extrablad. Se till att ditt kodnummer och uppgiftens nummer är tydligt markerade på varje extrablad du lämnar in. Se till att C-kod som ingår i dina lösningar är vettigt indenterad. Glöm inte att markera med ett kryss de uppgifter du lämnar in svar på. Besvara varje fråga så tydligt och strukturerat som möjligt. Om det inte går att läsa dina lösningar kan de inte ges poäng. Observera att tentamen är tryckt dubbelsidig. Läs alltså båda sidorna av varje blad. Lycka till!

6(16) Kodnummer: UPPGIFT 1 (5 x 2 poäng) Betrakta följande C-program: #include <stdio.h> int main(void) { int f = 15, g = 4; double x = f - 12, y = 4.3; char c = 'k'; char *s = "Hej"; printf("%d %c\n", 3 + 4, c); /* Utskrift 1 */ printf("%d %d\n", g/f, g%f); /* Utskrift 2 */ f = y + 10; printf("%d %.2f\n", f/g, y/2); /* Utskrift 3 */ y *= x; printf("%s %.3f\n", s, y); /* Utskrift 4 */ x += y * 2; printf("%s %.1f\n", "x = ", x); /* Utskrift 5 */ return 0; Vad skriver programmet ut när det körs? Utskrift 1: Utskrift 2: Utskrift 3: Utskrift 4: Utskrift 5:

7(16) Kodnummer: UPPGIFT 2 (4 poäng) Skriv en C-funktion som givet tre tal som parametrar returnerar värdet på det lägsta talet. Din funktion har följande funktionsdeklaration: double lowest(double n1, double n2, double n3); Skriv funktionsdefinitionen.

8(16) Kodnummer: UPPGIFT 3 (7 + 4 poäng) a) Skriv en funktion med funktionsdeklarationen double meanofpositive(int array[], int length); Funktionen tar emot en array med heltal och ett heltal som anger hur många heltal som finns i arrayen. Funktionen beräknar och returnerar medelvärdet av alla positiva tal. Ett positivt tal är ett tal som är strikt större än talet noll (0). Om inget positivt tal finns i arrayen ska funktionen returnera 0. b) Skriv en main-funktion som deklarerar en int-array av längd sju, fyller arrayen med sju tal (tex 3, -2, 4, -1, 3, 7, -8), anropar meanofpositive för att beräkna medelvärdet av alla positiva heltal (enligt ovan) och skriver ut det värde som meanofpositive returnerar med två decimalers noggrannhet (följt av en radbrytning). Tips: Tänk på att du kan göra deluppgift b även om du inte gjort deluppgift a.

Kodnummer: Uppgift: 9(16)

10(16) Kodnummer: UPPGIFT 4 (2 + 3 + 3 poäng) Betrakta följande C-funktioner: int f1(int n1, int n2) { if(n1 == n2 && -1 < n1) { return n1 + n2; else if(3 < n2 n1 > n2) { return n2 * n2; else { return n1 - n2; int f2(int n3, int n4, int n5) { int x1 = n3 % 2, x2 = n4 + n4, x3 = n4 - n5; do { x2 -= n3; x3 += x3; while (x2 >= x1); return x3; int f3(int n6, int n7, int n8) { int i, j; for(i = 11; i > n7; i -= 2) { for(j = i; j < n8; j++) { n6 += 1; return n6; Vilka returvärden ger följande tre anrop? f1(5, 3) f2(2, 3, 1) f3(0, 3, 8)

11(16) Kodnummer: UPPGIFT 5 (5 + 3 poäng) Givet följande datatypsdefinitioner: typedef struct{ char firstname[201]; char lastname[201]; int birthyear; person; typedef struct { char title[1001]; person author; int publishingnumber; book; I denna uppgift ska du skriva funktioner för att skriva ut data. Följande är ett exempel på hur utskriften av en array av book ska se ut: Bok 1 Titel: Matlab Namn: Andersson, Anna Födelseår: 1980 Publiceringsnummer: 2 Bok 2 Titel: DoA efter C Namn: Carlsson, Cecilia Födelseår: 1971 Publiceringsnummer: 1 a) Skriv en funktion printbook som skriver ut informationen som finns i en datastruktur av typen book. Din funktion ska ha följande funktionsdeklaration: void printbook(book b); I funktionen väljer du själv om du vill använda dig av en extra separat funktion för att skriva ut delar av innehållet. Denna eventuella funktion måste du i så fall skriva i ditt svar. b) Skriv en funktion printbookarray som skriver ut informationen som finns i en array av datastruktur av typen book. I funktionen ska du använda dig av funktionen printbook. Din funktion ska ha följande funktionsdeklaration: void printbookarray(book *bookarray, int length);

Kodnummer: Uppgift: 12(16)

13(16) Kodnummer: UPPGIFT 6 (3 + 8 + 2 poäng) a) Skriv en funktion double *allocarray(int length); som allokerar en double-array av längd length och returnerar en pekare till arrayen. b) Skriv en funktion void separate(const double *array, double *posarray, double *negarray, int length, int *noofpos, int *noofneg); som kopierar alla positiva tal bland de length första elementen i array till arrayen posarray och i variablen som noofpos pekar på sparar antalet positiva heltal som fanns i array kopierar alla negativa tal bland de length första elementen i array till arrayen negarray och i variablen som noofneg pekar på sparar antalet negativa heltal som fanns i array Inga tal med värdet 0 ska kopieras eller räknas. Arrayerna posarray och negarray har båda minst längden length. Eventuella värden i posarray och negarray ska ligga i element efter varandra. Efter ett anrop till separate kan det till exempel se ut så här i arrayerna (tecknet? i ett element innebär att värdet i elementet ej påverkats): array: -2 0 4 3-1 posarray : 4 3??? negarray: -2-1??? c) Skriv en funktion som lämnar tillbaka det minne som allokerats med hjälp av allocarray.

Kodnummer: Uppgift: 14(16)

Kodnummer: Uppgift: 15(16)

16(16) Kodnummer: UPPGIFT 7 (2 + 2 + 2 poäng) Betrakta följande C-program: #include <stdio.h> int main(void) { int a = 3, b = 7; int *x, *y; int array[2]; y = &a; x = y; *x = 5; x = &b; printf("%d %d\n", a, *x); /* Utskrift 1 */ *y += *x; b = a - *x; y = &b; printf("%d %d\n", a, *y); /* Utskrift 2 */ a = 1, b = 2; x = &array[1]; *x = b; array[0] = a; y = array; printf("%d %d\n", array[1], *y); /* Utskrift 3 */ return 0; Vad skriver programmet ut när det körs? Utskrift 1: Utskrift 2: Utskrift 3: