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

W przedstawionym fragmencie kodu znajduje się błąd logiczny. Polega on na

Opcje odpowiedzi:
A
braku inicjalizacji zmiennej x, który sprawia, że zmienna nie ma wartości początkowej
B
błędnym zastosowaniem funkcji cout, który sprawia, że zmienna jest wczytywana w pętli
C
nieprawidłowym warunku pętli, który sprawia, że pętla nigdy się nie wykona
D
nieprawidłowym warunku pętli, który sprawia, że pętla jest nieskończona
Prawidłowa
Reklama

Wyjaśnienie i uzasadnienie dydaktyczne

Poprawna odpowiedź: D

Uzasadnienie i szersze wyjaśnienie:

Kluczowym problemem jest warunek w pętli while: (x != 0 || x != 5).

Przeanalizujmy ten warunek logiczny. Użyto w nim operatora LUB (||). Oznacza to, że całe wyrażenie jest prawdziwe, jeśli co najmniej jedno z podwyrażeń jest prawdziwe. Wyrażenie jest fałszywe tylko wtedy, gdy oba podwyrażenia są fałszywe.

  • Czy zmienna x może być jednocześnie równa 0 i równa 5? Nie, jest to niemożliwe.
  • W związku z tym, dla dowolnej wartości x, co najmniej jeden z warunków x != 0 lub x != 5 będzie zawsze spełniony.
    • Jeśli x jest równe 0, to x != 5 jest prawdą.
    • Jeśli x jest równe 5, to x != 0 jest prawdą.
    • Jeśli x jest jakąkolwiek inną liczbą, oba warunki są prawdziwe.

Warunek (x != 0 || x != 5) jest więc zawsze prawdziwy, niezależnie od wartości x. Pętla while z takim warunkiem będzie wykonywać się w nieskończoność, ponieważ warunek jej zakończenia nigdy nie zostanie spełniony. Jest to pętla nieskończona.

Dlaczego pozostałe odpowiedzi są nieprawidłowe?

  • A: Zmienna x jest prawidłowo zainicjalizowana wartością 0.
  • B: std::cout służy do wypisywania danych, a nie ich wczytywania. Jego użycie jest poprawne.
  • C: Jak wykazano powyżej, pętla zawsze się wykona, ponieważ jej warunek jest zawsze prawdziwy.

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.