KWALIFIKACJA INF2 + INF3 - CZERWIEC 2010

PYTANIE NR 10.
Warunek A nie jest równe B i C jest większe od D w języku C/C++ zapisuje się jako
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
W C/C++ nierówność zapisuje się operatorem !=, a koniunkcję logiczną operatorem &&.
Dlatego warunek "A nie jest równe B i C jest większe od D" ma postać A!=B && C>D. Zapis AND oraz operator <> pochodzą z innych języków i w C/C++ są niepoprawne.

Pełne wyjaśnienie:

W językach C i C++ składnia operatorów logicznych i porównań jest ściśle określona i opiera się na symbolach, a nie na słowach kluczowych typu "AND".

Aby zapisać warunek "A nie jest równe B i C jest większe od D", potrzebujesz dwóch porównań oraz ich logicznego połączenia:

  • A!=B – operator != oznacza nierówność ("not equal").
  • C>D – operator > oznacza "większe od".
  • && – operator logiczny AND (koniunkcja). Zwraca prawdę, gdy oba warunki są prawdziwe.

Poprawny zapis całego wyrażenia to więc A!=B && C>D. W praktyce taki warunek spotkasz np. w instrukcji sterującej:

if (A != B && C > D) { // kod
}

Dlaczego pozostałe odpowiedzi są błędne?

  • "A!=B AND C>D" – w C/C++ nie istnieje słowo-klucz AND jako operator logiczny, więc taki zapis spowoduje błąd kompilacji (to typowe dla innych języków).
  • "A<>B && C>D" – operator <> bywa używany jako "różne" w innych składniach (np. SQL/Pascal), ale nie w C/C++.
  • "A<>B AND C>D" – łączy dwa niepoprawne elementy naraz: zarówno <>, jak i AND.

Wskazówka egzaminacyjna: w C/C++ logiczne "i" to &&, a pojedynczy & jest operatorem bitowym, więc nie należy ich mylić. Dodatkowo operatory porównania (!=, >) mają wyższy priorytet niż &&, więc nawiasy zwykle nie są konieczne.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Operator != oznacza porównanie "różne" (nierówność). Zwraca wartość prawda, gdy dwa wyrażenia mają różne wartości, i fałsz, gdy są równe. Przykład: A!=B jest prawdziwe wtedy, gdy A i B nie są sobie równe.
Logiczne "i" w C/C++ zapisuje się operatorem &&. To tzw. logiczny AND (koniunkcja). Wynik jest prawdą tylko wtedy, gdy oba warunki są prawdziwe, np. (x>0) && (y<10).
W standardowej składni C/C++ nie ma operatora zapisywanego słowem AND. Operatory logiczne są symboliczne: && (AND), || (OR) i ! (NOT). Użycie "AND" zwykle kończy się błędem kompilacji.
Znak > to operator "większe od". Porównuje dwie wartości i zwraca prawdę, gdy lewa strona jest większa od prawej. Przykład: C>D jest prawdziwe, gdy C ma wartość większą niż D.
Nie. Operator <> nie jest operatorem nierówności w C ani w C++. Bywa spotykany w innych językach (np. w SQL lub Pascalu). W C/C++ nierówność zapisuje się wyłącznie jako !=.
&& to operator logiczny AND, używany do łączenia warunków (z tzw. krótkim spięciem). & to operator bitowy AND, działający na bitach liczb. Użycie & zamiast && często daje błędną logikę programu.
Poprawny zapis w C/C++ to: A!=B && C>D. Składa się z dwóch porównań (nierówność i większość) połączonych logicznym AND. Taki warunek możesz bezpośrednio wstawić do instrukcji if lub pętli.
Zwykle nie są konieczne, bo operatory porównania (!=, >) mają wyższy priorytet niż operator logiczny &&. Jednak nawiasy mogą poprawić czytelność, np. (A!=B) && (C>D).
Najczęściej spotyka się: użycie AND zamiast &&, użycie <> zamiast !=, pomylenie & z && oraz użycie = zamiast == w porównaniach. Każdy z nich prowadzi do błędów kompilacji lub logiki.
Opanuj listę operatorów porównania (==, !=, >, <) i logicznych (&&, ||, !), a potem ćwicz krótkie warunki w if i pętlach. Dobre są też zadania z wyszukiwaniem błędów w kodzie.
info

Około 55% zdających odpowiada poprawnie na to pytanie. średnie

Eksperci podkreślają: "W C/C++ nierówność zapisuje się operatorem !=, a koniunkcję logiczną operatorem &&.Dlatego warunek "A nie jest równe B i C jest większe od D" ma postać A!=B && C&gt;D."

Źródła:

  • ISO/IEC 9899 (C language standard) – sekcje dotyczące wyrażeń i operatorów (relational i equality operators), wydanie standardu (tytuł normy)
  • ISO/IEC 14882 (C++ language standard) – sekcje dotyczące operatorów porównania i operatorów logicznych (logical AND, equality/relational operators), wydanie standardu (tytuł normy)
  • cppreference.com: C operators (relational, equality, logical) – https://en.cppreference.com/w/c/language/operator_precedence (dostęp: 05.03.2026)

Materiały:

  • Dokumentacja języka C/C++ dotycząca operatorów (rozdziały o wyrażeniach i operatorach)
  • Kurs/ściąga: tabela priorytetów i łączności operatorów w C/C++
  • Ćwiczenia: pisanie warunków złożonych w if/while i analiza błędów kompilacji

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego