KWALIFIKACJA INF2 + INF3 - CZERWIEC 2008

PYTANIE NR 30.
Co oznacza przedstawiony fragment kodu w języku C/C++?

main()
{
}
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawny zapis main() oznacza punkt wejścia programu w C/C++. W pokazanym kodzie funkcja jest zdefiniowana (ma ciało w klamrach), nie przyjmuje argumentów i nie zawiera instrukcji, więc program po uruchomieniu natychmiast się zakończy. Wielkość liter ma znaczenie: Main nie byłoby punktem wejścia.

Pełne wyjaśnienie:

W językach C i C++ wykonanie programu rozpoczyna się w funkcji main. To tzw. punkt wejścia programu – środowisko uruchomieniowe i narzędzia budowania (kompilator/linker) oczekują funkcji o nazwie zapisanej dokładnie jako main (małe litery, bo identyfikatory są rozróżniane wielkością liter).

W przedstawionym fragmencie:

  • zapis main() oznacza funkcję bez parametrów (brak argumentów przekazywanych do programu),
  • klamry { } stanowią ciało funkcji, czyli jest to definicja, a nie sama deklaracja,
  • puste ciało funkcji oznacza brak instrukcji do wykonania – program wystartuje i praktycznie od razu zakończy działanie.

Odpowiedź "definiuje funkcję main(), która nie ma argumentów i nie ma zadań do wykonania" jest więc zgodna z tym, co widać w kodzie: jest to minimalny szkielet programu.

Pozostałe odpowiedzi są błędne z typowych powodów egzaminacyjnych:

  • Stwierdzenie o "funkcjach bibliotecznych" jest nietrafne: kod nie dotyczy deklaracji funkcji biblioteki, tylko definiuje funkcję użytkownika (tu: wejściową) i nie zawiera żadnych nagłówków ani prototypów bibliotek.
  • Twierdzenia o "deklarowaniu początku/końca programu procedurą" mieszają pojęcia. W C/C++ nie "deklaruje się początku/końca programu" procedurą; program ma punkt startu w main, ale tutaj widać konkretną definicję funkcji, a nie samą deklarację bez ciała.

Wskazówka do nauki: na egzaminie zawsze sprawdzaj (1) dokładną nazwę main i wielkość liter, (2) czy są klamry – bo one rozstrzygają, czy to definicja, (3) czy w nawiasach są argumenty (np. argc, argv), co zmienia znaczenie wariantu funkcji.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Punkt wejścia to miejsce, od którego zaczyna się wykonywanie programu po uruchomieniu. W C i C++ standardowo jest nim funkcja main. To w niej umieszcza się pierwsze instrukcje, a po jej zakończeniu program kończy działanie.
W C/C++ identyfikatory rozróżniają wielkość liter, więc Main i main to różne nazwy. Narzędzia uruchomieniowe oczekują konkretnej nazwy main jako punktu startu. Inna pisownia zostanie potraktowana jak zwykła funkcja użytkownika.
Pusty blok { } oznacza, że funkcja nie zawiera żadnych instrukcji do wykonania. Taki program może się skompilować, uruchomić i natychmiast zakończyć działanie. To często używany szkielet do dalszej rozbudowy kodu.
Definicja zawiera ciało w klamrach, np. main(){}. Deklaracja (prototyp) zwykle kończy się średnikiem i nie ma ciała, np. int f();. Na egzaminie klamry są najszybszą wskazówką.
Najczęściej spotkasz wersję bez argumentów oraz wersję z argumentami linii poleceń. Wariant z argumentami pozwala pobrać parametry uruchomienia programu (liczbę argumentów i ich treść). Wybór wariantu zależy od potrzeb aplikacji.
W typowym programie uruchamianym jako aplikacja konsolowa lub okienkowa funkcja main jest wymagana jako punkt startu. Jeśli jej brakuje lub ma inną nazwę, narzędzie budowania zwykle zgłasza błąd na etapie linkowania.
Pokazany kod dotyczy funkcji zdefiniowanej w pliku źródłowym, a nie elementów biblioteki standardowej. O "funkcjach bibliotecznych" mówi się zwykle przy dołączaniu nagłówków i użyciu gotowych API. Tu nie ma ani nagłówków, ani wywołań bibliotek.
Najczęstsze pomyłki to: zmiana wielkości liter (np. Main), mylenie definicji z deklaracją, dopisywanie niepoprawnych parametrów, oraz błędne przekonanie, że dowolna funkcja "startowa" może zastąpić main. Warto zawsze sprawdzać nazwę i klamry.
Używa się ich, gdy program ma przyjmować parametry z linii poleceń, np. nazwę pliku, tryb pracy lub flagi. Wtedy argc mówi, ile argumentów przekazano, a argv zawiera ich treść. W prostych programach nie są potrzebne.
Skup się na podstawach: składnia funkcji, różnica deklaracja/definicja, znaczenie nawiasów i klamer, oraz rola main. Rozwiązuj krótkie zadania typu "co robi ten fragment kodu" i zwracaj uwagę na detale (np. wielkość liter), bo często decydują o poprawności.
info

Statystycznie 56% uczniów zna prawidłową odpowiedź. średnie

Specjaliści zwracają uwagę: "Poprawny zapis main() oznacza punkt wejścia programu w C/C++."

Źródła:

  • cppreference.com: "main function" (C++) – https://en.cppreference.com/w/cpp/language/main_function - accessed 2026-03-13

Materiały:

  • Dokumentacja standardu języka C (ISO/IEC 9899) – rozdział opisujący program i funkcję main
  • Dokumentacja standardu języka C++ (ISO/IEC 14882) – rozdział o programie i funkcji main
  • Materiały dydaktyczne do C/C++ (podstawy: funkcje, kompilacja i linkowanie)

Aktualizacja pytania: 03.04.2026



Aktualizacja pytania: 03.04.2026
📡 Brak połączenia internetowego