Basis van programmeren in C

int a = 7, b = 2;
double x = a / b;
double y = (double)a / b;
printf("%.1f %.1f\n", x, y);

Wat is de uitvoer als de bovenstaande code, die een deling van gehele getallen bevat, wordt uitgevoerd?

  1. A3.0 3.0
  2. B3.0 3.5
  3. C3.5 3.5
Antwoord en toelichting tonen

Antwoord: B. 3.0 3.5

a / b deelt een int door een int, dus het is een deling van gehele getallen die 3 geeft, waarbij het deel achter de komma wordt weggelaten. Die 3 in de double x zetten maakt er alleen 3,0 van; de weggelaten 0,5 komt niet terug. Bij y wordt a eerst naar double omgezet (een cast), dus wordt ook b naar double omgezet, gebeurt de deling met drijvende komma en is het resultaat 3,5. Hoe de berekening wordt uitgevoerd, wordt bepaald door de typen van de operanden, niet door het type van het doel van de toekenning.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van programmeren in C

  1. Wat is de uitvoer als de bovenstaande code met prefix- en postfix-++ wordt uitgevoerd?
  2. Wat is de uitvoer als de bovenstaande code, met = in de voorwaarde van een if-statement, wordt uitgevoerd?
  3. De bovenstaande code is geschreven om te controleren of bit 2 van de registerwaarde reg 1 is. Wat is het resultaat als de code wordt uitgevoerd?
  4. uint8_t is een 8-bits integertype zonder teken. Wat is de uitvoer als de bovenstaande code wordt uitgevoerd?
  5. uint8_t is een 8-bits integertype zonder teken. Wat is de uitvoer als de bovenstaande code, die x tien keer verhoogt, wordt uitgevoerd?