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

Błąd logiczny w przedstawionym kodzie C++ polega na zastosowaniu:

cpp
int a, b;
std::cin >> a;
std::cin >> b;
while (a = 0)
{
    a -= b;
}
Opcje odpowiedzi:
A
typów niepasujących do problemu.
B
nieznanego operatora -=
C
nieskończonej pętli.
D
przypisania w warunku pętli.
Prawidłowa
Reklama

Wyjaśnienie i uzasadnienie dydaktyczne

Poprawna odpowiedź to D. W warunku pętli while (a = 0) użyto operatora przypisania (=) zamiast operatora porównania (==). Wyrażenie a = 0 przypisuje zmiennej a wartość 0, co w C++ jest interpretowane jako fałsz (false), więc pętla nigdy się nie wykona. Jest to typowy błąd logiczny.

Wyjaśnienie pozostałych opcji:

  • A – typy int są poprawne.
  • B – operator -= jest poprawnym operatorem dekrementacji.
  • C – pętla nie będzie nieskończona; w rzeczywistości nie wykona się ani razu.

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.