ID: 2851 OOP - Podstawy Średnie

Źródło: Arkusze CKE

Pętla przedstawiona w zadaniu działa na zmiennej typu string o nazwie ciag. Jej celem jest:

int i = 0;
while (ciag[i] != 0) {
if (ciag[i] > 96 && ciag[i] < 123) {
ciag[i] = (ciag[i] - 32);
}
i++;
}

Warianty odpowiedzi

  1. A

    Zamienić w ciągu wielkie litery na małe.

  2. B

    Zamienić w ciągu małe litery na wielkie.

  3. C

    Od każdego znaku w ciągu odjąć kod 32.

  4. D

    Od każdego znaku w ciągu, który nie jest równy 0, odjąć kod 32.

Wyjaśnienie

Spójrzmy na warunki wewnątrz pętli. Kod analizuje wartości ASCII kolejnych znaków napisu.

Warunek ciag[i] > 96 && ciag[i] < 123 wyłapuje znaki o kodach od 97 do 122. W tabeli ASCII są to małe litery alfabetu łacińskiego od 'a' do 'z'.

Następnie wykonywana jest operacja odejmowania 32 od kodu znaku. Przesunięcie o 32 pozycje w dół w tabeli ASCII zmienia małą literę na odpowiadającą jej wielką literę (np. 'a' ma kod 97, a 97 - 32 daje 65, czyli 'A').

Pętla przechodzi po całym ciągu znaków, zamieniając wszystkie małe litery na ich wielkie odpowiedniki.

Sprawdź się w praktyce

Rozwiąż pełny test próbny INF.04 albo wylosuj pojedyncze pytanie na szybką powtórkę.

Podobne pytania — OOP - Podstawy