Przejdź do treści głównej
INF.04Pytanie #330 z 856jezyk-cpp-skladnia-i-pamiec

W języku C++ zakładając, że przedstawiona linia kodu się skompiluje i wykona, to do zmiennej liczba zostanie przypisana wartość

Opcje odpowiedzi:
A
równa 1000
B
dowolna pseudolosowa z zakresu typu int
C
rzeczywista podzielna przez 1000
D
pseudolosowa nie większa niż 999
Prawidłowa
Reklama

Wyjaśnienie i uzasadnienie dydaktyczne

Poprawna odpowiedź: D

Uzasadnienie i szersze wyjaśnienie:

Przeanalizujmy działanie kodu int liczba = rand() % 1000;:

  1. rand(): Jest to standardowa funkcja języka C++, która generuje pseudolosową liczbę całkowitą z zakresu od 0 do RAND_MAX (duża stała zdefiniowana w bibliotece, np. 32767).
  2. % 1000: Jest to operator modulo, który oblicza resztę z dzielenia. Wynik operacji x % n zawsze mieści się w zakresie od 0 do n-1.

W tym przypadku, dowolna liczba całkowita zwrócona przez rand() jest dzielona przez 1000, a do zmiennej liczba przypisywana jest reszta z tego dzielenia. Możliwe reszty z dzielenia przez 1000 to liczby od 0 do 999 włącznie. Zatem zmienna liczba przyjmie wartość pseudolosową nie większą niż 999.

Dlaczego pozostałe odpowiedzi są nieprawidłowe?

  • A: Wartość 1000 nigdy nie zostanie osiągnięta, ponieważ reszta z dzielenia przez 1000 nie może być równa 1000.
  • B: Operator modulo % 1000 znacząco ogranicza zakres wartości w porównaniu do pełnego zakresu typu int.
  • C: Wynik operacji modulo jest liczbą całkowitą, a zmienna liczba jest zadeklarowana jako int.

Chcesz poćwiczyć całą kwalifikację INF.04?

Egzamin próbny na czas, nauka działami, losowe pytanie albo przegląd całej bazy — wszystko w przeglądarce i bez zakładania konta.

Rozwiąż w Quizie

Pojęcia z tego pytania

Cały słownik INF04
Reklama

Podobne pytania z działu „Jezyk cpp skladnia i pamiec”

Ten sam obszar materiału z kwalifikacji INF.04. W całej bazie znajdziesz 25 pytań z tego działu.