W pokazanym fragmencie kodu zmienna C przyjmuje wartość zależną od wyniku warunku w instrukcji if. Kluczowe jest zrozumienie operatora &&, czyli logicznego AND (koniunkcji).
1) Jak działa AND (&&)?
AND zwraca prawdę tylko wtedy, gdy obie strony są prawdziwe. Przy zapisie 0/1 przyjmujemy typową interpretację: 0 = fałsz, 1 = prawda. Tabela prawdy dla AND w tym ujęciu wygląda tak:
- 0 AND 0 = 0
- 0 AND 1 = 0
- 1 AND 0 = 0
- 1 AND 1 = 1
2) Podstawienie danych z zadania
Mamy A = 0 oraz B = 1, więc:
(A && B) = (0 && 1) = 0
Warunek w if jest więc niespełniony (fałszywy).
3) Która gałąź się wykona?
Gdy warunek jest fałszywy, program przechodzi do bloku else i wykonuje znajdujące się tam przypisanie:
C = 0;
Dlaczego pozostałe odpowiedzi są błędne?
- "1" byłoby poprawne tylko wtedy, gdyby warunek był prawdziwy, czyli gdy A=1 i B=1. Tu A=0, więc AND nie może dać 1.
- "Nie można określić" jest błędne, bo dla podanych jednoznacznych wartości A i B wynik AND jest deterministyczny, a kod nie zawiera elementów losowych ani danych wejściowych zmiennych w czasie.
- "Kod jest niepoprawny" nie pasuje, ponieważ składnia if/else z przypisaniem C jest poprawna w wielu językach z rodziny C (np. C, C++, Java, JavaScript). Sens logiczny też jest spójny: C sygnalizuje, czy oba warunki są spełnione.
Wskazówka egzaminacyjna: gdy widzisz AND, zadaj sobie pytanie: "Czy wszystko jest prawdą?". Jeśli choć jeden warunek ma 0/false, cały wynik to 0/false.