Rättning av tenta fel bedömt ?
Hej jag gjorde en tenta ganska nyligen och jag vill bara veta ifall det är jag som har rättat fel eller min lärare. Jag har endast fått 3 poäng för de svar jag har angett. Men när jag räknar ihop det ska det vara 8 poäng. För varje påstående om man har rätt får man +1p och -1p om man har fel. Jag har svarat på följande: a) falskt, b) falskt , c) sant, d) falskt, e) falskt, f) sant, g) sant, h) sant, i) sant , j) falskt, k) sant , l) sant , m) falskt, n) sant, o) falskt , p) sant
Påståendena lyder:
Ange vilka av följande påståenden som är sanna.Varje påstående som du anger som sant och som faktiskt är sant ger +1pVarje påstående som du anger som sant och som egentligen är falskt ger -1p
a)En pekarvariabel deklareras med &-operatorn.
b)För att skriva till en textfil används funktione fwrite.
c) Om en funktion inte ska returnera någonting används returtypen void.
d) För att jämföra om två strängar är lika eller inte kan == användas.
e) Funktionen srand() används för att sätta ett startvärdet för generering av slumpade tal.
f) En do-while-loop utför sitt kodblock minst en gång.
g) Satsen printf(”%.2f”, 5/2); skriver ut 2.50.h) Funktionen strcmp(), som finns i biblioteket string.h, används för att jämföra om tvåsträngar är lika eller inte.
i) En fil som öppnads i läge ”r+” kan både läsas från och skrivas till.
j) Funktionen calloc() används för att ändra storleken på ett dynamiskt allokerat minne.
k) switch-satsen gör val baserat på om ett villkor är sant eller inte.
l) char array[10]; är exempel på en statisk array, dess storlek kan inte ändras underkörning.
m) printf-funktionen används för att läsa in data från användaren.
n) En array kan inte ha olika datatyper i dess element.
o) En fil kan inte ha två strömmar öppna till sig samtidigt.
p) ++i och i++ är alltid helt ekvivalenda-
Didar skrev:Hej jag gjorde en tenta ganska nyligen och jag vill bara veta ifall det är jag som har rättat fel eller min lärare. Jag har endast fått 3 poäng för de svar jag har angett. Men när jag räknar ihop det ska det vara 8 poäng. För varje påstående om man har rätt får man +1p och -1p om man har fel. Jag har svarat på följande: a) falskt, b) falskt , c) sant, d) falskt, e) falskt, f) sant, g) sant, h) sant, i) sant , j) falskt, k) sant , l) sant , m) falskt, n) sant, o) falskt , p) sant
Påståendena lyder:
Ange vilka av följande påståenden som är sanna.Varje påstående som du anger som sant och som faktiskt är sant ger +1pVarje påstående som du anger som sant och som egentligen är falskt ger -1p
a)En pekarvariabel deklareras med &-operatorn.
b)För att skriva till en textfil används funktione fwrite.
c) Om en funktion inte ska returnera någonting används returtypen void.
d) För att jämföra om två strängar är lika eller inte kan == användas.
e) Funktionen srand() används för att sätta ett startvärdet för generering av slumpade tal.
f) En do-while-loop utför sitt kodblock minst en gång.
g) Satsen printf(”%.2f”, 5/2); skriver ut 2.50.h) Funktionen strcmp(), som finns i biblioteket string.h, används för att jämföra om tvåsträngar är lika eller inte.
i) En fil som öppnads i läge ”r+” kan både läsas från och skrivas till.
j) Funktionen calloc() används för att ändra storleken på ett dynamiskt allokerat minne.
k) switch-satsen gör val baserat på om ett villkor är sant eller inte.
l) char array[10]; är exempel på en statisk array, dess storlek kan inte ändras underkörning.
m) printf-funktionen används för att läsa in data från användaren.
n) En array kan inte ha olika datatyper i dess element.
o) En fil kan inte ha två strömmar öppna till sig samtidigt.
p) ++i och i++ är alltid helt ekvivalenda-
Det var decennier sedan jag höll på med C, så ta mina svar med en stor nypa salt. Nedan är dina svar och i förekommande fall någon kommentar från min sida. Jag får det till 11 rätt och 5 fel. Summering överlåter jag till dig.
a) falskt
Ja, det är väl *.
b) falskt
Precis. Binärfil, eller hur?
c) sant
Absolut!
d) falskt
Håller med! Med == jämför du pekarna, inte innhållet. (Fast det klart, om det är samma objekt så är ju innehållet också lika, men inte nödvändigtvis det omvända.)
e) falskt
Håller inte med! Den används för att sätta "seed".
f) sant
Japp! Kontrollen sker i slutet.
g) sant
Nix. 5/2 är heltalsdivision, så resultatet blir 2. Sedan väljer du att skriva ut med två decimaler, så 2.00.
h) sant
Håller med.
i) sant
Stämmer. Det går att skriva med "r+".
j) falskt
Sant. Allokera, men inte ändra.
k) sant
Det skulle jag inte säga. Switch jämför med tal eller strängar och gör val baserat på om de är lika.
l) sant
Håller med.
m) falskt
Ja, printf skriver ut, läser inte in.
n) sant
Nej, det tror jag inte. Hur skulle den deklareras?
o) falskt
Det går utmärkt, men man får passa sig för hur man läser och skriver.
p) sant
Nix. Skillnaden ligger i när i räknas upp, före eller efter läsning.
i=0
if (++i == 0) ... // Detta är falskt och efteråt är i ==1.
if (i++ == 0) ... // Detta är sant och efteråt är i ==1.
håller med, så då borde jag ändå få 6p eller?
Det går inte ens att få 3 poäng om man har svarat på allt. Det måste bli ett jämnt antal poäng. Det står visserligen inte vad som händer med påståenden där du har svarat "falskt", men det kan väl inte vara meningen att de ska ignoreras.
Jag skulle inte kalla string.h för ett bibliotek, men det kanske inte är relevant här. fwrite kan man visst använda för att skriva till textfiler, men som påståendet är utformat skulle jag också svara falskt.
Hur definierar ni textfil? Måste den skriva en BOM i början?
För mig betyder "textfil" att det man skriver till filen formateras om och/eller anpassas för den specifika miljön. Om man inte anger "wb" till fopen kommer fwrite lägga sig i det man skriver. På HP/UX får man en annan fil än på Windows, där fwrite formaterar om LF till CR/LF.
På n) kanske uppgiftsmakaren menar att man kan göra en array av en struct med flera datatyper i sig. Elementtypen kan ha olika datatyper.
Edit: Jag hade tydligen rätt från början... Det är skillnad mellan "wb" och "w" för fwrite.
Här skriver vi 1 byte till filen testfil, först med wb (binary-mode) och sedan med "w" (text-mode) och tittar på resultatet:
buf innehåller alltså bara 2 bytes, {0A,00} (nollavslutad sträng). Vi skriver bara 1 element 1 byte stort.
Med "wb" får vi filen (1 byte)
Och med "w", dvs text-mode, får vi filen (2 byte)
Från ingenstans har vi alltså fått en CR av fwrite. Trots att vi inte bett om det (tekniskt sett har vi kanske bett om det eftersom vi använt fwrite för att skriva en textfil).
Laguna skrev:Det går inte ens att få 3 poäng om man har svarat på allt. Det måste bli ett jämnt antal poäng. Det står visserligen inte vad som händer med påståenden där du har svarat "falskt", men det kan väl inte vara meningen att de ska ignoreras.
Jag skulle inte kalla string.h för ett bibliotek, men det kanske inte är relevant här. fwrite kan man visst använda för att skriva till textfiler, men som påståendet är utformat skulle jag också svara falskt.
ja men precis håller med, då har läraren gjort fel eller formulerat sig väldigt konstigt eller har jag fel?