KWALIFIKACJA INF2 + INF3 - CZERWIEC 2011

PYTANIE NR 33.
W języku programowania C++ błędną nazwą zmiennej jest zapis
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
W C++ identyfikator (np. nazwa zmiennej) może zawierać litery, cyfry i znak _. Nie może jednak zaczynać się cyfrą, bo wtedy kompilator nie rozpozna go jako poprawnej nazwy. Dlatego zapis 12Liczb jest błędny, a pozostałe formy są dopuszczalne składniowo.

Pełne wyjaśnienie:

W języku C++ nazwa zmiennej jest identyfikatorem. Standardowe reguły leksykalne mówią, że identyfikator może składać się z liter (A–Z, a–z), cyfr (0–9) oraz znaku podkreślenia _, ale istnieje kluczowy warunek: pierwszy znak identyfikatora nie może być cyfrą.

Dlatego zapis 12Liczb jest niepoprawny: zaczyna się od cyfry, więc kompilator nie potraktuje go jako nazwy (w praktyce prowadzi to do błędu na etapie analizy leksykalnej/składniowej).

Pozostałe propozycje są poprawne pod względem reguł identyfikatorów:

  • Archiwum_nr_321 zaczyna się literą i zawiera dozwolone znaki.
  • _7liczb zaczyna się od _, co jest dozwolone. (Warto pamiętać, że niektóre formy z podwójnym podkreśleniem na początku bywają zarezerwowane dla implementacji, ale tu nie ma takiego wzorca).
  • Int_ nie jest słowem kluczowym C++: słowo kluczowe to int pisane małymi literami, a C++ rozróżnia wielkość liter, więc Int_ jest innym identyfikatorem.

Na egzaminie najczęstsza pułapka to mylenie "podobnych" do słów kluczowych nazw (np. Int) z faktycznymi słowami kluczowymi oraz pomijanie zasady o pierwszym znaku identyfikatora.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Identyfikator w C++ to nazwa nadawana elementom programu, np. zmiennym, funkcjom, klasom czy przestrzeniom nazw. Musi spełniać reguły leksykalne języka, aby kompilator mógł go jednoznacznie rozpoznać podczas analizy kodu.
W typowych zasadach C++ identyfikator może składać się z liter alfabetu łacińskiego, cyfr oraz znaku podkreślenia _. Nie wolno używać spacji ani myślników. W praktyce najlepiej trzymać się ASCII, by uniknąć problemów z narzędziami.
Początek od cyfry koliduje z rozpoznawaniem liczb w analizie leksykalnej. Kompilator czyta kod jako tokeny i zapis zaczynający się cyfrą interpretuje jak literał liczbowy, a nie nazwę. Stąd identyfikator musi zaczynać się literą lub _.
Tak, identyfikator może zaczynać się od _, więc formy typu _7liczb są składniowo poprawne. Warto jednak pamiętać o konwencjach: niektóre wzorce z podwójnym podkreśleniem na początku są zarezerwowane dla implementacji, więc lepiej ich unikać.
Nie. Słowo kluczowe to int zapisane małymi literami. C++ jest wrażliwy na wielkość liter (case-sensitive), więc Int_ to inny zapis i może być poprawnym identyfikatorem. Pułapka polega na podobieństwie wizualnym do słowa kluczowego.
Najpierw sprawdź pierwszy znak: jeśli to cyfra, nazwa jest błędna. Potem oceń, czy występują tylko litery/cyfry/_ oraz czy cały zapis nie jest dokładnie słowem kluczowym (np. int, class). Te dwa kroki zwykle wystarczają do poprawnej odpowiedzi.
Najczęstsze pomyłki to: zaczynanie nazwy od cyfry, wstawianie spacji lub myślników, używanie polskich znaków oraz uznawanie za błędne nazw podobnych do słów kluczowych (np. Int zamiast int). Pomaga spokojne sprawdzenie reguł.
W wielu narzędziach i ustawieniach kompilatora może to powodować problemy, dlatego w praktyce egzaminacyjnej przyjmuje się, że identyfikatory tworzy się bez polskich znaków (ASCII). Dzięki temu kod jest przenośny i nie zależy od kodowania pliku źródłowego.
Słowo kluczowe ma z góry ustalone znaczenie w języku (np. int, if) i nie można go użyć jako nazwy zmiennej. Identyfikator to nazwa nadana przez programistę, która musi spełniać reguły zapisu. C++ rozróżnia wielkość liter, co ma znaczenie przy obu pojęciach.
Nie. Cyfry mogą występować w identyfikatorze, ale nie mogą być na pierwszej pozycji. Przykład poprawny to nr321 lub Archiwum_nr_321. Błędem jest dopiero sytuacja, gdy nazwa zaczyna się od cyfry, np. 12Liczb.
info

Statystycznie 73% uczniów zna prawidłową odpowiedź. średnio łatwe

Według specjalistów z branży: "W C++ identyfikator (np. nazwa zmiennej) może zawierać litery, cyfry i znak _."

Źródła:

  • C++ draft standard (c++draft): Lexical conventions – Names (lex.name) https://eel.is/c++draft/lex.name (dostęp 2026-02-27)
  • cppreference.com: Identifiers https://en.cppreference.com/w/cpp/language/identifiers (dostęp 2026-02-27)
  • cppreference.com: Keywords https://en.cppreference.com/w/cpp/keyword (dostęp 2026-02-27)

Materiały:

  • Dokumentacja cppreference: sekcja o identyfikatorach i słowach kluczowych C++
  • Wersja robocza standardu C++ (c++draft): rozdział o nazwach (lex.name)
  • Notatki/lekcje z podstaw C++: tokeny, słowa kluczowe, nazwy zmiennych

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego